# 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](https://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.](./docs/screenshot_collab.png) ![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.](./docs/screenshot_psql.png) # 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](https://mise.jdx.dev/) 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](./.env.example) for configuration options. An external OAuth2 provider is required to manage authentication. # The Phonograph Authorization Model Refer to documentation in [docs/auth.md](./docs/auth.md).