update readme

This commit is contained in:
Brent Schroeter 2026-02-16 15:40:35 +00:00
parent b2257ab1c0
commit 8b75cd7611
4 changed files with 33 additions and 52 deletions

View file

@ -1,25 +1,42 @@
# Phonograph
Phonograph is a friendly, collaborative data platform for nerds of all stripes,
built around PostgreSQL.
Phonograph is a friendly, collaborative data platform for nerds of all stripes.
It's for teams who wish they used Postgres, but actually use:
Contemporary browser-centric platforms like Airtable open new frontiers for data
engineering, but they suffer from limitations that conventional databases have
long since addressed: relational data models are an afterthought; row-level
security is missing; third party integrations must be implemented piecemeal for
lack of a standardized API. Phonograph addresses these shortfalls by
implementing an accessible front-end interface backed by an existing, mature
database management system.
- Airtable
- Google Sheets
- Excel
- `inventory_export-2026-02-15_v3-FINAL.csv`
![Screenshot of multi-cursor editing, as well as a dropdown menu with a highlighted option labeled "PostgreSQL credentials"](./docs/screenshot_multi_cursor.png)
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.
# Browser Compatibility Note
# Demo
[CSS anchor positioning](https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Anchor_positioning)
is a relatively new API, and Phonograph uses it extensively. Browser support is
now fairly good, but
[Firefox users in particular](https://bugzilla.mozilla.org/show_bug.cgi?id=1988225)
should upgrade to version 147 or newer for best experience.
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
@ -39,39 +56,3 @@ external OAuth2 provider is required to manage authentication.
# The Phonograph Authorization Model
Refer to documentation in [docs/auth.md](./docs/auth.md).
# Copyright and License
All original source code in this repository is copyright (C) 2025 Second System
Technologies LLC and distributed under the terms in
[the "LICENSE" file](./LICENSE). Certain third-party assets within
[the "static" directory](./static) may be governed by different licenses, for
example the Open Font License or MIT License, as stated by their original
authors. Copies of each relevant license have been included alongside these
files as needed.
# LLM Code Policy
Large language model code generation is permitted sparingly in very limited
cases, for example for completing clearly defined transformations which span
multiple files and are not supported by conventional code actions. All code
generated by LLMs is considered reflective of its author, and authors are
expected to thoroughly and frequently review before committing affected work.
As of this writing, models display a strong bias towards patterns which are well
represented in public open source projects. This can cause them to tend towards
suboptimal one-size-fits-most or simply outdated coding practices in certain
circumstances. LLM assistance should be sufficiently constrained to avoid
allowing outputs to dictate or implicitly guide significant design decisions.
Furthermore, current language models broadly behave adversarily, in the sense
that they are optimized to make perceiving model outputs versus non-model
outputs as difficult as possible. This can make generated code uniquely
challenging to review effectively. In this context, non-trivial business logic,
particularly logic with security implications, may not be implemented with
direct assistance from LLM tools.
Examples of LLM-assisted changes in practice:
- Replacing SVG icons with similar webfont icons from a different icon pack.
(Revision `ztrnxzqv` (Git `a8dd49f7`))

BIN
docs/screenshot_collab.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 805 KiB

BIN
docs/screenshot_psql.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 KiB