← All work

Civic Tech — Product Design & Build · 2026

Oireachtas Connect — Civic Engagement Platform

A self-initiated civic platform that makes it easy for Irish citizens to find, contact and hold their TDs and Senators accountable — wrapped in the live legislative, lobbying, electoral and historical context that gives those conversations weight.

Oireachtas Connect — Civic Engagement Platform
Oireachtas Connect — Civic Engagement Platform

Oireachtas Connect (oireachtasconnect.ie) is a one-stop civic platform: view, filter and email all 172 TDs and 60 Senators, track live legislation and votes, follow 11 years of lobbying returns, and explore the elections, referendums and economic data that shape the conversation. Built solo, end-to-end, as a deliberate proof of what one designer can ship in 2026 when AI handles the boilerplate.

Role
Product designer & sole builder — discovery, IA, UX/UI, visual design, data modelling, edge-function plumbing and the entire production build via Lovable
Duration
2025 — Present · live and iterating
Tools
Lovable, React + TypeScript, Tailwind, Supabase (edge functions, Postgres), Oireachtas API, Register of Lobbying, CSO PxStat, Zod, Figma

The problem

Irish democracy is unusually accessible on paper — every TD's email is public, every vote is recorded, every lobbying contact is logged — but the data is scattered across half a dozen government portals, each with its own layout, search quirks and CSV-of-the-week. Most citizens never get past the friction.

I wanted one place where someone could find their representatives in under ten seconds, email them in a single click, and see the legislative, lobbying and economic context that explains why their reply matters.

Specifications

Representatives covered
172 TDs + 60 Senators · all parties, all constituencies
Lobbying data
11 years · 2015 → 2026 · weekly cadence
Elections archived
Dáil 2002–2024 · European 1979–2024 · Presidential 1945–2024
Referendums
45 constitutional votes · 1937 → 2024
Live data feeds
Oireachtas API · Register of Lobbying · CSO PxStat
Team size
1 designer · AI-augmented build on Lovable
Status
Live and iterating · oireachtasconnect.ie

From idea to live product, solo

The whole platform was designed and built by me, end-to-end — research, IA, component design, data plumbing, edge functions, performance work and SEO. The point isn't that AI wrote it. The point is that AI handled enough of the boilerplate that one designer with strong product judgement could ship something that would normally need a small team.

That's the same operating model I'm bringing into medical-device work: compress the parts that don't need a human so the human time goes into the parts that do — research, ethics, edge cases, accuracy and trust.

  1. 01

    1 · Discovery

    Audited the Oireachtas, Register of Lobbying, CSO and Department portals end-to-end. Mapped the gaps — login walls, dead links, paginated CSVs, no cross-source identifiers — and wrote the core user story: find my TD, email them, understand why I'm emailing them.

  2. 02

    2 · Single source of truth

    Modelled cabinet, parties, supporting independents and constituencies as one Zod-validated TypeScript file with invariant tests — no duplicate ministers, seat counts inside bounds, verification timestamps within 180 days. Drift dies at the schema, not in production.

  3. 03

    3 · IA & the hemicycle

    Designed the chamber visualisation arc-first: seat-accurate placement, party colour system, and a Ceann Comhairle / Leas-Cheann Comhairle overlap that flips based on who's actually presiding. Search, filter and multi-select all live on top of the same primitive.

  4. 04

    4 · Build

    React + TypeScript on Lovable. Supabase edge functions proxy and normalise the Oireachtas API, Register of Lobbying and CSO PxStat — caching, retries, schema validation on the way in. The UI never touches a raw gov endpoint directly.

  5. 05

    5 · Trust layer

    A visible Data Freshness badge (green/amber/red) wired to the same verification timestamps the tests check. The Nov '25 reshuffle and the April '26 Healy-Rae no-confidence vote both flowed through one file and were live within minutes.

  6. 06

    6 · Ship & iterate

    Performance budget (~1.7 MB cut on repeat visits), full WCAG-conscious dark-mode parity, semantic HTML, sitemap with IndexNow pings on publish. Iterate weekly against real political events instead of hypothetical user stories.

Designing for trust

Political data drifts. Ministers reshuffle, independents change allegiance, parties merge and split. A civic platform that quietly shows last year's cabinet is worse than no platform at all — so trust became a first-class design constraint, not a footer disclaimer.

Every politically-volatile fact lives in one Zod-validated file. The same timestamps that drive the Data Freshness badge drive the test suite that fails the build if anything is stale. The reader sees a small coloured pill; under the hood it's a contract.

Members directory and hemicycle — 172 TDs arranged in a seat-accurate arc with party colour coding.
The hemicycle is the product's signature. Hover, filter, multi-select — every interaction maps to one primitive.

Find and contact your representatives

Every TD and Senator, filterable by party, constituency, role or free-text search. Multi-select any number of members and the platform composes a single email with their addresses pre-filled, or copies the lot to the clipboard for your own client. The friction between feeling something and saying something drops to a few clicks.

Live legislation, votes and lobbying

A live feed of Dáil and Seanad divisions, each classified by topic — Finance, Housing, Health, Justice — with KPIs for pass rate and "most controversial vote" so the picture isn't just "a list of bills" but "what's actually contested this week."

Lobbying transparency sits on top of the public Register of Lobbying: 11 years of returns (2015 → 2026), broken down by Taoiseach, Tánaiste, ministers, TDs, Senators, public funds and grassroots campaigns, with weekly-contact rates and government-by-government comparisons in plain English.

Lobbying in Ireland dashboard — 11 years of normalised returns, classified by topic and recipient.
Eleven years of Register of Lobbying returns, ingested, de-duplicated and made browsable in one view.

Country metrics — how is Ireland actually doing?

A live national-metrics dashboard pulled from the CSO's PxStat API: unemployment, inflation, earnings, house prices, the live register, housing pipeline, BER ratings, government expenditure, GNI, social protection, vacancy data, population pyramid. Each metric is one-tap-to-email so a citizen can cite the same number their TD just saw on the news.

How's Ireland Doing? — live CSO metrics with one-tap email actions for each indicator.

Historical context — three deep archives

Today's politics doesn't sit in a vacuum. Three archives anchor it: every Dáil election from 2002 to 2024 (with European back to 1979 and Presidential back to 1945), every constitutional referendum from 1937 to 2024, and an Irish-history timeline running from Newgrange to Marriage Equality. Same map components, same colour language, same accessibility floor — so a reader can move from a 2024 vote to the 1995 divorce referendum to the Famine without changing mental model.

The hard problems I had to solve

  • Drift-proof political data

    Zod source of truth + invariant tests + a visible Data Freshness badge tied to the same timestamps the tests check. Stale data fails the build, not the user.

  • A hemicycle that tells the truth

    Seat-accurate arc maths, party colour system, and Ceann Comhairle overlap logic so the chart actually reflects who is in government on the day you visit.

  • 11 years of lobbying, normalised

    Ingesting and de-duplicating Register of Lobbying returns from 2015 to 2026, classifying by topic and recipient, and surfacing weekly-contact rates without drowning the reader in CSV.

  • Civic performance budget

    Proxied member portraits with 30-day immutability, lazy-loaded below-the-fold modules and service-worker caching of hashed assets — ~1.7 MB cut on repeat visits.

Performance, accessibility and SEO

Civic tools have to load on a four-year-old phone on rural 4G. The initial chunk is small, every below-the-fold module is lazy-loaded, and reference data has aggressive TTLs proxied through edge functions so we hit gov APIs once and serve everyone else from cache.

Full dark-mode parity, semantic HTML, real H1s on every page, sitemap with IndexNow pings on publish. The platform earns its visibility instead of buying it.

“The point isn't that AI wrote it. The point is that AI handled enough of the boilerplate that one designer with strong product judgement could ship something that would normally need a small team.”

— Operating model

What it tells you about how I work

Oireachtas Connect is the clearest answer I can give to "what does a designer do, end-to-end, in 2026?" Research that turned into IA, IA that turned into UI, UI that turned into a working product, and a working product held to engineering-grade standards on accuracy, performance and accessibility — all by one person, with AI as a force multiplier rather than a substitute for judgement.

Same instincts I bring to a medical-device GUI: take the messy real-world context seriously, design the trust signals as carefully as the visual ones, and don't ship anything you wouldn't be happy to defend in a review.

Reference

Live site: https://oireachtasconnect.ie

Source data: Houses of the Oireachtas API, Register of Lobbying, Central Statistics Office (PxStat), Department of Housing / Local Government & Heritage.

Civic techProduct designData designUX/UIAI-augmented buildAccessibilitySEOPerformance