Anya Ngay mascot

Lab · Case study

Anya Ngay

A twenty-second mood check-in for the people who answer “okay lang” on reflex.

Role

Product design — end to end

Scope

Product · design system · prototype

Type

Self-initiated

Year

2026

Overview

The people who most need to pause are the ones who never ask.

Anya Ngay names a feeling in the language its user actually speaks — and is explicit that it offers awareness, not treatment. Every decision below is on the record, including the one I reversed.

28

Locked decisions

237

Design tokens

15

Test sessions

5.5/7

Average SEQ

What this proves

Evidence

The usability test failed my own design.

A flow I was confident in finished 2 of 12 times — and testers rated it the easiest of the three. Confidence while going the wrong way is the most expensive failure to find late.

Integrity

I dropped a claim the research killed.

The six mood shapes were presented as drawing on Cordillera visual culture. A deep research pass found no documented motif carries an emotional meaning — so the claim went, and the artwork stayed.

Research · Product · Design system · Prototyping · Localization

01 · Discover · Define · Design

Clinical feels like overkill. Journalling loses to a packed schedule.

High-functioning people mask stress until it surfaces as burnout. What exists is either too clinical to identify with, or too effortful to sustain — and for an Ilocano speaker, English-first as well.

The wedge: non-clinical, low-effort, in-language. Awareness, not treatment.

Localisation is copyable — any competitor can translate a string file. The register is not: the way a kabsat actually asks how you are.

Twenty-eight decisions are logged with their reasoning. These six carried the most weight.

D1 · Local-first, account optional

No required signup in the first version. It removes first-run friction and makes “your data is yours” literal rather than a line in a policy.

D20 · Voice is 50% English, 30% Tagalog, 20% Ilocano

An earlier decision made Ilocano lead. Read back, it sounded like a textbook to bilingual users — so I flipped it. Ilocano stays potent precisely because it is the accent, not the whole dish.

D19 · Anonymous-minimal telemetry

Four content-free events, no session replay, no autocapture. Mood values, reflections and history never leave the device in any build.

D18 · Consent gate on test builds

Session replays are personal data. Recording testers without telling them would contradict the exact promise the product makes.

Emoji as a system

Hybrid by necessity. Vectors cannot do soft-3D shading, so hero emoji are 3D renders and the small system set stays outlined vector, with strokes outlined to fills so they scale at any size.

Grounded, not decorated

Eleven behavioural mechanisms — affect labelling, emotional granularity, self-determination, peak–end — mapped to concrete patterns, alongside an explicit list of dark patterns the product refuses to use.

02 · The product

Dark everywhere, except the one moment that matters

Dark-only by decision — the app is opened one-handed, at the edges of the day. The one exception is the check-in, which lifts into pale mint so naming a feeling reads lighter than everything around it.

Anya Ngay Onboarding screen

Onboarding

Naimbag nga aldaw — the greeting, in Ilocano

Anya Ngay Check-in screen

Check-in

Neutral entry: no mood pre-selected, so the app never anchors the answer

Anya Ngay Home screen

Home

Returning state — 45 check-ins, themed to today’s mood

03 · Colour

One accent, held back

Mint is the only accent, so it always means the same thing: this is the thing to touch. Mood colour floods the screen on check-in, then recedes. Coral is reserved for destructive actions.

Page

#00201D

The base. Dark-only, by decision.

Raised

#005049

Cards and raised surfaces.

Mint

#39FCE9

The one accent. CTAs and highlights.

Tint

#B2EEE5

Muted text and quiet supporting copy.

Coral

#FC4039

Reserved — destructive only.

04 · Voice

Fifty English, thirty Tagalog, twenty Ilocano

I started with Ilocano leading every line. Read back it sounded like a textbook — this user thinks and texts in a mix. The ratio settled near 50 / 30 / 20: English carries the interface, Tagalog carries the sentence, Ilocano carries the relationship.

English · 50%

“How are you today, kabsat?” · “Let’s go nga dagus”

The neutral base. Interface verbs and anything technical stay in English — the way this user reads them.

Tagalog · 30%

“Walang tama o mali, kabsat.” · “Hindi iisang mood ang buwan mo.”

The connective tissue. The everyday register that carries the sentence.

Ilocano · 20%

“Anya ngay?” · “Naimbag nga aldaw!” · “kabsat”

The address, the greeting, the name-line. One or two beats a screen, never a paragraph.

05 · Deliver

Tokens, components, product

Three tiers, 237 variables, 20 components, versioned to v0.8. The semantic tier is named for emotion rather than hue — Anxious, not Orange — so the mapping from feeling to colour lives in one place and can change without touching a screen.

1 · Primitives

117

Raw ramps — six mood hues plus mint and green. Never bound to a screen directly.

Color/Green/950 · Color/Mood/Coral/700

2 · Tokens

13

The numeric layer: radius, border width, scale.

Border-Radius/md = 16 · Border-Width/sm = 1

3 · Semantic

97

Role-named — and emotion-named for moods, never hue-named.

Surface/Page · Text/Muted · Mood/Anxious/Base

Storybook · soon

06 · Process

Two contexts, six phases, one codebase

The design system and the product live in separate contexts on purpose — one authors ANYA-DS, the other consumes it. A gap found mid-screen goes back as a token request rather than being hand-built, which is what stops the system drifting.

0 Foundations → 1 Design system → 2 Screens → 3 Build → 4 Validate → 5 Ship

The stack

Figma

Design system

Claude Design

Screens · emoji

Claude Code

The build

Notion

PRD · decisions

Expo · TypeScript

One codebase

PostHog · Clarity

Instrumentation

Vercel

Test build

Storybook

Next, not built

07 · Validation

Two tasks passed. The third finished 17% of the time.

Fifteen real sessions, 439 tracked interactions, three timed tasks.

Task

Task

Started

Started

Completed

Completed

Median

Median

SEQ

SEQ

Setup

Setup

11

11

100%

100%

41.9s

41.9s

5.3

5.3

First check-in

First check-in

12

12

100%

100%

7.4s

7.4s

5.6

5.6

Data control

Data control

12

12

17%

17%

5.4s

5.4s

6.0

6.0

Changing what the app may keep finished twice in twelve attempts — and was rated the easiest of the three, at 6.0. People were confident while going the wrong way, which is the most expensive kind of failure to find late. 64% never scrolled home, and the first tap landed on settings half the time. The control was not hard to use. It was somewhere nobody looked.

08 · Reflection

The decision I reversed

The six mood shapes were originally presented as drawing on Cordillera visual culture. A deep research pass — 21 sources, 98 claims, 25 of them adversarially verified and 10 killed — found that no documented Cordillera motif carries an emotional meaning. Every recorded gloss is theological, agricultural, protective or status-bearing. Sun-as-happy was refuted outright. Worse for reuse, much of the vocabulary is rank-governed or earned, and using it without context is defined by Ifugao cultural authorities as irresponsible.

So I kept the artwork and dropped the claim. Sun-as-warmth and teardrop-as-sadness are near-universal, and the shapes still work — they simply are not heritage, and saying so would have been a nicer story than the truth. The limits of that finding are on the record too: it argues from an accessible-record silence, oral tradition was out of scope, and the consent question under IPRA remains unanswered. Genuine grounding would require community consultation, not a research pass.

What I would validate next

UI / UX

Re-test the flow the test broke

The data-control task finished 17% of the time, and 64% never scrolled Home — so everything below the fold is unproven rather than unpopular. Move the control to where the first tap already lands, then run the same three tasks again and compare.

Business

Retention is the whole bet

Mental-health apps sit near 3.3% median D30 retention, so the honest target is 4+ days a week among activated users, not everyone. The moat is the register, not the translation: a competitor can copy a string file, never the way a kabsat asks how you are.

Neuroscience

Affect labelling is the mechanic

Naming a feeling reduces its intensity — among the better-replicated findings in affective neuroscience. Eleven mechanisms map to concrete patterns, but the line between strong and merely suggestive evidence stays explicit. The product promises awareness, not treatment.

Marketing

Language choice is a demand signal

The test build logs which locale people switch to, which tells you where translation quality actually returns. Positioning as awareness rather than therapy also sidesteps the stigma that keeps this audience away from clinical apps — and away from the category’s usual playbook.

Still open: whether a crisis-safety affordance belongs in the first version or the one after it. That one needs a judgement call, not more desk research.

menu

Create a free website with Framer, the website builder loved by startups, designers and agencies.