What is real, what is mocked, what is not built
This is an independent demonstration built for a hackathon — a rethink of UMANG, the Government of India’s unified citizen services app. It is not affiliated with, endorsed by, or connected to UMANG, NeGD or MeitY. It contacts no government system and holds no real data. “Seva” is a working name, not a product. There are no government logos or official colours here, and nothing on these pages implies endorsement by anyone.
| Eight service manifests | Authored as YAML, parsed at build, running in your browser. Nothing about a service is written in a screen. |
| Eligibility evaluation | A real expression parser over the profile. No eval(), no model. Every decision names the rule that produced it. |
| The conformance linter | Twenty-odd checks run live on /inspect. A manifest that fails is withheld from citizens, not shown with a warning. |
| Status translation | Department codes become sentences from the status dictionary. An undeclared code is reported as unknown, never guessed. |
| SLA clock and escalation | Day counts, breach detection, and the escalation ladder firing on its own schedule. |
| Rejection remedies | Cause, fix, remedy service and appeal window, all from the manifest. |
| Save and resume | Answers are written to local storage on every keystroke and survive a refresh or a dropped connection. |
| Operator console | Consent capture, PII minimisation to the fields the manifest allows, and a receipt to the citizen. |
| Hindi | Authored strings in the manifests and the interface, not machine translation. |
| Accessibility | Keyboard-completable journeys, visible focus, 48px targets, live regions, reduced-motion support, elder mode driven by the profile. |
| Offline after first load | A service worker caches the app, and case state lives in local storage. Losing the connection does not lose your work. |
| First load, landing page | 185 KB gzipped |
| First load, signed-in home | 204 KB gzipped |
| First load, /inspect | 216 KB gzipped — it carries the manifest source text |
| Our own application code | about 20 KB of that. The rest is the React and Next.js runtime. |
| Images | None. No image is loaded anywhere in this build. |
| Fonts | Two families, subsetted and self-hosted, with real system fallbacks. Devanagari is a first-class subset. |
| Runtime network requests | None after load. No API, no analytics, no model calls. |
We set ourselves a 200 KB budget and the signed-in pages come in slightly above it. The overage is the framework baseline rather than anything we wrote, and we would rather print the real number than move the line.
| Sign-in and OTP | No UIDAI, no SMS. The Verhoeff checksum is the real algorithm, and we deliberately refuse any number that could be a real Aadhaar. |
| Departments | EPFO, the pension system, e-District, PM-Kisan and the scholarship portal are mock adapters with scripted timelines, latency and outage modes. |
| Every number | Balances, pensions, dates, case ids — all invented. No real person is represented. |
| The clock | A virtual clock, so a twenty-day journey fits in a two-minute demo. |
| Documents | No file is generated or signed. |
| Voice input | The intent box shows where it belongs. Speech is not implemented. |
| Push notification delivery | The kernel computes what a person should be told; nothing is actually sent. |
| Real authentication | Out of scope by rule — identity, OTP and payment authorisation are not ours to touch. |
| A production data model | Profiles are seeded personas, not a records system. |
| A language model at runtime | Not used anywhere. Intent routing is deterministic token matching. Nothing calls out to a network. |
Where a language model was used
At build time only: drafting manifests from department documentation, scaffolding the archetype machines, generating conformance rules, and drafting plain-language and Hindi strings — each reviewed by a human before it shipped. At runtime there are no model calls, no API keys and no network requests. The architecture permits a model for intent routing and phrasing; it forbids one for deciding eligibility, inventing a status meaning, or fabricating a next action.