Purchase Life
Design-led finance web app where purchases are measured in time-to-earn — Google auth, encrypted income/expenses, goals, and work schedules.
Finance operating flow
Auth → encrypt → track → translate money into hours of life.
- Auth Google login
- Schedule Earning rate
- Income Encrypted in
- Spend Encrypted out
- Goal Purchase timers
- Reflect Hours-of-life
The challenge
Budgets abstract money; people feel time. Purchase Life reframes buying as hours of life exchanged — but that requires careful UX, encryption, and trustworthy auth.
The product needed a secure Next.js implementation of incomes, expenses, purchase goals, and work schedules with application-layer encryption for sensitive amounts.
Without earning-rate math tied to work schedules, “time cost” becomes a metaphor instead of a calculation.
What we built
We implemented a Next.js finance app with Google login, dashboard redirect rules, encrypted numeric fields, purchase timers, expense tracking, and work schedule assumptions that power time-to-earn calculations.
Brand mark (pl.png) anchors the product identity.
Schema was specified for MySQL with clear entities so future mobile clients can share the API brain.
Product architecture
Google auth, encrypted ledgers, goals, and time-to-earn engine.
Auth gate
Google login and dashboard redirect rules.
Encrypted ledger
Application-layer encryption for sensitive amounts.
Time engine
Work schedules → earning rate → purchase timers.
Goals UX
Purchase goals framed as hours of life, not only currency.
Time-to-earn diagram
How schedules and encrypted ledgers become honest purchase timers.
Identity
Money
Meaning
AI narrates computed hours — it does not invent earning rates.
Design principles
Privacy is product; AI coaches with computed hours, not shame.
Time is the currency
Purchases are framed as hours of life, not abstract budgets.
Encrypt by default
Sensitive amounts never rest as casual plaintext.
Math over metaphor
Timers use earning rate from schedules.
Conscience, not shame
AI coaching cites numbers without humiliating the user.
How we approached it
Design led: the emotional insight (time vs money) drove information architecture.
Security was not optional — amounts encrypted before insert; auth gates every dashboard route.
Work schedules translate salary into earning rate; purchases become timers against that rate.
Schema was specified for MySQL with clear entities so future mobile clients can share the API brain.
Coaching tone stays constructive — the product is a conscience, not a shame engine.
Where AI enters — and where it must not
AI coaching becomes meaningful when expenses and goals share a timeline with earning rate.
Models can narrate “this purchase costs 14 focused work hours” using computed fields, not vibes.
Encryption keeps breach impact lower while still allowing aggregate insight features with careful key handling.
The product remains a design system for healthier spending decisions — AI as conscience, not shame engine.
Technical notes from production
Details that only show up once the season is real.
- Sensitive amounts are encrypted before insert — plaintext finance fields are not the default.
- Auth gates every dashboard route so finance UX is unreachable when logged out.
- Work schedules are first-class because earning rate is calculated, not guessed.
- MySQL entities are explicit so future mobile clients can share the same brain.
Delivery & systems
Next.js + MySQL schema + Google auth patterns and encrypted finance fields.
Product mark packaged for marketing and app chrome.
Dashboard route gates so unauthenticated users never see finance surfaces.
Stack
Click a layer — each one maps to a real season responsibility.
Finance app
Next.js
Authenticated dashboards and purchase-timer UX.
Brand assets from the live product
Primary mark pulled from the Olympiad codebase — shown once, on the surface it was built for.
Outcomes
- Time-to-earn purchase framing
- Google-authenticated finance dashboard
- Encrypted income/expense storage
- Work schedule → earning rate engine
- Schema ready for future mobile clients