← ALL WORK
Case study / Platform + infrastructure

Perfect World Project
86 modules. One stack.

A multi-tenant civic platform that makes local government readable and gives neighbors their own tools. We designed, built, host and operate all of it.

Role
Architecture, full-stack build, native apps, DevOps
Scale
86 live modules · 498 tagged releases
Status
Live in production
everythingisperfect.org
The Perfect World front door: a constellation of linked points under the Perfect World wordmark
The problem

Public information the public can't easily use.

City council agendas sit in PDFs scattered across vendor portals. Reservoir levels, utility rate cases and police training records are public, but they're spread across dozens of agencies and formats. Meanwhile, neighbors rely on ad-supported platforms that sell their attention.

The goal was one platform where a town can see what its government is doing, and also trade, talk, broadcast and organize on its own terms.

Architecture

Hub and spoke, one deploy.

A PostgreSQL 16 database sits behind a FastAPI service. A Next.js 14 front end renders on the server, and Caddy handles routing and automatic HTTPS. It all runs under Docker Compose on a single Linux server. Each town is a tenant, and each feature is a module with its own route, data and publish switch, all listed in a single manifest.

Static modules are served straight from disk next to the app, so a lightweight page can ship in seconds without a rebuild. Background workers handle ingest, archiving and scheduled refresh jobs.

PostgreSQL 16FastAPISQLAlchemy 2.0Next.js 14TypeScriptDocker ComposeCaddyLet's Encrypt
Selected modules

86 modules. A few highlights.

Meeting archives

City council and board meetings ingested from Legistar, CivicWeb and YouTube across New Mexico, Arizona and Texas towns.

Hydrology metering

45 reservoirs measured from federal sources, with storage figures taken the way each agency reports them rather than estimated from water level.

Grid & Capital

Utility rate histories and ownership deals compiled from federal EIA filings and public regulatory records.

HoodCad

Browser-based CAD that imports DWG and PDF blueprints, traces walls with OCR, and exports DXF and IFC4.

Trading Post

A storefront where AI agents can pay, through Stripe and x402, with an MCP server listed in the official MCP Registry.

Broadcast

A radio station, a TV guide, a nightly news desk and a browser recording studio, all on the same platform.

Community commerce

Classifieds, a swap meet, ride boards and the SeedBank, where neighbors pay each other directly with no middleman.

Public Register

A public ledger of receipts, each linked to the one before it, so anyone can check that a record hasn't been changed after the fact.

/hydrology
Hydrology Metering: a map of US reservoirs sized and shaded by how full they are
Hydrology Metering · federal reservoir data on a live map
/grid-capital/
Grid and Capital: a data story with headline figures on utility buyouts and rate increases
Grid & Capital · data journalism from EIA filings
/hoodcad
HoodCad: a browser CAD workspace with a layer list, drawing tools, a command line and a trace panel
HoodCad · a full CAD workspace in the browser
Operations

Shipping 498 times without guessing.

Every production deploy is built from a clean commit, checked against a series of gates, verified on the live site and tagged. Each release tag names exactly the code that's running. A single deploy lock keeps parallel work from colliding, and an append-only release log records what shipped and when.

A deploy isn't finished until the change has been seen running on the live site. A green build alone doesn't count.

Security. Two-factor sign-in with encrypted secrets, per-IP rate limiting on sign-in routes, a role ladder for moderators and admins, and analytics that never store visitor IP addresses.

Beyond the browser. The same platform feeds native apps: an iOS community app, an Apple TV channel, a universal macOS recording studio and the SeedBank app for iPhone and iPad.

Next case study
SeedBank →
Have something to build?

Your next project starts here.

Tell us what it needs to do and who it's for. We'll reply with an honest take on scope, timing and cost.

Build your project brief