Hi everyone,
I’m sharing Donoor, an all-in-one donation and fundraising platform for nonprofits and associations, built with Directus as the backend.
Directus powers our entire data layer — organizations, donations, memberships, event ticketing, and automated tax receipts — while our apps (a Nuxt 4 web dashboard + a Capacitor mobile app) consume its API. Payments run through Stripe Connect, and we added Tap to Pay on iPhone for in-person contactless collection.
What Directus gave us:
- A flexible schema we could evolve fast as the product grew (75+ versioned SQL migrations)
- An instant REST API + granular permissions for a multi-tenant setup (each org’s data fully isolated)
- A clean admin layer our team uses daily
- Schema snapshots to keep local, staging, and prod aligned
Live: https://donoor.org
A question for the community: how do you handle Directus schema migrations across environments (local → staging → prod) on fast-moving projects? We ended up building our own versioned SQL runner on top — curious to hear your approaches.
Feedback welcome!