What Strict Constraints Force You to Do
No external CDN meant every font, icon library, and asset had to be self-hosted and audited. I learned exactly what was in my bundle in a way I never had before. Dependencies that load from external URLs — Google Fonts, CDN-hosted libraries, cloud analytics — all had to be replaced or removed. The result was a leaner, more auditable application than I'd have built otherwise.
The offline-first requirement (Army intranet connectivity is not guaranteed) forced proper progressive web app patterns — service worker caching, offline fallback pages, optimistic UI updates that synced when connectivity returned. These aren't patterns I'd built rigorously before. I've used them on every suitable project since.
Defensiveness as a Default
Every API call assumed it could fail. Every form assumed the submit could fail. Every state update was designed to be reversible. This level of defensive programming felt excessive at first — in a commercial web application, you handle the happy path and hope the edge cases don't matter.
In a Ministry of Defence context, the edge cases matter. The discipline of writing code that fails gracefully under every condition — including conditions you haven't thought of — is something I now bring to every project by default.
Key takeaways
- Self-hosting all assets (fonts, icons, libraries) forces you to audit your dependencies and results in a leaner, more secure, more performant application
- Design for failure first — every external call, every state mutation, every form submission should have explicit error handling and a graceful degraded experience
- GIGW and WCAG accessibility requirements overlap significantly — implementing one seriously usually means implementing the other
Conclusion
Constraints make better engineers. The Army project forced rigour that I'd been approximating in commercial projects. Every application I've built since is more defensive, more accessible, and more self-contained for having done it.
Enjoyed this article?

Vivek Kumar Singh
Technical Expert · Full Stack Cloud Engineer · Tokyo, Japan