Live: SoberMark, the live directory
One of two products I build and run solo under my LLC, Culmination Digital. Source is private.
Read the build story: Building SoberMark
SoberMark is a public directory of addiction-treatment providers, searchable by location, level of care, insurance, and a dozen other filters. 10,900+ providers across all 50 states, assembled from public federal and state datasets and kept current on a schedule. It ships in English and Spanish.
Why it exists
A person looking for treatment usually starts at a search engine and lands on a directory. The useful facts (where a provider is, what level of care it offers, what it accepts) already exist in public federal data, but they are scattered across sources that disagree with each other. SoberMark is the work of pulling those sources into one clean, searchable record per provider.
How it's built
Next.js 16 on Vercel, TypeScript, and Postgres, with a separate data pipeline that pulls from 20 public sources (federal treatment, provider, and licensing data) on a schedule and refreshes the directory. Search works by location, level of care, insurance, language, telehealth, medication-assisted treatment, and more.
I built it spec-driven with a coding agent. The conventions, data rules, and decision log are written down in the repo first, and the tests and checks have to pass before anything ships. Claude also helps with a few back-office tasks, and the ownership-claim assistant is built so it can never approve or reject a claim on its own.
The trade-offs
Building from public data means the directory is broad before it is deep. A listing can be right about address and services and still know nothing about today's waitlist. Curating by hand does not scale to ten thousand providers for one engineer, so I chose breadth with honest labeling, plus a path for providers to correct or enrich their own record.
What I learned
How much of a data product is deciding which source to believe, and how much a written spec matters when a coding agent does a lot of the building. The full story is in the build post.