Skip to main content
Back to Blog

Case study

Case study: Helix Hustle

September 9, 20264 min read
Case Study
PWA
TypeScript
Helix Hustle — abstract case study card (no app screenshots)
Share:𝕏

A phone PWA for financials and career. On my phone. Daily driver, not a pitch deck. Data stays on-device in an encrypted vault unless I export a backup.

What I did

Built a small progressive web app I actually open for money and career.

Screens

  • Today — hours vs bills; gross and after-tax hours (“pizza math”)
  • Hustle — job applications pipeline
  • Profile / Money — job and wage, editable; log shifts
  • Budget — bills, expenses, debts; due dates
  • Settings — backup, lock, install / PWA
  • Guide / Docs — how it works (in-app)

What changed

Financials and career live in one place on my phone. Income, bills, expenses — kept simple.

What I refused to overbuild

Money math never hits a model. No bank pipe. No “AI CFO.” The vault stays on the device unless I export a backup. If anything is hosted, the server is a shell — it does not store the vault. I wanted income, bills, and career in one place on my phone, not another company reading my numbers.

Stack

Next.js, React 19, TypeScript, Tailwind v4, Vitest, PWA (service worker), IndexedDB encrypted vault. Optional SpaceXAI career tailor via local env key only — not required for money.

Snippet

// vault stays on device — host never stores it
const vault = await openEncryptedVault() // IndexedDB

Proof

  • Repo: private. Do not open without a separate lock.
  • Screenshots: not in this post unless I say yes later.
  • Diagram below — data flow only.
  • No public app URL.

// visual.proof · diagram only

Data flow

No app screenshots here. This is the shape of the system — vault on device.

Helix Hustle data flow — vault stays on device// hustle.flow — describe-onlyPhone UIToday · BudgetEncrypted vaultIndexedDB · on-devicenever uploadedOptional hostshell onlyMoney math stays local. No bank pipe. If a server exists, it never stores the vault.Career tailor (optional) uses a local env key — not required for money screens.No app screenshots in this post. Repo stays private.

More Posts

September 9, 20263 min read

Case study: Shipping rbthompson.dev

Next.js 15 + Payload so I can ship copy without a deploy for every edit. Year and project counts stay off this page — not because they’re false, because they’re not verifiable here.

Case Study
Next.js
Payload
September 9, 20264 min read

Case study: Helix Library

A localhost OPAC I actually run — files, catalog, Ask, Acquire. What I refused: social, forced cloud, marketplace.

Case Study
Next.js
SQLite

Field note from an on-chain agent experiment — keep it a ridge note, not a hire claim.

AgenC
Solana
AI Agents
ZK Proofs