Demo build. All data is synthetic. No government system is contacted.What is real, what is mocked
Honesty

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.

Really works — you can check it in the browser
Eight service manifestsAuthored as YAML, parsed at build, running in your browser. Nothing about a service is written in a screen.
Eligibility evaluationA real expression parser over the profile. No eval(), no model. Every decision names the rule that produced it.
The conformance linterTwenty-odd checks run live on /inspect. A manifest that fails is withheld from citizens, not shown with a warning.
Status translationDepartment codes become sentences from the status dictionary. An undeclared code is reported as unknown, never guessed.
SLA clock and escalationDay counts, breach detection, and the escalation ladder firing on its own schedule.
Rejection remediesCause, fix, remedy service and appeal window, all from the manifest.
Save and resumeAnswers are written to local storage on every keystroke and survive a refresh or a dropped connection.
Operator consoleConsent capture, PII minimisation to the fields the manifest allows, and a receipt to the citizen.
HindiAuthored strings in the manifests and the interface, not machine translation.
AccessibilityKeyboard-completable journeys, visible focus, 48px targets, live regions, reduced-motion support, elder mode driven by the profile.
Offline after first loadA service worker caches the app, and case state lives in local storage. Losing the connection does not lose your work.
Measured — run `npm run budget` yourself
First load, landing page185 KB gzipped
First load, signed-in home204 KB gzipped
First load, /inspect216 KB gzipped — it carries the manifest source text
Our own application codeabout 20 KB of that. The rest is the React and Next.js runtime.
ImagesNone. No image is loaded anywhere in this build.
FontsTwo families, subsetted and self-hosted, with real system fallbacks. Devanagari is a first-class subset.
Runtime network requestsNone 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.

Mocked — and said so on screen
Sign-in and OTPNo UIDAI, no SMS. The Verhoeff checksum is the real algorithm, and we deliberately refuse any number that could be a real Aadhaar.
DepartmentsEPFO, the pension system, e-District, PM-Kisan and the scholarship portal are mock adapters with scripted timelines, latency and outage modes.
Every numberBalances, pensions, dates, case ids — all invented. No real person is represented.
The clockA virtual clock, so a twenty-day journey fits in a two-minute demo.
DocumentsNo file is generated or signed.
Claimed in the architecture, not built here
Voice inputThe intent box shows where it belongs. Speech is not implemented.
Push notification deliveryThe kernel computes what a person should be told; nothing is actually sent.
Real authenticationOut of scope by rule — identity, OTP and payment authorisation are not ours to touch.
A production data modelProfiles are seeded personas, not a records system.
A language model at runtimeNot 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.