Vendor shape
Spec → build → handoff. Scope is a contract; changes are friction. The relationship ends at “done.”
Engagement · Co-founded
A non-technical political-finance operator brought us a decade of regulated-industry insight and a problem nobody had solved well. We didn’t take a brief — we took the problem. Wojciech ended up a co-founder.
TanStack Start + Supabase. Bootstrapped, profitable, in production since 2023.
What the founder brought
Political fundraising lives inside a regulatory frame the software almost always treats as an afterthought. Contribution limits, refund rules, donor disclosure, audit trails — the rules are the product, and the product has to enforce them before they become a problem.
The founder had spent a decade watching campaigns fight bad software at the worst possible moment — election season, when nothing can break and nobody has time to fix it. The tools either treated compliance as a checklist someone forgot to consult, or buried it in spreadsheets nobody trusted.
This was a problem only an operator who’d been through several cycles could describe with the right specificity. Not a textbook software problem. A field-earned one.
How we worked
We didn’t get a spec. The first conversation was about the regulatory model, not the UI. The architecture decisions came out of the rules, not out of a Figma file.
Wojciech ended up a co-founder because the work was the founding work. The product needed someone who’d still be in the room three years from now — and equity was the right shape, not invoices.
Vendor shape
Spec → build → handoff. Scope is a contract; changes are friction. The relationship ends at “done.”
Founding shape
Problem → architecture → iterate. Scope changes as the founder learns — that’s the point. The relationship is the product.
What’s running
Boring choices at the foundation; opinionated discipline on top. Type safety carries the regulatory schema from the database all the way to the frontend — the rules become unviolatable in code, not in a checklist.
Database & auth
Postgres + RLS for tenant isolation between campaigns. Auth and real-time done; we lean on RLS from day one rather than reaching for it later.
Full-stack framework
Type-safe RPC, generated types from the schema. The compliance model lives in the type system — an entry shaped like a regulatory violation doesn’t compile.
Status
The product runs. The founder leads it. Wojciech is still in the architecture and the build. No outside funding got it here, and it’s profitable now — the engagement we’d hold up first when a domain-expert founder asks what this kind of partnership actually looks like.
Visit campaignfinance.appWhat this kind of engagement looks like for you
The engagement pattern translates. The domain doesn’t need to.
Tell us what you’re building and what you know about your field that nobody else does. We read every message and usually reply within a day.