How a fast-scaling nonprofit replaced email and spreadsheets with one operating system, built without an engineering team
The problem
One of my clients, a nonprofit growing fast, had outgrown the way it ran. Contractor invoices, expense reports, advances, procurement, contracts, and activity reports were all handled by email and across separate documents. That worked when there were only a few things to track. With more than 20 contractors, four staff, and around 40 active work orders, the volume had become too much to hold together by hand.
The harder problem was oversight. It was difficult to see how much of a work order had been spent or when it was about to expire, difficult to keep a clear picture of grants and their reporting schedules, and slow to reconcile advances and expenses one at a time. The leadership team was spending real hours each week tracking down numbers, time that needed to go to the technical work only they could do. This is the exact moment I'm built for: an organization growing faster than its systems can keep up.
It was also the clearest pain point the team named when I started, so it's where we began. I build from where the pain actually is, not where I'd prefer to start.
How I built it
I'm not a developer. I built this system myself, without an engineering team, using the same tools I teach other non-technical people to use.
Before I built anything, I spent weeks understanding the process. Getting it out of people's heads and into clear flowcharts, understanding what the policies required, mapping every decision, approval, and handoff until there was no ambiguity left. That became a product requirements document that sharpened over weeks.
Then I designed the tech stack around what the system needed to do: Lovable for the interfaces, Supabase for the database, n8n for the automation, DocuSign for signatures. I had both Claude and Codex review the plan independently for where it might break, and rewrote it based on what they found. We scoped versions, starting with a minimum viable product. As it came together, I tested every integration and handoff, ran a separate test environment alongside the live one, kept everything under version control, and updated the requirements document with every change.
The whole build took four weeks, end to end. With a traditional development team it would have taken months and a budget the organization didn't have.
The approval queue. An invoice that would push a work order over budget can't be approved. The system blocks it before it happens.
What it does
The system runs the operational core end to end: procurement, contracts, contractor onboarding, invoicing, advances and expenses, and grant management. A few pieces show what that means in practice:
- An invoice can never push a work order over its budget. The system blocks the approval before it happens, so overspend is prevented, not discovered later.
- Contracts and work orders are generated and routed for signature automatically through DocuSign.
- Each contractor logs into their own portal, sees only their own files, and submits invoices and reports. Their data stays theirs.
- Admin gets one view across everything: outstanding invoices, expiring work orders, and spend against budget.
One view of the money: budget, spend, and remaining balance across every grant, updated as invoices are approved and actuals come in.
The audit trail
Every file, every receipt, every contract, every activity report is entered through the portal and then saved automatically into the right folder in the team's shared drive. Around 60 documents a month, filed without anyone touching them. The apps are the interface. The drive is the permanent, browseable record, audit-ready even if no one ever opens the system. For a nonprofit answering to funders, that matters as much as anything else the system does.
Rollout and adoption
A system only works if the people it's built for actually use it. So the rollout was as deliberate as the build. I made training videos, ran live sessions to walk the team through each part, set up a help desk so questions got answered as they came up, and supported the team directly through the transition. By the time it was fully live, it wasn't a tool sitting off to the side. It was how the team worked.
The result
The leadership team gets back around four hours a week each, time that now goes to the technical work only they can do. They went from chasing numbers to having them: automated alerts when something needs attention, a live view of spend and expiry, and the confidence to make decisions from real data. The administrative load stopped competing with the mission.






