The brief

SaralSeva is a digital platform that simplifies government documentation for citizens of Assam, India. The client came in with a clear pain point and a long list of forms — caste certificates, income proofs, Permanent Residence Certificates, name corrections, and around two dozen more — each requiring slightly different inputs, supporting documents, and submission paths.

The ask was concrete: make it faster for one citizen to start, complete, pay for, and track a government documentation request, end-to-end, on the web.

The problem

Government documentation in India is bureaucratic by design and digital by accident. A typical citizen flow looks like this:

  • Find the right form across multiple state portals
  • Print, fill by hand, gather supporting documents
  • Travel to a service center, queue, submit
  • No tracking, no acknowledgement, no recourse if something is missing
  • For 30+ document types, that's 30+ different mental models to hold

The opportunity wasn't to replace the government — it was to compress the pre-submission and post-submission experience into one app a citizen could trust.

What I built

A full-stack Next.js platform with:

  • 30+ guided application flows. Each form is its own schema-driven wizard with conditional fields, document uploads, and inline validation. Citizens never see a 50-field PDF; they see one question at a time.
  • Authentication. Phone-based auth — the only identifier most rural users have. Sessions persist across devices.
  • Integrated payments. Razorpay for application fees. Receipts, refund handling, and reconciliation built in.
  • Real-time WhatsApp status updates. Each application moves through stages — draft, submitted, in review, approved, dispatched. Every transition fires a WhatsApp message. No app to install, no email to check.
  • Admin dashboard. Internal tools for the SaralSeva team to triage applications, request more documents, and close out cases.

Stack and decisions

  • Next.js (App Router) + TypeScript for the frontend and API routes.
  • Postgres as the primary store. Each application is a row; each form is a JSON schema referenced by an application type.
  • Razorpay for payments — local-first; UPI is the default rail.
  • WhatsApp Cloud API for transactional notifications.
  • Tailwind for styling, with a custom design system tuned for low-bandwidth, mobile-first users.
  • Vercel for hosting; preview deploys on every PR so the client could approve flows visually instead of in screenshots.

The core architectural decision was making the form schemas data, not code. Adding form #31 doesn't require a deploy — it's a JSON schema entry. The same renderer handles every form.

What this proved

For me, SaralSeva was a chance to ship a real-world full-stack product with payments, auth, regional UX considerations, and a non-trivial state machine — not a toy CRUD app. The brief looked simple ("a website for forms") and the build was anything but.

For the client, it's a working platform serving citizens in Assam, with the operational levers (admin tools, WhatsApp pipeline, payment reconciliation) in place to scale beyond the initial 30 forms.

If you have a brief like this

I take on a small number of full-stack Next.js projects each year — usually for founders or teams who need someone who'll handle the whole thing: schema design, frontend, payments, third-party integrations, deploys. If that sounds like your project, the contact form is the right next step.

Tell me about your project