Skip to content
Groundgame

Samples

What it actually makes.

Software demos are easy to fake, so here is the output instead. Each file below came out of the running product: the walk list a volunteer carries, the page a candidate hands out, the brief a campaign reads on Monday, the plan the whole thing runs on.

The campaign is synthetic and the math is real.

Every voter, address, household, outlet and official in these files is invented — they are generated fixtures, and each artifact says so on its own face. What is not invented is the arithmetic: the walk list partition, the counts, the progress against plan, the benchmark floors and the refusals are the product's own code operating on that data, not numbers typed into a picture.

12 KB · synthetic

The weekly brief

What a campaign reads on Monday: last week's activity, where it sits against plan, and what the recommendations are — with every figure's basis named.

Carries: “All figures in this demo are synthetic.”

48 KB · synthetic

The client brief

The same week, split in two: your own campaign data on one side, public discourse on the other — the two data classes never mixed into one number.

Carries: “All figures in this demo are synthetic.”

100 KB · synthetic

A walk list

What a volunteer carries to the door: a walk list's households in walking order, large type, with the boxes to tick at dusk.

Carries: “Synthetic demo data. Nothing on this sheet is a real voter, address, or household.”

74 KB · synthetic

The plan

The week-by-week plan to election day, by workstream, with the why on every task and the dates set by a rules engine.

Carries: “SYNTHETIC DEMO”

How these were made

One command, no hand-editing.

A script runs the product's own demo path offline — the same path the founder walks people through — and keeps what it prints. It writes into site/content/samples/ and refuses to publish an artifact that has lost its synthetic-data banner.

cd groundgame/app && npx tsx --tsconfig ../site/scripts/tsconfig.samples.json ../site/scripts/samples.ts

Regenerating them is how they stay true: when the product changes, these change with it, or the script fails and says why.

These are the same files a demo session walks through, on the same synthetic campaign — see what the first 48 hours look like and what we refuse to do with them.

Want to see these on your own race?

A demo runs on this same synthetic demo campaign, with a person walking you through it. We don't put real voter data in front of anyone before there are terms to put it under.

Ask for a demo