phonograph/README.md
Brent Schroeter ba7aafe71e update readme
2026-02-16 19:12:59 +00:00

2.4 KiB

Phonograph

Phonograph is a friendly, collaborative data platform for nerds of all stripes. It's for teams who wish they used Postgres, but actually use:

  • Airtable
  • Google Sheets
  • Excel
  • inventory_export-2026-02-15_v3-FINAL.csv

Phonograph is built on top of Postgres, exposing a curated subset of features and adds a familiar user interface for developers and end users alike.

Demo

Try the hosted demo at phono.dev!

Features and Design

  • Leverages Postgres RBAC for robust authorization, including RLS (planned), while adding support for invite-by-email and a familiar permissions model for collaboration.
  • Integrates with effectively any third party software with a Postgres driver.
  • Powerful user interface inspired by your favorite text editor features, like multi-cursor editing.
  • Write filters and generated column specs (planned) as PostgreSQL—made possible by a custom SQL parser with support for advanced syntax like column = ANY(array).

Screenshot of a spreadsheet-like user interface. A sidebar lists "Tables" and "Portals", and a table on the right displays URL, numeric, and single-select data.

Screenshot of a terminal overlayed above another page listing credentials and associated permissions. The terminal runs psql and displays a query running on the data from the previous screenshot.

An Experiment from Second System Technologies

Phonograph is a proof-of-concept built by Second System Technologies, to solve real world problems, and its bones are built to scale. It's a work in progress, which means that some expected features are missing and we have yet to sand out many rough edges.

Development Quickstart

The Phonograph repository comes with a mise-en-place configuration to automatically manage the development environment:

  • mise install installs language runtimes and tooling.
  • mise run build-css && mise run build-svelte builds browser assets.
  • mise run docker-services runs a Postgres container for local development.
  • mise run server compiles and runs the server with the dev profile.

Configuration

Refer to the .env.example file for configuration options. An external OAuth2 provider is required to manage authentication.

The Phonograph Authorization Model

Refer to documentation in docs/auth.md.