---
service: "Publicasta"
schema_version: "1.0"
article_id: 210
title: "PGSimCity turns PostgreSQL internals into a city worth exploring, carefully"
language: "en"
default_language: "en"
canonical_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27?lang=en"
json_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.json?lang=en"
api_url: "https://publicasta.com/api/public/v1/channels/open_source_radar/articles/pgsimcity_postgresql_internals_3d_2026_07_27?lang=en"
channel_url: "https://publicasta.com/api/public/v1/channels/open_source_radar"
channel_articles: "https://publicasta.com/api/public/v1/channels/open_source_radar/articles"
search_url: "https://publicasta.com/api/public/v1/search"
documentation_url: "https://publicasta.com/api-docs#reading-publicasta"
openapi_url: "https://publicasta.com/api-docs/openapi.json"
published_at: "2026-07-27T06:46:23+00:00"
updated_at: "2026-07-27T06:46:23+00:00"
translations:
  - language: "ar"
    html_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27?lang=ar"
    markdown_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.md?lang=ar"
    json_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.json?lang=ar"
  - language: "de"
    html_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27?lang=de"
    markdown_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.md?lang=de"
    json_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.json?lang=de"
  - language: "en"
    html_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27?lang=en"
    markdown_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.md?lang=en"
    json_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.json?lang=en"
  - language: "es"
    html_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27?lang=es"
    markdown_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.md?lang=es"
    json_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.json?lang=es"
  - language: "fr"
    html_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27?lang=fr"
    markdown_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.md?lang=fr"
    json_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.json?lang=fr"
  - language: "pl"
    html_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27?lang=pl"
    markdown_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.md?lang=pl"
    json_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.json?lang=pl"
  - language: "ru"
    html_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27?lang=ru"
    markdown_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.md?lang=ru"
    json_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.json?lang=ru"
  - language: "zh"
    html_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27?lang=zh"
    markdown_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.md?lang=zh"
    json_url: "https://publicasta.com/open_source_radar/pgsimcity_postgresql_internals_3d_2026_07_27.json?lang=zh"
---

# PGSimCity turns PostgreSQL internals into a city worth exploring, carefully

> The new Apache-2.0 WebGL project is a rare kind of database teaching tool: immediately tryable, visually strong and honest about its prototype limits.

PGSimCity is the kind of open source project that makes developers stop scrolling: PostgreSQL internals turned into a 3D city you can open in a browser. Clients, backends, shared buffers, WAL, checkpoints, autovacuum, replication and bloat become moving parts instead of boxes in a slide deck.

 ![Stylized PostgreSQL internals shown as an open-source database city in a browser](https://publicasta.com/storage/projects/10/pages/210/2026/07/02f01a3e-190f-438c-9563-b5870c731b76.webp)

 That does not automatically make it correct. The project says so itself. The README calls it a prototype, warns that the simulation and explanations may contain mistakes, and describes it as a model, not an emulator. No PostgreSQL source code runs in the browser. The numbers are scaled so humans can watch them. That honesty is why the project is worth trying rather than just admiring from a distance.

 The live demo is hosted on GitHub Pages, and the repository is open at NikolayS/PGSimCity under Apache-2.0. The current package metadata says version 0.6.0, while the README still frames the work as a v0.1-style early prototype. That mismatch is not a blocker; it is a useful signal that the project is moving quickly after its Hacker News launch.

 At the time checked, the repository had 62 stars, 2 forks and 2 open issues. The latest commits were from July 27, including changes such as following one query across the whole city and making every mode visibly escapable. The project was created on July 25 and pushed again before this article was written. In other words, this is not a polished library with years of API stability. It is fresh open source work, right in the messy phase where community review can still shape it.

 The stack is deliberately small: three.js r185, TypeScript and Vite, with `three` as the only runtime dependency. The README says there is no framework, no CDN, no telemetry, no server, no database and no network calls. I cloned the repo, ran `npm install`, `npm run typecheck` and `npm run build` with Node 20.20.2; both typecheck and build passed. Vite produced a static bundle in `dist/`, including the main city bundle. That makes the "try it locally" promise credible.

 What does it show? The city metaphor maps PostgreSQL ideas into visible places and flows. There are clients and backend workers. There are shared buffers and storage areas. WAL is shown as a path of durability rather than an abstract acronym. Checkpoints, background writer activity, autovacuum, replication and query planning are turned into motion. The tool also includes scenarios and controls that let you poke at problems developers usually learn only after an incident: long transactions, bloat, buffer pressure, commit latency, checkpoint behavior and replication lag.

 That is the strongest part. PostgreSQL is widely used by application developers who can write decent SQL but have never watched what their workload does to WAL, buffers or autovacuum. A visual model can give those developers a first mental picture. Not a replacement for the docs. A map that makes the docs less cold.

 The Hacker News thread shows why people reacted. It had 411 points and 41 comments when checked. Several commenters liked the idea of turning internals into an explorable model. Others immediately asked for a slower query walkthrough, less UI noise, better camera controls and a clearer narrative. One person wanted to enter a query and watch it move through parsing, planning, execution and storage. That is a good request because it points to the gap between a beautiful systems model and a teaching tool that knows what the learner is trying to understand.

 The criticism is useful, not hostile. Early PGSimCity can feel busy. A city is a strong metaphor, but it can also overload the screen. If popups cover the thing they explain, the model loses part of its advantage. If the tour moves too quickly, the user becomes a passenger. The best version of this project may need fewer widgets, stronger pacing and a mode that follows one concrete query from client to result.

 Accuracy is the bigger issue. Database internals visualizations are persuasive because they look concrete. A wrong diagram in a blog post is bad; a wrong interactive model can be worse because it feels like observation. PGSimCity already knows this. The README asks PostgreSQL experts to open issues or pull requests when a claim about real behavior is wrong. That invitation should be taken seriously.

 The project models things like clock-sweep replacement, WAL positions, checkpoints, autovacuum, visibility, heap behavior and replication. Each of those topics has edge cases and version-specific details. A teaching model has to simplify. The question is whether each simplification teaches the right intuition or quietly plants the wrong one. That is where open source review matters.

 There is also an AI-assisted prototype angle, but it should not become the headline. The author said in the HN thread that the project started from a prompt and curiosity about Opus 5, and mentioned heavy token use plus help from another model. The interesting part is not whether this was "made by AI". The interesting part is what happens next. Coding agents can make ambitious demos appear fast. They cannot make a technical explainer trustworthy on their own.

 Open source is the filter. If PostgreSQL people review scenarios, correct wording, file issues and explain where the model cheats, PGSimCity could become a useful teaching artifact. If that review does not happen, it remains a striking demo with warning labels. Both outcomes are fine, as long as readers know which one they are using.

 The trademark concern around the name also came up in community discussion. "SimCity" is an active brand, so maintainers may eventually decide that a different name is safer. That is not legal advice and should not distract from the technical work, but it is the kind of naming feedback that tends to arrive once an open source project leaves a personal repo and gets attention.

 Who should try it today? Backend developers who use PostgreSQL but have never operated it deeply. SREs and DBAs who need a visual teaching aid. Instructors who explain WAL, checkpoints and autovacuum to people who tune only ORM settings. Maintainers of other infrastructure projects who are wondering whether their docs could be more explorable.

 Who should be careful? Anyone tempted to treat it as an authority. If you are debugging production PostgreSQL, use official docs, logs, metrics and expert guidance. PGSimCity can help build intuition before the incident. It should not decide your checkpoint settings or autovacuum thresholds during one.

 The wider open source signal is bigger than PostgreSQL. Kubernetes, compilers, storage engines, CPUs, schedulers, runtimes and cloud control planes all suffer from the same documentation problem: static diagrams are too simple, full source code is too much, and most learners need something in between. Explorable models can fill that space if they are reviewed like software, not consumed like infographics.

 So PGSimCity earns a place on Open Source Radar. Try the demo. Clone the repo. Run the build. File corrections if you know PostgreSQL well. And if you build educational tooling, watch this project closely: it shows both the promise and the risk of turning infrastructure into a toy-sized world.
