Journal · Case study
The making of SPIF.in.
Published June 27, 2026 · Updated July 19, 2026
Adostrophe is primarily a Matterport 3D scanning business, but web development and technical SEO come up regularly too. The Suicide Prevention India Foundation (SPIF) rebuild, done pro bono, is the clearest example of that side of the work.
SPIF.in delivers real public health resources, often to someone on a mobile connection at a moment that matters. That constraint shaped every decision here more than any general best-practice checklist would have.
If you or someone you know needs support: Tele-MANAS, 14416 (free, 24/7, multilingual, nationwide).
Why static, not a CMS
The old site ran on a CMS: a visitor arrives, the server queries a database, runs backend code, then returns the page. On shared hosting, that takes real time, and when someone needs a helpline number immediately, any delay works against the site's actual purpose. The rebuild is static HTML, CSS, and vanilla JavaScript, pre-built and deployed to Azure Static Web Apps using credits from the Microsoft Founders Hub. No database to query, no backend to execute; the server just hands over a finished file. It also shrinks the attack surface considerably, since there's no admin panel or plugin ecosystem to keep patched.
Built mobile-first, on purpose
The CSS is written mobile-first: small-screen layout as the default, desktop rules added afterward via min-width media queries, rather than the reverse. That way a phone isn't wasting processing power parsing desktop rules it has to immediately override. HTML, CSS, and JavaScript are also fully decoupled: if a script fails to load on a weak connection, the actual content (navigation, text, contact numbers) still works without it.
Dark mode that applies before the page even paints
Someone searching for support late at night shouldn't get hit with a bright white screen. A small inline script in the document head checks the device's color scheme preference before rendering anything, so dark mode applies immediately: no flash of white, no toggle to hunt for.
Analytics without the usual bandwidth cost
GA4 reporting still mattered, but loading Google's standard tracking script directly competes with the actual page for bandwidth. Tracking runs through Cloudflare Zaraz instead, processed at the network edge, so the visitor's device sends a small signal rather than downloading a full analytics library. IP addresses aren't forwarded directly to Google either.
Keeping the Ad Grant, and the old backlinks
SPIF runs on a Google Ad Grant, which requires fast, secure landing pages to stay compliant. The static architecture keeps that true by default rather than something to monitor constantly. The site also carries a real history of backlinks from news coverage and reference sites; every old URL was mapped and redirected at the server level in Azure's config, so none of that link equity got quietly lost in the move.
Illustrations instead of stock photos, HTML instead of PDFs
Stock photography got replaced with custom vector illustrations, faster to load and a more neutral, consistent tone than generic stock imagery tends to have. Several clinical toolkits that existed only as PDFs were converted into proper semantic HTML, since PDFs are notoriously hard to navigate on a phone and don't get indexed well. A CSS print stylesheet covers anyone who still wants a clean physical copy.
What's still ahead: donations
Razorpay integration for donations isn't live yet. It depends on SPIF completing their own merchant sign-up first, which is still pending. Once that's done, the plan is to keep the entire transaction on the SPIF domain, supporting UPI, cards, and wallets, rather than redirecting to a third-party payment page.
This is ongoing work, not a one-time project. Publishing updates, watching analytics, and managing the Ad Grant campaign continues alongside SPIF's own team.
Before you ask
Worth knowing.
Why did SPIF.in move away from a CMS?
A CMS relies on a server-side request cycle for every page load: a database query and backend code before anything reaches the visitor. For a platform where someone might need a helpline number immediately, that delay works against the site's purpose. Static HTML removes that step entirely.
Why implement dark mode for a public health platform specifically?
Many searches for support happen late at night. A script checks the device's preference before the page renders, so dark mode applies immediately without a bright white flash or a toggle to find.
What is Cloudflare Zaraz, and why use it here?
It processes analytics at the network edge instead of loading a full tracking script in the browser, lighter for the visitor's connection, and IP addresses aren't forwarded directly to Google.
Is the Razorpay donation integration live yet?
Not yet. It depends on SPIF completing their own payment merchant sign-up first. Once that's done, donations will stay entirely on the SPIF domain rather than redirecting elsewhere.
Can Adostrophe do this kind of rebuild for other organizations?
Yes. The same static-first, mobile-first approach is used for commercial clients too, including the Surya Group's three sites (a hospital, a hotel, and a nursing college).
Start a project
Tell us about the space, and we'll tell you what it'll take.
Most replies come within a day. Most enquiries start with a short email about the space.
Email info@adostrophe.com
