I started the week by standing up the foundation for something Alt News should have had a long time ago: our own donations platform.
Right now we use a third-party widget. It works, but it means donor data sits on someone else's servers, we pay fees we can't negotiate down, and every time a regulator changes a rule we have to hope the vendor updates their compliance before we get a notice. That is not a great position for an organisation whose entire business model is asking the public to trust us.
So I'm building it in-house. Nothing flashy. Just a clean, self-hosted backend that collects donations in Indian Rupees only — because Alt News is not FCRA-registered and we are legally barred from accepting foreign currency — and stores donor records on our own infrastructure.
Privacy by design
The hard part is not the payment gateway integration. That is boring plumbing. The hard part is designing the system so that donor privacy is not an afterthought. Today I mapped out the full database architecture, which means figuring out where every piece of donor information lives and who can touch it.
PAN numbers, for example, are required for 80G tax receipts, but I do not want them sitting in plaintext in any database. The schema stores them encrypted, with a one-way index that lets us look up a returning donor without ever decrypting the original number. There is also an audit log that records every change to every record, explicitly locked so that even the application itself cannot delete history.
Regulatory constraints baked in
I am also baking in the regulatory constraints at the database level — capping recurring donations at the RBI's 15,000 INR limit, locking currency to INR everywhere it matters, and computing financial years correctly for Form 10BE and Form 10BD tax filings. These should not be application-layer afterthoughts that a bug can bypass.
What's done so far
The rest of the day was setup work: getting the Nix development environment running, fixing a linking issue, and generating the first database migration. There is a basic health-check endpoint that proves the database and Razorpay are reachable. That is all. Session one and two are done. Session three is the actual donation flow — the part a donor sees.
I am building this slowly, in the gaps between everything else, because sustainable infrastructure for independent media is worth doing right rather than fast. When it is ready it will live at contribute.altnews.in, on a server in Mumbai, running open-source software end to end.
More soon.