AfterACTION
Case study · No. 01·2026

AfterACTION

01
Role
Solo design + build
02
Year
2026
03
Timeline
4 months
04
Stack
Expo · RN · Vercel
05
Tools
Claude · Cursor · Figma
06
Status
Live · iOS pending
After Action home screen
After Action journey screen
01 · At a glance

A one-person DVA guide, shipped over four months.

After Action is a mobile and web app that translates the Department of Veterans’ Affairs into plain English. Veterans land on Home, get the Crisis tile, ten topic tiles for needs-based triage, and a seven-step guide for the Gold Card path. Static TypeScript data, no backend, no accounts. Designed and built by an Australian veteran over four months.

02 · The problem

DVA’s site is exhaustive and incomprehensible.

A veteran who needs to know whether they qualify for a Gold Card, find a counselling number tonight, or work out what a TPI claim actually involves has to wade through a bureaucratic portal that assumes they already know the acronyms.

The veterans who most need this information (older, in pain, mid-crisis, or just discharged) drop out before they find what they’re entitled to. The system rewards persistence, which is exactly what the population doesn’t have.

03 · The approach

Three rules that drove every screen.

  • i

    Plain English, always.

    If a sentence needs a glossary, rewrite the sentence. Year 10 reading level throughout. Not a constraint: the goal.

  • ii

    Crisis is one tap from anywhere.

    A vet in distress doesn’t navigate menus. The Crisis row is the first interactive element on Home, the first row of Quick Finder. One tap to a screen of phone numbers.

  • iii

    Curated beats clever.

    No AI free-text search on the front door. A grid of ten topic tiles with hand-written content. Predictability outranks flexibility when the user is anxious, exhausted, or new to the system.

Surfaces · six screens

After Action home screen
Home
No. 01

Editorial hero + Crisis tile pinned high

After Action finder screen
Quick Finder
No. 02

10 topic tiles · needs-based triage

After Action crisis screen
Crisis
No. 03

One-tap hotlines, no menu dive

After Action topic screen
Topic Hub
No. 04

Hotlines + entitlements + links

After Action journey screen
Apply
No. 05

7-step Gold Card Journey + documents

After Action benefits screen
Benefits
No. 06

Gold / White / Orange card hub

Plain Talk · feature

The Plain Talk toggle lives in the header. Flick it on and DVA names get rewritten as plain English everywhere the veteran reads. State persists across the app.

Plain Talk · off
After Action plain-talk-off screen

The DVA-native labels.

  • 01Benefits
  • 02Apply
  • 03Housing
  • 04Glossary
Plain Talk · on
After Action plain-talk-on screen

Same content, plainer language.

  • 01BenefitsYour Entitlements
  • 02ApplyApply for Your Card
  • 03HousingHelp with Housing
  • 04GlossaryWord List
04 · Brand identity

One disciplined type voice. Two surfaces. Crisis red as the only chromatic exception.

The system is built around a warm near-black dark surface, with a single royal-blue accent and a translucent dark red reserved for Crisis. Every other token is restraint.

/Logomark

After Action logomark
Mark · primary · teal on ink

The mark is two chevrons brought together. Read one way, they lock into the silhouette of an A : the “After” in After Action. Read the other way, they’re two arrows reaching toward each other: one veteran helping another.

  • 01Two chevrons. Cohesion over hierarchy. Neither sits on top of the other.
  • 02An “A”, lock-up. The negative space between them holds the letterform without spelling it.
  • 03Two arrows, closing. Help moving inward, from veteran to veteran, not top-down from an institution.

/Wordmark

AfterACTION
Primary · dark surface
AfterACTION
Light surface

/Colour palette

Ink#141210

Page background · dark mode

Teal#3DA5C4

Accent · icons · primary actions

Paper#F0EDE8

Primary text on dark

Teal deep#1C7E9C

Pressed · depth · gradients

Teal bright#4AB5D4

Hover · focus · highlight

Brass#CBA35E

Premium signal · Pro · verified

Raised#252320

Elevated callouts · wizards

Surface#1E1C19

Tiles · sheets · hub cards

Crisis red#DC2626

18% opacity on Crisis tile

Crisis soft#FECACA

Text on Crisis surfaces

AA contrast verified for every text-on-surface pair. Teal carries action; brass is reserved for premium and verified signals. No pure black (#000) or pure white (#fff) anywhere in the system.

/Typography

Lato
Display + UI
Weights · 400 · 700 · 900 · 400 italic

Carries the editorial display load with the weight needed for big serif-style headlines. Reads at 11px on a phone, holds up at 11rem on the hero.

Lustria
Body serif
Weights · 400

A quietly literary feel for body copy. Adds the editorial-magazine note to descriptions and long-form paragraphs.

Orienta
UI medium
Weights · 400

Sits between Lato and Lustria as the conversational UI voice. Used for buttons, pills, overlines, tab bar.

Display · Hero H1
clamp(3rem, 10vw, 8rem) · w900 · -0.04em
After.
Section H2
clamp(2rem, 4vw, 3.5rem) · w900 · -0.03em
Find what you’re entitled to.
Card title · H3
28px · w700 · -0.02em
In crisis right now
Body · lede
18px · w400
Counselling, peer support, and crisis lines for veterans and their families.
Body · default
14px · w400
Free treatment for any mental health condition, no need to prove it relates to service.
Eyebrow · uppercase
11px · w500 · 0.18em
QUICK FINDER
Data · phone · verified date
13px · w700
1800 011 046 · verified 2026-05-16
Banned in this project: Roboto, Helvetica, Inter, San Francisco system stack, anything that reads as “default tech app”. No monospace anywhere in product copy.

/Tone of voice

Plain English, not jargon
YES“Free treatment for any mental health condition, no need to prove it relates to service.”
NO“Non-Liability Health Care provides treatment for accepted mental health conditions under the Veterans’ Entitlements Act 1986.”
Calm in a crisis, not alarming
YES“In crisis right now · Talk to someone now”
NO“EMERGENCY: If you are in danger CALL 000 IMMEDIATELY”
Honest about what we don’t know
YES“Eligibility varies. See Your Gold Card Journey in the Apply tab.”
NO“You’re guaranteed a Gold Card after 60 impairment points.”
Direct verbs, never throat-clearing
YES“Apply through MyService or call DVA on 1800 555 254.”
NO“In order to commence the application process, veterans may wish to consider lodging via the MyService digital portal.”
Numbers and names, never vague claims
YES“Open Arms — Veterans & Families Counselling · 1800 011 046 · Free, 24/7”
NO“There are several support services available for veterans.”
No false urgency, no patronising kindness
YES“Updated April 2026. DHOAS Tier 3 subsidy rates have been indexed.”
NO“Don’t worry, we’re here to help you on your journey!”
05 · UX considerations

The flows are designed for veterans in distress, not desk-bound users.

No accounts. Ever.

Every byte lives on the device. No login flow, no password reset, no ‘we have sent you an email’. Privacy is a product feature, not a settings page.

Static TypeScript data

Concession rates, hotlines, entitlement descriptions live in committed .ts files. No CMS, no API, no stale-cache problems. Trust comes from auditable source and verified dates.

Verified dates per fact

Every dollar amount, every phone number carries a verified: YYYY-MM-DD field. A quarterly audit script flags anything older than 90 days, fails anything older than 180.

Tap-to-call as a first-class action

Hotline rows are styled as primary CTAs, not list items. Tapping opens tel: directly. The phone is the path of least resistance, not a fallback.

Plain Talk toggle in the header

A global simplify flag lets a user dial complexity up or down without leaving the screen. Toggle state persists.

Stamped progress, never live timers

The Apply hub shows ‘0/7 steps done · 0 documents’: a record of where you are, not a countdown. Veterans don’t need surveillance; they need a logbook.

06 · Accessibility

WCAG AA across every surface. Reduced-motion respected.

01Contrast
AA minimum on every pair

Crisis tile pale red (#FECACA) on translucent dark red over ink (#141210) hits 7.8:1. Paper on Ink = 14.2:1. No pure black, no pure white anywhere.

02Touch targets
44pt minimum on every tappable surface

Hotline cards, tile icons, header buttons all clear. Designed for older hands and mid-crisis dexterity, not office hands.

03Motion
prefers-reduced-motion respected

ScalePress, FadeIn, PageSlide, TypeWriter hero all consult useReducedMotion(). Functionality is identical with motion off.

04Semantics
accessibilityRole on every interactive element

Buttons, links, tabs all labelled. Crisis tile announces ‘In crisis right now, open crisis support’. No div-as-button anywhere.

05Keyboard
Web build is keyboard-traversable

Focus rings on every focusable element. Tab order matches visual order. Native elements wherever possible.

06Print
Document checklists print on paper

Apply tab document slots have a print stylesheet so a veteran who wants a paper copy can print and check off.

07 · UI features

The product surfaces, in their own visual language.

01 · The crisis moment

Five hotlines, dialler-ready. Emergency in red, the rest in the app accent. This screen exists so a vet in distress never has to navigate.

After Action crisis screen
02 · The Plain Talk toggle

Dial the jargon down.

A single pill in the header rewrites every screen in shorter, simpler language. State persists across the app.

After Action plain-talk-on screen
03 · The depth

Topic hubs.

Hotlines + entitlements + related links per topic. Mental health, Health, Money populated; seven more ‘Coming soon’ stubs.

After Action topic screen
08 · Process notes

The dead ends, the kills, the trade-offs in motion.

Finished cases look intentional in retrospect. The reality is messier: here are three concrete decisions made and unmade along the way.

01
Tried
A search-first home screen with an AI text box: ‘Tell me what is going on.’
Killed because
AI free-text misrouted on the obvious queries during testing. Trust evaporated on the first wrong answer.
Landed
A 10-tile Quick Finder grid with Crisis pinned at the top. AI is still there, as the paid Ask FAB, not the front door.
02
Tried
A bright #DC2626 Crisis tile with white text and a pulsing red border-glow animation.
Killed because
The glow was alarming, not reassuring. A vet in distress doesn’t need a UI screaming back at them.
Landed
Same red at 18% opacity over the dark surface, pale #FECACA text. No animation. Reads as ‘important and ambient’.
03
Tried
PathMap as a dedicated nav card on the Apply hub, alongside Journey and Documents.
Killed because
PathMap and Journey showed the same seven steps in different shapes. Two surfaces, same content, more clicks.
Landed
PathMap re-housed as a bottom-sheet Modal triggered by a map icon in the StepIndicator pill row. Apply hub is now two cards.
09 · Decisions

Five calls that shaped the product.

  1. 01

    Crisis tile is a soft red wash, not an alarm.

    Originally a saturated #DC2626 fill with white text. It looked like a system error. Replaced with the same red at 18% opacity over the dark surface, with pale red text. The tile now reads as ‘important and ambient’, not ‘something is on fire’.

  2. 02

    No AI free-text on the front door.

    Considered a search-first home screen powered by Ask (the AI tier). Killed it. AI misroutes erode trust on the first interaction. Replaced with a 10-tile categorised grid. Ask still exists as a paid tier.

  3. 03

    PathMap moved from a nav card to a bottom sheet.

    Originally a separate ‘Path map’ hub card on the Apply tab: a flowchart of the seven steps. Killed it because it duplicated the linear Journey. Re-housed as a bottom-sheet Modal triggered by a small map icon in the StepIndicator pill row.

  4. 04

    Static TypeScript data over a CMS.

    A backend CMS would make content edits easier but would introduce uptime risk, sync lag, and a moving target for auditors. Hardcoding hotlines and rates in .ts files means every fact has a git blame and a verified date.

  5. 05

    One screen, then the next. No dashboard.

    Resisted the temptation to build a ‘veteran dashboard’ with stats, streaks, completion rings. Veterans aren’t users of a game. The Apply hub shows ‘0/7 steps done’ as a record, not a score.

10 · What shipped

The product, today.

10-tile Quick Finder grid with crisis row pinned at top
3 populated topic hubs (Mental health · Health · Money)
Crisis screen: 5 one-tap hotlines + Ask Izzy shelter link
7-step Gold Card Journey with per-step document slots
Apply tab hub with stat strip + ‘Continue where you left off’
Cards tab: Gold/White/Orange comparison, discounts
QLD State Concessions screen (8 verified rebates)
Ask FAB: AI search grounded in app content (Pro tier)
Plain Talk global simplify toggle
Dark mode default, light mode supported, system-aware
Verified-data audit script (npm run data:audit)
No accounts, no backend. All data device-local
WCAG AA accessibility throughout
Bottom tab nav (Home · Benefits · Apply · Resources · More)
Web build deployed to Vercel · iOS submitted to TestFlight
After Action · coming soon to the App Store
11 · Outcomes

Counted, not claimed.

The app just launched, so there are no usage metrics to point at yet. What follows are countable facts about the product itself: what it ships with, not what it’s done for anyone.

0accounts · ever

No signup, no password, no email verification. Open the app and use it. Everything lives on the device.

5crisis lines · one tap from Home

Emergency 000, Lifeline, Open Arms, Suicide Call Back, 1800RESPECT. All dialler-ready on the Crisis screen.

$0cost on the free tier

Crisis lines, every topic hub, search and ten AI questions a month are free forever. The Pro tier is optional.

7steps · Gold Card Journey

A linear walk-through from service records to a Gold Card, with per-step document slots stored device-local.

12 · Reflection

What I’d revisit, what I’d make again.

The one I’d revisit

The Apply tab’s floating 0/7 badge

The badge floats top-right of the Apply hub on desktop. It’s a stat I wanted to surface (‘where you are’) but it sits in empty space, orphaned from the content column. I’d anchor it inside the ‘Where we’re at’ strip or move it into the header bar properly.

The trade-off I’d make again

Static TypeScript data over a CMS

Every content update is a code commit. Slow if I were optimising for content velocity. But every fact has a git blame, a verified date, and a peer-reviewable diff. For a product where a wrong figure could cost a vulnerable user real money, auditability outranks ease.

The bit that doesn’t yet earn its place

The Ask FAB shimmer animation

The AI button shimmers diagonally every six seconds and pulses a subtle halo. It was meant to signal ‘the smart thing’: a soft beacon. In use it reads as ‘the thing the designer was most excited about’. Marked for removal.

13 · Credits

A solo project. Made for the people who knew the system from the inside and got tired of pretending it was findable.

Coming soon to the App Store
iOSApp Store · coming soon
Last edited · Wed, 17 June 2026
© 2026 Outercircle Pty Ltd · After Action™
After Action · Case study