Flagship case study
Groundwork
The live product
The running build, embedded. Click into it.
Problem
Every event a 20‑person career center runs needs a campaign brief, event copy, a promotional email sequence and finished designs. Before Groundwork, every asset was produced by hand. When an event detail changed, someone had to remember every asset that had already gone out carrying the old version.
What it does
One structured event entry generates the campaign brief, copy, timed email sequences and print‑exact flyers, posters, digital signage and social assets. Change any detail on the event and every asset derived from it is marked out of date by name.



Production capabilities only.
Architecture
01 / Humans publish
Every external output ends in a copy action, a download or a share link. Workflows can draft and they can flag. They cannot send, post or publish.
02 / No student identity
Advisor captures are private to the advisor. Shared destinations are locked. Counts are aggregate. The Handshake API sync anonymizes student IDs on the way in, and funding records carry anonymized identifiers with the identity key held outside the system.
03 / Fixed rendering
In the render engine the AI selects and deterministic templates own the layout; the model cannot write arbitrary CSS. The Design Studio preview and the download walk the same render tree, so what a reviewer approves is exactly what ships.
04 / Provenance is labeled
Verified, approved and synthesized content carries distinct labels. Missing data is shown as missing.

Access control
A five‑tier permission system is enforced in the database, not in the interface, and verified by adversarial testing against each role.
Approval workflow. Work moves from advisor to operations through human approval gates. No AI‑written content becomes an asset until a person approves it.
Development system
A typical non‑render change went from about 2.5 hours to 20 to 35 minutes.
Groundwork is built with an AI‑assisted development system I designed around it: project rule files, versioned runbooks, a rulings log, scripted walkthroughs, Playwright render and smoke suites, tiered merge and migration gates and scheduled Claude Code builder and reviewer routines. A lean build mode produced the cut above.
Stack: Next.js, TypeScript, Tailwind, Supabase (PostgreSQL, Auth, Storage), Vercel, GitHub and Claude Code.