Inspiration
Political accountability data in India already exists — ECI Form 26 affidavits, ADR/MyNeta disclosures, Lok Sabha attendance records, MPLADS spending reports — but it's scattered across dozens of government portals, buried in PDFs, and effectively invisible to the average citizen. If you want to know whether your MP's declared assets have grown suspiciously fast, or whether a relative of theirs is winning government contracts, you need to already be an investigative journalist with time to dig. NetaWatch was built to close that gap: put all 543 Lok Sabha MPs into one searchable, sourced, verifiable platform anyone can use in seconds.
What it does
NetaWatch is a civic intelligence platform covering every Lok Sabha MP with:
- Asset & wealth tracking — declared movable/immovable assets, liabilities, and year-over-year growth history sourced from ECI Form 26 affidavits
- Criminal & judicial records — case numbers, IPC sections, court levels, and case status
- Parliamentary performance — attendance rate vs. national average, debates participated in, questions asked, committee memberships
- MPLADS fund delivery — how much of an MP's development fund allocation was actually spent, and on what
- Nepotism & conflict-of-interest detection — flags relatives of politicians who run government-contracted businesses, or whose property holdings grew suspiciously after the politician took office
- Side-by-side comparison of up to 4 MPs across all of the above
- An AI dossier generator (Gemini-powered) that can synthesize a full verified profile for any MP on demand, with a local heuristic fallback when the API is unavailable
How we built it
The frontend is React 19 + TypeScript + Vite, styled with Tailwind CSS v4, with GSAP and Motion driving the interactive 3D module showcase and comparison views. The backend is an Express server that serves the app, exposes REST endpoints for constituency/MP data, and talks to the Gemini API server-side (the API key never touches the client). Data models are strongly typed end-to-end (Politician, LegalCase, ManifestoPromise, etc.), with a mix of manually-verified deep profiles for high-profile MPs and synthesized candidate profiles for the remaining 543.
Challenges we ran into
Keeping the AI dossier generator honest was the hardest part — it's easy for an LLM to produce plausible-sounding but fabricated numbers for a civic accountability tool, which is the opposite of what the product is for. We constrained generation with a strict JSON schema, cited source categories (ECI Form 26, ADR, PRS Legislative Research, Lok Sabha Hansard), and built a deterministic fallback synthesizer so the app never silently serves unverified data as if it were confirmed. We also had to design the 543-MP dataset architecture so that a handful of deeply-verified profiles and hundreds of synthesized ones could coexist without the UI treating them as equally authoritative.
Accomplishments that we're proud of
Getting real, sourced civic data — not placeholder content — into a fast, genuinely usable interface covering the entire Lok Sabha, not just a handful of famous names. The nepotism/conflict-of-interest tracker in particular does real computational work (asset CAGR analysis, contractor-tenure cross-referencing) rather than just displaying static text.
What we learned
How much friction exists between "the data is technically public" and "a citizen can actually use it" — and how much of civic tech is really about interface and synthesis, not just data access.
What's next for NetaWatch
Expanding verified (non-synthesized) deep profiles beyond the current high-profile MP set, adding state assembly (MLA) coverage alongside Lok Sabha, and layering in rate-limited public API access so journalists and researchers can query the dataset programmatically rather than only through the UI. Longer-term, the same architecture — verified public records + AI-assisted synthesis with strict schema constraints — generalizes to any country's legislative accountability data, not just India's.
Built With
- lucid-react
- react
- typescript
- vite

Log in or sign up for Devpost to join the conversation.