Synapse
Where scattered business data becomes client intelligence.
A Postgres-backed client-intelligence system that syncs Airtable records, normalizes dirty identity fields, and surfaces a unified client view with full source lineage and a reviewer workflow.
- language
- TypeScript (Node 18+, ESM)
- storage
- PostgreSQL via node-postgres (not Supabase)
- schema
- 12+ tables, bronze / silver / gold transforms
- tests
- ~30 Vitest files; no runtime AI or LLM calls
- history
- 1 extraction commit (Apr 2026)
- repo
- Private
The problem
A PR firm had client context scattered across 32 Airtable tables plus QuickBooks, Copper, HubSpot, Basecamp, and booking tools, with dirty identity data and no ownership model for corrections. Synapse builds a Postgres read model that makes that data legible.
How it is built
-
Source lineage you can trace
Every sync stores the raw Airtable payload as JSONB with a content hash before any transform runs, so a trace command can walk from a final projected value back to the exact bytes that produced it.
-
Reviewer decisions that do not get overwritten
Low-confidence identity matches go to a review queue. Human decisions persist by evidence fingerprint across rebuilds, and stronger conflicting evidence reopens an item for review rather than silently overriding the person who decided it.
-
A dual-backend repository pattern
The repository factory returns an in-memory backend for memory:// URLs and Postgres otherwise, so the full test suite runs with no live database while production code uses the exact same interface.
By the numbers
self-reported marks figures stated in docs or commit history that the source brief could not reproduce from the repository alone. Everything else is traceable to code.
- 2,817: Basis: parent-repo launch criteria recorded a real Postgres proof run with fixtureMode=false, reachable database, 2,817 synced source records, and zero failures before this project was extracted into its own repo.
Where this honestly stands
Early-stage. The code is substantive (24 source files, 30 test files, a 12-table schema), but it was just extracted into its own repo as a single commit, with no independent CI or deploy yet. Presented as in-progress internal tooling.
Want the parts that are not in a public repo? I will walk you through the architecture and the decisions on a call.