
Migration from a legacy WordPress to a 54-route strategic institutional site — not merely informational — for a Jesuit NGO with 40+ years behind it: it attracts donations and volunteers, offers an anonymous reporting channel, provides accountability through transparency, and showcases its ecosystem of apps, all while preserving the SEO built up over the years.
The brief was not to make the site prettier but to turn it into a strategic tool: attracting donations and volunteers, a secure anonymous reporting channel, transparency through PDF audits and certificate verification — all migrating off a slow WordPress (~2,371 files) without losing rankings.
I implemented an HTML-in-React pattern that serves the Donatix template byte-exactly under App Router (Server Component + dangerouslySetInnerHTML), with the ~26 legacy scripts orchestrated on the client. I wired three forms to Firestore with security rules (default-deny, schema validation, admin allowlist), hardened anonymity on reports (no IP or user agent), plus a honeypot, rate limiting and 301 redirects from the legacy WordPress.


