// 002  ·  Product Design

Fior — Water Truth

fíor  ·  Irish  ·  true, real, pure

Product Design UX Research Design Systems IoT Health Project Management Prototyping with AI

A mobile app paired with RYAKKA, a bespoke IoT sensor that reads six drinking-water parameters at home and collapses them into four plain verdicts: Excellent, Good, Medium, Bad. Designed for an Irish context where the official reports are annual PDFs and compliance is reported as averages — but the person at the tap still has no idea what came out today.

Role Researcher & UX Designer
Timeline Jun 2025 — Ongoing
Team Solo
Platform iOS · Android · IoT

// Problem

497K
People on at-risk supplies
EPA Remedial Action List · 2024
99.8%
National compliance
EPA · Public Water Supplies

// Response

6
Sensor parameters
RYAKKA · TDS · TOC · COD · UV275 · EC · TEMP
4
Verdict states
Excellent · Good · Medium · Bad

Challenge

In Ireland, an annual EPA compliance report still outpaces what the person at the tap can confirm today. Surface waters slip — only 52% of surface waters are in satisfactory ecological condition, down from 54%. The lead limit halves in 2036 (10 → 5 µg/L), with the highest risk on infants, children, and pregnant women (EPA, 2023). Headline compliance reads reassuring on paper. The kettle disagrees.

Solution

Fior is a mobile companion to RYAKKA, a home sensor that pairs six readings with a four-state Verdict Ladder. The language is calm, not alarmist; every claim is sourced, not asserted. What you can do next, not what you should fear.

Impact

Conceptual MVP — not shipped, but validated. Research drove a persona pivot from rural-first to urban-renter for go-to-market. The output: a token-first design system (281 tokens across three layers, 2,356+ bindings), 15 navigable hi-fi screens, and an ecosystem of three coordinated surfaces — case study, process doc, hi-fi prototype — sharing one design system.

The Research That Shaped Fior

I moved to Ireland in 2022. The first thing my kettle taught me was what limescale looks like — a white crust on the heating element after a week, no matter how often I rinsed it. The tap water was technically safe — the EPA said so. I still didn't really know what was in it.

That gap — between “water is technically safe on the national average” and “I, today, in my house, can confirm it” — became the brief. The consumer category barely exists in Ireland: EPA data sits in institutional reports, not in people's pockets. Fior closes the distance.

// Evidence Base · EPA 2025
  • 99.8%+ of Irish public water samples comply with bacterial and chemical limits — but that national average masks localised risk.
  • ~497,000 people remain on “at-risk” supplies (EPA Remedial Action List, end-2024).
  • The lead limit halves in 2036 (10 → 5 µg/L). Highest risk sits with infants, children, and pregnant women. EPA flagged national progress as “far too slow” (Jul 2025).
  • Surface water quality is declining — only 52% of surface waters are in satisfactory ecological condition, down from 54%.

Sources: EPA · Drinking Water Quality 2024 · EPA · Water Quality Report 2019–2024

Step 01
01

Impact Mapping

Broad Blast Radius · Four Impact Categories

Started broad, on purpose. The prompt was “what are the impacts of untreated water in Ireland?” — not “what app should we build?”. Mapping the blast radius first stops a project from collapsing into a single feature before the problem is understood.

  • Health — waterborne illness, lead exposure, long-term public health
  • Drinking water quality — compliance gaps, private wells, monitoring blind spots
  • Environment — surface water decline, agricultural runoff, estuarine damage
  • Economy — healthcare cost, bottled-water dependency, tourism risk

Each category unlocked a different angle for the next round of questions.

Step 02
02

Problem Statement & Persona Pivot

Statement Held · Primary Persona Shifted

First cut of the problem statement: “Rural households in Ireland need a reliable and affordable way to access clean and safe water, because untreated water can cause health, environmental, and economic issues.”

That statement survived until personas were sketched — and then it pivoted.

// Tension · Persona Pivot

The sharpest primary persona turned out to be the Concerned Renter (urban, 25–40, Dublin / Cork / Galway). Rural well owners have higher objective risk, but renters have higher engageable risk: they can't modify plumbing, they suspect lead pipes, they already buy filtered jugs, and they live inside the quantified-self product category.

Rural well owners became the secondary persona; new parents the tertiary. The problem statement held — the primary target shifted from who was most at risk to who was most likely to act.

Step 03
03

How Might We — 8 Directions

Diverge · One Angle per Impact Vector

Eight How-Might-We prompts, one per impact vector. The aim was not to pick a winner here — it was to surface angles so the ideation round wouldn't start pre-committed.

  • Access… make water testing available to anyone, anywhere in Ireland?
  • Education… turn EPA data into something people actually read?
  • Monitoring… give households a way to check their water continuously?
  • Community… aggregate local readings into a shared map?
  • Tech Leverage… use sensors and phones to move the cost floor down?
  • Feedback Loops… show change over time, not just a snapshot?
  • Service… connect every reading to a next action (boil, filter, call)?
  • Incentives… reward contribution to the community data set?
Step 04
04

Ideation — Four Product Directions

Converge · Filter on Daily Value + Moat + Scope

The HMWs collapsed into four plausible products. Each was scored against three filters: personal daily value, defensibility, and scope discipline (could a solo designer prototype it end-to-end?).

  • 01 Map of clean water sources — directory play, weak personal loop. Rejected
  • 02 Education app — content-led, hard to sustain, no moat. Rejected
  • 03 Monitor + Improve — daily personal value, hardware moat via RYAKKA, contains scope. ★ Selected
  • 04 Community treatment hub — operational product, far out of scope for this brief. Rejected
// Why Direction 03

Personal value every single day — you don't check a map every day, but you do drink water every day. A hardware moat through RYAKKA, the companion IoT sensor that turns six parameters into one verdict. And a scope a solo designer can actually ship end-to-end: six readings, one verdict, one app. Clean boundary.

Step 05
05

First Wireframe — The Spine

4-Screen ASCII · Ancestor of the 15-Screen Hi-Fi

Before any pixel, a four-screen ASCII sketch. Home → Test → Result → Suggestions. That spine is still visible in the 15-screen hi-fi prototype: Home became Dashboard, Test became Measuring, Result became the verdict screen, Suggestions stayed as a hub.

┌────────────────┐   ┌────────────────┐   ┌────────────────┐   ┌────────────────┐
│   HOME         │   │   TEST         │   │   RESULT       │   │  SUGGESTIONS   │
│                │   │                │   │                │   │                │
│  Last test:    │ → │  [ Dip RYAKKA] │ → │   GOOD · 76    │ → │  1. Boil 3 min │
│  08:42 · Good  │   │   measuring…   │   │   TDS · TOC    │   │  2. Filter jug │
│                │   │    ◉ ◉ ◉       │   │   COD · UV275  │   │  3. Log source │
│  [Test again]  │   │                │   │   EC  · TEMP   │   │                │
└────────────────┘   └────────────────┘   └────────────────┘   └────────────────┘
// 4-screen sketch · direct ancestor of the 15-screen hi-fi ← Scroll horizontally to see the full flow →

Everything that followed — 281 design tokens, eight colour ramps, the Verdict Ladder component, the Inter → Nunito migration — was thickening the spine. The spine itself never moved.

A Token-First Foundation

Fior's design system was built directly in code, not translated from Figma. Three layers of tokens, a typography migration mid-project, and a single four-state component that carries the whole product's point of view on health and honesty.

281
Design Tokens
2,356+
Token Bindings
0
Hardcoded Hex
Principle 01
01

Three-Layer Token Architecture

Primitives → Semantic → Component

Every token in the system sits in one of three layers. Primitives hold raw values. Semantic tokens map meaning onto those values (primary, surface, danger). Component tokens bind the semantic layer to a specific UI part. Swap a primitive, the upper layers update automatically.

01 · Primitive --blue-500 #2B8FD9
02 · Semantic --color-primary = --blue-500
03 · Component --button-bg-primary = --color-primary
  • 281 tokens across the three layers — small enough to hold in your head
  • 2,356+ bindings across components, screens, and states
  • Zero hardcoded hex in the component layer — every value traces up through semantic to primitive
Principle 02
02

Inter → Nunito Migration

One Primitive Swap · 2,356 Bindings Updated

Mid-project the brand tone broke the typeface. Inter is crisp and neutral — right for SaaS, wrong for a calm Irish utility that wants to feel like a knowledgeable friend. Nunito's rounded terminals land warmer without surrendering legibility.

// Why the Architecture Paid Off

With a flat system this migration would have been a 2,356-row search-and-replace. With the three-layer architecture, the change was a single primitive swap: --font-family-base pointed from Inter to Nunito, and every semantic and component token propagated automatically.

Ten minutes of work, zero visual regressions. The architecture wasn't theoretical — it paid back the cost of setting it up on the first structural change.

Principle 03
03

The Verdict Ladder

Four States · One Component · One Point of View

Six sensor parameters (TDS, TOC, COD, UV275, EC, TEMP) are complicated. A verdict is not. The Verdict Ladder is the single component that turns the reading into a headline anyone can act on in under two seconds. Four states. Plain English. No numeric wall.

State 01
Excellent
#1AC863 · Green
State 02
Good
#2B8FD9 · Blue
State 03
Medium
#FFB200 · Yellow
State 04
Bad
#F43535 · Red
// Key Decision · Verdict Before Parameter

The dashboard leads with the verdict, not the readings. COD, TDS, UV275 are evidence — they live one tap deeper for the user who wants them. Most users don't. Calm tone over scary tone: the four states never say “unsafe” or “warning” — they say what you should do next (boil, filter, drink).

// Visual Language

Tokens, Type & Spacing

The eight colour ramps, the Nunito type scale, and the base-4 spacing grid — the surfaces the three-layer architecture ultimately resolves to.

// Eight Colour Ramps · 500 Shown
500
Blue · #2B8FD9
Monitor pillar · primary actions · links
500
Accent · #00E87A
History pillar · brand gradient · trends
500
Green · #1AC863
Alerts pillar · Excellent verdict · pass state
500
Yellow · #FFB200
Suggestions pillar · Medium verdict · nudges
500
Red · #F43535
Map pillar · Bad verdict · critical alert
500
Sky · #3D95FF
Supporting accent · info states · secondary CTAs
500
Neutral · #0D1E2E
Body text · app chrome · icon strokes
500
Dark · #071525
Focus surfaces · onboarding · dark mode base
// Type Scale · Nunito · 5 Weights
Display Your water, measured. 40 / 700
Heading 01 Good morning, Ciarán 32 / 700
Heading 02 Last tested today · 08:42 24 / 600
Heading 03 Six sensor parameters 20 / 600
Body Calm, factual, never alarmist. A knowledgeable friend who happens to be a water engineer. 16 / 400
Label Last test · 08:42 13 / 500
// Spacing Scale · Base-4
4
8
12
16
20
24
32
40
48
64

Three Coordinated Surfaces

Fior lives in three live surfaces — the case study you’re reading, a mobile-first process doc, and an interactive hi-fi prototype. They share 281 design tokens, the same Verdict Ladder, the same calm voice. One design system. Three voices.

CLASSIFIED // DOC-ID · RM-2026-H2O
// 002 · CASE
FIOR
Water Truth
fíor · Irish · true, real, pure
// CASE STUDY · CLASSIFIED
// 01 · Surface

Case Study

The narrative entry — the story you’re inside of right now.

Vanilla HTML Death Stranding aesthetic
// reading now · this surface
// 4 MODES Process → Wireframe → Prototype → System
// PROCESS DOC · MOBILE-FIRST
// 02 · Surface

Process Doc

A single mobile-first document with four modes — Process, Wireframe, Prototype, System. Walks the design trail from problem framing to the embryonic system.

Vanilla HTML Zero deps 4 Modes Mobile-first
Open Process Doc
// HI-FI · PROTOTYPE
// 03 · Surface

Hi-Fi Prototype

Vite + React 18 + TypeScript strict. 15 screens across 6 phases and 3 branches. The 4-state Verdict Ladder lives here, end-to-end. Hash routing, no build SSR.

React + TS 15 Screens 28 Tests ~85 KB · WCAG AA
Launch Prototype

Two More on Request

The Figma working file and the FigJam discovery board sit on hold — both still moving as the project does. Walkthroughs available on request during interview.

Restricted Figma · Design System
// Working File

Fior Design System

Primitives, semantic tokens, component specs, the Verdict Ladder in every state — in Figma, still moving.

Restricted Access
Restricted FigJam · Research Board
// Discovery Board

Research & Evidence

The FigJam from discovery — impact map, persona pivot, HMWs, evidence clusters. Kept private to protect participant PII.

Restricted Access
// Reflection

What Fior Taught Me Until Now

Notice the Workaround, Not the Metric

The EPA says Irish public water is 99.8% compliant — and yet Dublin bins are full of bottled water. That gap is the real brief. People weren’t fleeing unsafe water; they were fleeing the absence of personal confirmation. Good research looks less at what people say is wrong and more at the small, recurring workaround they’ve quietly built around the problem. Fior started there — not in a dashboard, not in a lab, but in a bin.

Tokens Are the Product

I built Fior’s design system directly in code — 281 tokens, three layers, 2,356+ bindings, zero hardcoded hex. Figma became documentation instead of source of truth. When the typography had to change mid-project, swapping Inter for Nunito was one primitive edit and the cascade handled the other 847 references. In tokens-first systems, refactors stop being events and become keystrokes.

Give the Verdict Before the Number

Health apps usually lead with readings — TDS 128 ppm, pH 7.2, EC 245 µS/cm — and leave interpretation to the user. That’s a failure of voice disguised as transparency. Fior’s Verdict Ladder leads with the state (Good, Medium, Bad) and hides the parameters one tap away. Calm is an information architecture decision, not a tone-of-voice exercise. Alarm earns nothing; plain-language clarity earns trust.

End-to-end solo only because of disciplined AI co-pilot use across the stack: research synthesis (the 5-step thinking sequence), token architecture (281 tokens, 0 hardcoded hex), and the React + TypeScript prototype (15 screens, mobile-first, 28 passing tests, WCAG 2.1 AA). I direct the system thinking — personas, IA, calm-voice tone, the verdict ladder as the central design decision — and the AI executes the heavy lifting. The result is a single-designer product that holds up to engineering scrutiny, in a timeline a single person could realistically own — an ecosystem of three coordinated surfaces (case study, process doc, hi-fi prototype) sharing one design system.