No description
Find a file
Brent Schroeter ba7aafe71e update readme
2026-02-16 19:12:59 +00:00
dev-services fix containerization 2025-12-09 18:16:24 +00:00
docs update readme 2026-02-16 19:12:59 +00:00
phono-backends move relevant common types to phono-pestgros 2026-02-13 08:27:47 +00:00
phono-models replace bespoke expression constructs with sql parsing 2026-02-14 03:24:37 +00:00
phono-namegen license as agpl-3.0-or-later 2025-11-19 09:15:11 +00:00
phono-pestgros add support for any() and all() array comparisons 2026-02-16 04:36:18 +00:00
phono-server add support for any() and all() array comparisons 2026-02-16 04:36:18 +00:00
static replace bespoke expression constructs with sql parsing 2026-02-14 03:24:37 +00:00
svelte replace bespoke expression constructs with sql parsing 2026-02-14 03:24:37 +00:00
.dockerignore fix containerization 2025-12-09 18:16:24 +00:00
.env.example clean up .env settings 2025-11-19 09:19:36 +00:00
.gitignore replace sass with vanilla css 2025-12-19 20:19:35 +00:00
Cargo.lock move relevant common types to phono-pestgros 2026-02-13 08:27:47 +00:00
Cargo.toml revert to stable rust release channel 2026-02-13 08:11:21 +00:00
Containerfile replace sass with vanilla css 2025-12-19 20:19:35 +00:00
deno.json insert rows from viewer 2025-08-15 00:16:36 -07:00
deno.lock implement front-end undo/redo key bindings 2026-02-09 21:39:39 +00:00
LICENSE license as agpl-3.0-or-later 2025-11-19 09:15:11 +00:00
mise.toml revert to stable rust release channel 2026-02-13 08:11:21 +00:00
package.json implement front-end undo/redo key bindings 2026-02-09 21:39:39 +00:00
README.md update readme 2026-02-16 19:12:59 +00:00

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.