
Marketing Campaigns
Segments, sends, lead scoring and attribution, with consent treated as a first-class record.
Next.js · TypeScript · PostgreSQL · Recharts
OverviewFundraiser1 / 6
Fundraising software usually optimises for the ask. The harder problems are the ones that follow: proving a restricted gift was spent as promised, and knowing who has told you not to contact them.
Next.js · TypeScript · PostgreSQL · Recharts
Inside the app
23 connected functions on one schema, spanning three permission levels. Everything below is in the template before a line of customisation.
The autumn appeal has raised $84,200 and 6 regular gifts failed collection this month.
One record per supporter, with giving history and contact preferences.
Every gift, its fund, and whether it carries a restriction.
What each appeal raised, against what it cost to run.
Relationships in progress, with the next action and who owns it.
What each restricted fund holds, and what it has been spent on.
How supporters may be contacted, and what a restriction actually binds you to.
Every gift, fund movement and consent change. Retained per your regulator.
Permissions
A fundraiser records gifts and runs appeals. A development manager owns the major gift pipeline and fund reporting. An administrator owns consent and fund rules, the two things that turn a fundraising mistake into a regulatory one.
The build
23 functions, all of them live in the preview. Nothing on this list is a mockup or a roadmap item.
What you get
Charities, foundations and membership bodies raising from 500 to 100,000 supporters.
Access and evidence
A restricted gift is a promise. Spending it elsewhere is not an accounting adjustment, it is a breach of that promise, so the restriction is treated as binding rather than advisory.
Related

Segments, sends, lead scoring and attribution, with consent treated as a first-class record.
Next.js · TypeScript · PostgreSQL · Recharts

Spaces, posts and a question-and-answer board with reputation, saved items and a moderation queue that records every decision.
Next.js · TypeScript · PostgreSQL · MDX

General ledger, payables, receivables and bank reconciliation on one double-entry schema.
Next.js · TypeScript · PostgreSQL · Recharts
Questions
Yes, and for a charity this matters more than most: your supporter database and its consent history are your most valuable and most sensitive asset. On delivery both live in your infrastructure, not a vendor's.
Pricing does not change with supporter count. That is deliberate, charging a charity more as its supporter base grows is precisely the wrong incentive, and it is how most donor databases become the second largest line in a fundraising budget.
Declarations and eligibility are recorded against the supporter and the gift, which is the data any tax relief claim is built from. Submitting the claim itself is jurisdiction-specific and usually needs an accredited route, so a fitted build wires that up rather than us pretending to file on your behalf.
It stays locked to that fund. Releasing it requires the donor's written agreement, attached to the record, which is exactly the conversation the sector's guidance expects you to have. The app will not let it be quietly reallocated.
That is the usual route. A fitted build sets up your funds and restrictions, appeal structure, giving types, consent wording, tax relief handling, branding and up to two integrations, and typically takes one to three weeks from a signed scope.
Hosting only, paid to your own cloud provider, roughly $50 to $200 a month. For most charities that is a fraction of what a hosted donor platform costs annually.
A fitted build adjusts fields, stages, roles and integrations to how your team already works. One scoping call, a fixed price, one to three weeks.
