Real PostgreSQL schemas behind well-known open-source products, reviewed by db-architecture-review, each with a rotatable 3D explorer
1
stars
15
commits
TypeScript
primary language
Sep 5, 2026
updated
|
Temporal 38 tables |
Miniflux 16 tables |
Listmonk 16 tables |
Matrix Synapse 137 tables |
|
Sourcegraph 180 tables |
Cal.com 121 tables |
GitLab CE 1,429 tables | Each thumbnail is that product's schema map. Click one to open its rotatable explorer. |
Open the gallery
The front page draws all seven live and turning, with the reviewer's findings behind each one.
The real PostgreSQL schemas behind well-known open-source products, documented and reviewed by ArchLens Postgres, each with a rotatable 3D explorer.
Repo: https://github.com/greenstevester/postgres-schema-gallery
Seven products in the first cut: Temporal, Miniflux, Listmonk, Matrix Synapse, Sourcegraph, Cal.com, and GitLab CE at 1,429 tables as the stress test. The front page shows every schema as a live, slowly turning miniature; each card opens the full explorer and the docs with the reviewer's findings.
Nothing third-party lives in this repository. products.json names each product's repository, a
pinned commit, the schema file, and its licence. On every push to main a workflow fetches those
files at those commits, derives plain SQL where needed (Go migration strings for Miniflux, a Prisma
schema for Cal.com), runs the reviewer as a library, writes one documentation folder per product,
records a three-second clip of each explorer turning plus the wide animated banner, renders the
front page, and deploys site/ to GitHub Pages.
The front page draws its miniatures live with WebGL. A browser without WebGL gets each product's recorded clip instead, with the flat schema map as its poster, plus a note saying where that browser's WebGL switch is and that a private window (extensions off) is the quickest test.
Domains come from a hand-curated products/<slug>/narratives.json where one exists (Temporal,
Miniflux, Listmonk). Otherwise the build groups tables by name prefix and the card says
"domains by table prefix", so nobody mistakes it for judgment.
npm ci
npm test # manifest, extraction, prefix domains, front page
node build/index.ts # full build into site/ (needs network; the banner needs ffmpeg and Playwright)
node build/index.ts --only temporal --no-banner
Node 24 or newer. The reviewer is cloned at the tag in products.json into .cache/reviewer/.
Open a pull request that adds an entry to products.json:
{
"slug": "example",
"name": "Example",
"homepage": "https://example.org",
"repo": "owner/name",
"commit": "<40-character sha>",
"ref": "v1.2.3",
"license": "MIT",
"blurb": "One or two sentences on what the product is and anything notable about its schema.",
"source": { "kind": "sql", "paths": ["db/schema.sql"] },
"domains": "prefix"
}
source.kind is sql (files concatenated in order), go-raw-strings (one Go file whose
backtick strings hold the migrations), or prisma (one schema.prisma). If you can, add
products/<slug>/narratives.json with real domains and set "domains": "curated"; see the
Temporal one for the shape. PostgreSQL only.
Gallery code and text: MIT. Each schema stays under its project's licence; NOTICE.md lists them.
15 commits
TypeScript
78.5%
JavaScript
14.3%
CSS
7.2%
Real PostgreSQL schemas behind well-known open-source products, reviewed by db-architecture-review, each with a rotatable 3D explorer
1
stars
15
commits
TypeScript
primary language
Sep 5, 2026
updated
|
Temporal 38 tables |
Miniflux 16 tables |
Listmonk 16 tables |
Matrix Synapse 137 tables |
|
Sourcegraph 180 tables |
Cal.com 121 tables |
GitLab CE 1,429 tables | Each thumbnail is that product's schema map. Click one to open its rotatable explorer. |
Open the gallery
The front page draws all seven live and turning, with the reviewer's findings behind each one.
The real PostgreSQL schemas behind well-known open-source products, documented and reviewed by ArchLens Postgres, each with a rotatable 3D explorer.
Repo: https://github.com/greenstevester/postgres-schema-gallery
Seven products in the first cut: Temporal, Miniflux, Listmonk, Matrix Synapse, Sourcegraph, Cal.com, and GitLab CE at 1,429 tables as the stress test. The front page shows every schema as a live, slowly turning miniature; each card opens the full explorer and the docs with the reviewer's findings.
Nothing third-party lives in this repository. products.json names each product's repository, a
pinned commit, the schema file, and its licence. On every push to main a workflow fetches those
files at those commits, derives plain SQL where needed (Go migration strings for Miniflux, a Prisma
schema for Cal.com), runs the reviewer as a library, writes one documentation folder per product,
records a three-second clip of each explorer turning plus the wide animated banner, renders the
front page, and deploys site/ to GitHub Pages.
The front page draws its miniatures live with WebGL. A browser without WebGL gets each product's recorded clip instead, with the flat schema map as its poster, plus a note saying where that browser's WebGL switch is and that a private window (extensions off) is the quickest test.
Domains come from a hand-curated products/<slug>/narratives.json where one exists (Temporal,
Miniflux, Listmonk). Otherwise the build groups tables by name prefix and the card says
"domains by table prefix", so nobody mistakes it for judgment.
npm ci
npm test # manifest, extraction, prefix domains, front page
node build/index.ts # full build into site/ (needs network; the banner needs ffmpeg and Playwright)
node build/index.ts --only temporal --no-banner
Node 24 or newer. The reviewer is cloned at the tag in products.json into .cache/reviewer/.
Open a pull request that adds an entry to products.json:
{
"slug": "example",
"name": "Example",
"homepage": "https://example.org",
"repo": "owner/name",
"commit": "<40-character sha>",
"ref": "v1.2.3",
"license": "MIT",
"blurb": "One or two sentences on what the product is and anything notable about its schema.",
"source": { "kind": "sql", "paths": ["db/schema.sql"] },
"domains": "prefix"
}
source.kind is sql (files concatenated in order), go-raw-strings (one Go file whose
backtick strings hold the migrations), or prisma (one schema.prisma). If you can, add
products/<slug>/narratives.json with real domains and set "domains": "curated"; see the
Temporal one for the shape. PostgreSQL only.
Gallery code and text: MIT. Each schema stays under its project's licence; NOTICE.md lists them.
15 commits
TypeScript
78.5%
JavaScript
14.3%
CSS
7.2%