Back to all case studies

Case study

CodeHerWay CEO OS

A local-first founder command center for focus, capture, journaling, opportunities, content planning, weekly execution, and chief-of-staff workflows — built in React 19 to demonstrate product-minded frontend systems work, not just feature output. The hard part is invisible: a data layer that stays trustworthy through reloads, stale writes, corrupted storage, and offline gaps.

  • Repository pattern across 8 domains
  • Versioned local storage with migrations
  • axe + bundle budgets in CI
Project type
Founder productivity dashboard and workflow system
Stack
React 19, Vite, React Router, versioned localStorage, Supabase upgrade path
Primary focus
Client-side data integrity: versioned persistence, optimistic concurrency, corruption recovery, and offline replay
Last verified
— static, link, and route-readiness checks pass; deployed field profiling is still pending.
CodeHerWay CEO OS Focus Home dashboard interface
Captured from the public live demo on May 12, 2026.

Founder workflow lens

The core challenge was turning scattered founder work into a calm execution system — without faking the data layer underneath it.

CEO OS needed to help a solo founder move between priorities, opportunities, planning, and capture without feeling buried in dashboard noise. The product surface is calm on purpose; the engineering underneath treats local data as something that can be reloaded, edited in two tabs, corrupted, or written while offline — and handles each of those cases explicitly instead of hoping they don't happen.

Focus Home

Ranks the next smallest action across priorities, blockers, reminders, journal signals, opportunities, and drafts.

Honest persistence

Source-state copy explains what is local, paused, offline, or synced — never a fake "saved to cloud".

Workflow routes

Separate spaces keep capture, planning, opportunities, and execution easier to resume.

Evidence Snapshot

What I built

  • Focus Home command center
  • Capture, Journal, Weekly Brief
  • Opportunities relationship pipeline
  • Chief of Staff output catalogue
  • Eight workflow domains on one data contract

The engineering that matters

  • Repository pattern across 8 domains
  • Versioned-envelope storage + migration registry
  • Optimistic concurrency with a typed StaleRecordError
  • Corruption preservation, not silent loss
  • Offline write queue with stop-on-first-failure
  • AI proxy with deterministic fallback

What was hard

  • Making local-first data trustworthy before a cloud sync path exists
  • Keeping 8 domains on one contract without behavior drift
  • Surfacing concurrency, corruption, and offline failures to the user honestly

Quality gates in CI

  • axe-core scans every primary route (WCAG A/AA + best-practice)
  • Serious or critical a11y violations fail the build
  • Per-route bundle budgets with a trend-regression check
  • Release-governed baseline refresh

What to verify in 90 seconds

  • Open the live demo and move between workspace routes
  • Edit one record in two tabs to trigger stale-write handling
  • Reload mid-capture to see the brain-dump rehydrate
  • Watch the "Pending sync" cue appear only with queued writes
  • Skim the repo's repository and lib modules

Honest limits

  • Multi-user Supabase sync is built but feature-gated — off until authenticated duplicate-write flows are verified
  • The demonstrated surface is single-user and local-first
  • Deployed Lighthouse field numbers are not captured yet

Founder Workflow Friction

Founder work spreads across notes, tasks, opportunities, content ideas, and planning rituals. That tool-switching can make important work feel scattered, especially when the system does not clearly show what matters today.

Still to validate: which workflows are most valuable over repeated weekly use, and whether the current mental model holds up for founders beyond the original use case.

Users

  • Solo founders and early operators who need a calmer view of priorities and follow-through.
  • Builders managing opportunities, content, notes, and planning without wanting a heavyweight project-management tool.
  • Reviewers evaluating frontend architecture, persistence patterns, and realistic workflow design.

Execution System Goals

  • Create a one-screen Focus Home that answers what needs attention now.
  • Support fast capture, weekly planning, and opportunity tracking without making the UI feel loud.
  • Persist local work clearly and expose honest source states such as Local only, Offline, or Synced.
  • Keep the architecture ready for authenticated persistence without making cloud behavior a fake default.

My Role

Sole designer and engineer. I own the dashboard, the eight workflow domains, the repository-pattern data layer, the versioned storage and migration registry, the optimistic-concurrency and corruption-recovery behavior, the offline write queue, the AI proxy, the source-status language, and the CI gates for accessibility and bundle size.

Focus and Capture Decisions

  • Focus Home acts as the command center instead of a generic dashboard, ranking the next smallest action rather than listing everything equally.
  • Support modes, reminders, and next-move guidance are designed to reduce cognitive load, including an explicit "I'm overwhelmed" reset.
  • Capture rehydrates an in-progress brain-dump from localStorage after a reload, and Journal autosaves on a debounce — quick input with recovery confidence instead of complex configuration.
  • Persistence language stays explicit when work is local, synced, paused, or failed.

Frontend Systems Engineering

  • Repository pattern across 8 domains. Opportunities, content, weekly brief, settings, chief, capture, journal, and reminders share one contract: normalize, read/write from the active source (local or Supabase), then emit cross-tab events for lightweight synchronization. Pages never need to know where data lives.
  • Versioned-envelope storage. Each domain declares a schema version; writes are wrapped as { schemaVersion, domain, model, data }, and an envelope whose domain doesn't match the read site is rejected — closing the "wrong key swap" failure mode. A forward-compat migration registry lifts older payloads transparently.
  • Optimistic concurrency for local CRUD. Records stamp updatedAt and reject stale saves with a typed StaleRecordError; the edit surface shows a friendly conflict message and refreshes the row under the open modal, so closing it reveals the current data.
  • Corruption preservation, not silent loss. When a JSON parse fails, the corrupt blob is preserved under a timestamped key and a non-blocking banner tells the user — instead of quietly wiping their work.
  • Offline write queue. Recoverable backend failures enqueue a FIFO-trimmed replay batch with stop-on-first-failure semantics and attempt counters; the topbar shows "Pending sync" only when writes are actually waiting to replay.
  • AI proxy with safe failure. The Chief-of-Staff proxy handles abort and timeout, normalizes tool-like and plain-text model outputs, and falls back to a deterministic action plan labelled as such — never a blank panel.

Persistence Trust Tradeoffs

  • Constraint

    Founder workflows need quick capture and review before a production account system is ready.

  • Decision

    Ship a hardened local-first layer — versioned envelopes, optimistic concurrency, corruption recovery, and an offline replay queue — while source-state copy explains what is local, paused, or synced.

  • Tradeoff

    The product demonstrates production-grade data-integrity engineering, but multi-user Supabase sync stays a feature-gated upgrade path until authenticated duplicate-write flows are verified.

Accessibility Considerations

  • Automated in CI: @axe-core/playwright scans every primary route against WCAG 2.0/2.1 A and AA plus best-practice rules, and serious or critical violations fail the build.
  • The app shell includes skip-link and focus-restoration behavior for routed workflows.
  • Focus modes and data rows are built to support keyboard interaction.
  • Save, loading, error, and source states use clear status and alert copy where appropriate.
  • Compact mobile navigation is treated as a tested workflow, not a purely visual breakpoint.

Performance Considerations

  • Per-route bundle budgets run in CI, paired with a trend-regression check and a release-governed baseline refresh, so a route can't quietly get heavier between releases.
  • Telemetry diagnostics and heavy detail are code-split away from the first Chief of Staff route bundle.
  • Budgets guard bundle weight today; deployed Lighthouse field profiling is the honest next step, not a captured result yet.

QA Notes

  • What's covered: the data-resilience behaviors are the test focus — stale-write rejection, envelope/domain-mismatch rejection, migration lift of older payloads, offline-queue replay order, and corruption-banner surfacing.
  • Automated gates: axe-core accessibility scans and per-route bundle budgets both run in CI; serious/critical a11y violations or budget regressions fail the build.
  • Evidence standard: local-first behavior is kept separate from the Supabase upgrade path, so unfinished cloud sync is never presented as complete.
  • Still to validate: authenticated multi-user flows, concurrent cross-device updates, and guided-workflow fallback telemetry in a production-like environment.

Current Status

The project is a working portfolio-grade founder workflow system with hardened local-first behavior and a feature-gated Supabase upgrade path. It is not positioned as a complete multi-user SaaS product yet.

What I Learned

For productivity tools, trust comes from reducing ambiguity: where the work is saved, what needs attention, and what action is realistic next. The product feels stronger when the interface — and the data layer behind it — names those states plainly instead of hiding failure behind dashboard polish.

What I Would Improve Next

  • Complete authenticated multi-user UX review across the Supabase persistence path, then lift the feature gate.
  • Broaden integration coverage for concurrent updates across domains.
  • Add structured telemetry around guidance fallback and accepted next-step suggestions.
  • Capture deployed Lighthouse field numbers and refresh screenshot/walkthrough assets after each major UI iteration.