Fund for Charity
Orphanages in Nigeria are hard for donors to find, and there has been no trusted way to give to them. I co-founded Fund for Charity and built the platform: a directory of verified orphanages where one donation splits between the orphanage and the platform, across two currencies, at the same moment.

What I did
Company
I co-founded Fund for Charity and lead its technology as Director of Technology.
Part of it
Product design
I designed all three environments and validated them as Figma prototypes before any code.
All of it
Brand identity
I designed the brand identity.
All of it
Architecture
I designed the architecture: clean architecture inside a modular monolith.
All of it
Development
I built the whole platform, frontend and backend, as its only developer.
All of it
Payments
I built the split payment through Flutterwave.
All of it
How it works
Find
A donor finds an orphanage in a directory where every listing has been checked on the ground in Nigeria.
Give
They give once, from the UK or anywhere else.
Split
At the same moment, the donation splits. The orphanage's share goes to its own account in Nigeria and the platform's share to the UK, each in its own currency.
Run their side
Each orphanage manages its place on the platform from a dashboard of its own.
Run the platform
The platform itself is run from an internal admin system.
In the browser
01Three environments
The public donor platform, the orphanage management dashboard and the internal admin system, each validated as a Figma prototype first.
- React 18
- TypeScript
- Vite
- Tailwind CSS v4
- Framer Motion
- React Router v7
Signed in through Auth0
The API
02Access
Role-based access for three user types: donors, orphanage administrators and platform administrators. OAuth 2.0 with Google and Apple sign-in.
- Auth0
- OAuth 2.0
03Backend
Clean architecture inside a modular monolith. MediatR handles each request as a command or a query.
- ASP.NET Core
- .NET 10
- C#
- MediatR
04Data and hosting
PostgreSQL through Entity Framework Core, Redis for caching and rate limiting, and documents in Azure Blob Storage. Containerised with Docker on Microsoft Azure.
- PostgreSQL
- Redis
- Azure Blob Storage
- Docker
One donation
The payment gateway
05Flutterwave
The donor pays once. Flutterwave routes the payment across the two currencies, with the conversion done automatically.
- Flutterwave
Split
Settled at the same moment, in two currencies
06Orphanage subaccount
The verified orphanage's share settles in its own subaccount in Nigeria.
07Platform commission
The platform's commission settles in the UK, in the other currency, in the same transaction.
Where it stands
It is built and ready.
It covers orphanages in Nigeria and giving across the UK to Nigeria corridor, and it is built so that it can grow beyond the two countries.
Donors, orphanage administrators and platform administrators each sign in to their own side, with Google or Apple sign-in as an option.
3
Environments: donor platform, orphanage dashboard, admin system
3
User types, each with its own access
2
Currencies settled from one donation, at the same moment
Built and ready.
The scope is orphanages in Nigeria and the UK to Nigeria corridor. The architecture is designed to grow beyond it.
Orphanages are verified on the ground by the Nigerian operating company, and the directory lists verified orphanages only.
Built with
- ASP.NET Core (.NET 10) and C#
- The API
- MediatR
- Commands and queries
- PostgreSQL and Entity Framework Core
- Data
- Redis
- Caching and rate limiting
- Auth0
- Sign-in and roles
- Flutterwave
- The split payment
- Microsoft Azure and Azure Blob Storage
- Hosting and documents
- Docker
- Containers
- React 18, TypeScript and Vite
- All three environments
- Tailwind CSS v4, Framer Motion and React Router v7
- Styling, motion and routing
- Figma
- Prototypes and components
In pictures





