Generosity Catalyst
ActiveChallenge
Most CRMs treat donors like leads in a pipeline. Nonprofits end up with bloated systems that their teams avoid, or spreadsheets that break when someone changes a formula. The real problem? Fundraisers are losing touch with their donors because the tools are fighting them.
Solution
We built something different — a lightweight relationship tool that prompts staff at the right moments. Birthday coming up? We'll nudge you. Major gift anniversary? Time to call. It's not about automating your way out of relationships. It's about making it easy to be human.
Outcome
Currently in active development with paying customers. I own the full stack — architecture decisions, infrastructure, and shipping features weekly. The philosophy is anti-AI-slop: real connections, not automation theatre.
What I Do
As CTO, I’m responsible for everything technical. That means:
- Architecture: Designing the system from the ground up. Next.js for the frontend, Supabase for the backend, Stripe for payments. Simple stack, no unnecessary complexity.
- Infrastructure: Deployment pipelines, monitoring, the boring stuff that keeps things running.
- Shipping: I don’t just plan — I write code and ship features. Every week.
The Philosophy
The nonprofit CRM space is full of either enterprise behemoths (looking at you, Salesforce NPSP) or tools that treat donors like email addresses to be automated at. We’re building for fundraisers who actually want to talk to their donors.
No AI writing your thank-you letters. No automated sequences pretending to be personal. Just timely prompts that help humans be better at being human.
Tech Decisions
Why Next.js? Fast, flexible, and the App Router makes building complex UIs straightforward. Plus the ecosystem is mature.
Why Supabase? Postgres with batteries included. Auth, realtime, storage — all there without spinning up separate services. And when I need raw SQL power, it’s just Postgres.
Why Stripe? Because billing is one of those things you don’t want to build yourself. Ever.