A few weeks ago I built and deployed a full website for Shree Jagdamba Adharbhut Vidyalaya — the primary school in Jetharahiya, my own home village in Rautahat, Nepal. I designed, coded, and deployed every part of it myself, and delivered it completely free of charge.
I wanted to write up the technical side of it, because a few of the decisions might be useful to other solo developers building for clients with zero budget and patchy mobile connections — which, realistically, describes most schools and small institutions in rural Nepal.
Live site: jagdamba-school-five.vercel.app
The constraints that shaped everything
Before any code, three real-world constraints decided most of the architecture:
∙ Zero budget. No paid APIs, no paid hosting tiers, no Firebase Storage (which now requires the Blaze plan even for free-tier usage).
∙ Non-technical staff need to update content. Notices, staff info, and gallery photos change regularly, and there’s no developer on-site to do it.
∙ Slow mobile connections. Most visitors will be on mobile data in a rural area, often on older phones.
Every technical choice below traces back to one of these three things.
Solving “the admin panel only works on one device” problem
On an earlier project (a cooperative society site), I’d used localStorage for the admin panel. It worked, but edits made on a phone never showed up on the laptop, and vice versa — a real, recurring pain point.
This time I used Firebase Firestore (Spark/free plan) instead. The admin panel writes directly to Firestore, and the public site reads from it on load:
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)