The Dashboard is a calm, reflective Life OS for people who want help understanding their days before those days run away from them.
It is built for users who do not want another streak app, another guilt machine, or another productivity tool that mistakes pressure for progress.
Instead, The Dashboard helps people:
- understand what kind of day they are actually in
- notice drift before it becomes a spiral
- choose one meaningful move instead of ten scattered ones
- reconnect planning, recovery, honesty, faith, and follow-through
- return without shame when life gets heavy
This repository is open source and designed to be useful for both:
- people exploring The Dashboard as a product
- builders who want to fork it into their own coaching, wellness, planning, or reflective operating system
The Dashboard is a React + TypeScript + Supabase app that turns real-life signals into calm daily guidance.
Those signals can include:
- calendar load and meeting density
- wearable recovery, sleep, and strain
- quick check-ins about mood, stress, and energy
- daily moves and kept promises
- planner activity and environment resets
The product interprets those signals into a daily state read such as:
- what matters most today
- what needs protection
- whether this is a stretch day, recovery day, or protection day
- what your main quest is
- what one support move would help most
The Dashboard is built around a simple idea:
You cannot control everything, but you can learn to respond well to what is actually yours.
The current product language centers on:
Life perspective: onboarding uses age and season-of-life framing to make the app feel personal from the startStarter team: the 5 Controllables are presented as a team you can lean onMoves: daily actions are framed as meaningful moves, not choresCharge: the product uses grounded energy language instead of pressure-heavy productivity languageEvolution: progress supports repair, return, and recovery, not only perfect consistencyRegions / chapter quests: progression is meaningful without becoming childish or fantasy-heavyDrift and alignment: the app tracks how close lived life is to what matters most right now
The Dashboard treats the 5 Controllables like a starter team:
Awareness = scoutHelps the user check in with God, tell the truth, surrender what they cannot control, and notice what is happening internally before reaction takes over.Perspective = translatorHelps the user zoom out, reframe wisely, and remember that one hard moment is not the whole story.Habit = builderHelps the user turn intention into one concrete rep.Wellness = chargerHelps the user pay attention to recovery, sleep, stress, movement, and energy.Environment = protectorHelps the user reduce friction and shape the world around them so the next right move is easier.
The Dashboard is especially useful for people who:
- feel scattered by the amount of life they are carrying
- want a daily operating system that feels emotionally intelligent
- need help re-entering after drift, burnout, or inconsistency
- want faith, reflection, planning, and recovery to live in one place
- are tired of all-or-nothing self-improvement tools
It can also be forked into products for:
- coaching
- founder life management
- wellness / readiness
- Christian reflection and spiritual grounding
- reflective planning
- behavior change without shame-heavy gamification
If the product is working well, the user should feel:
- calmer, because the app narrows the day down instead of exploding it
- more honest, because it makes room for reality instead of performance
- more supported, because return and repair count
- more grounded, because the app reacts to signals instead of pretending every day is the same
This is not a dopamine trap. It is meant to feel premium, useful, and steady.
For a user, the app usually works like this:
- Open the home dashboard.
- See the daily read: what kind of day it is, what matters most, what needs protecting.
- Choose one main quest.
- Complete one or more daily moves with the starter team.
- Use planner, wellness, money, or vault surfaces as needed.
- Return later for re-alignment rather than perfection.
The app already contains a broad set of “life portal” surfaces. Depending on your fork and environment, these can include:
Home dashboardDaily game-state read, main quest, support move, drift/alignment, and return-from-drift support.OnboardingLife perspective, season-of-life framing, starter team reveal, and chapter recommendation.PlannerTime blocks, tasks, routines, and calendar-aware planning.VaultNotes, reflections, captured context, and longer-term memory.WellnessRecovery, sleep, health sync, and body-aware guidance.MoneyBills, subscriptions, budgets, goals, and weekly financial resets.Operator / AI guidanceStructured guidance and assistant behavior built around the Controllables.Regions / chapter questsLightweight progression and weekly focus loops.
Use this checklist to get oriented quickly.
Start with:
- the onboarding flow
- the home dashboard
- daily moves
- planner
- one recovery or return-to-drift path
That gives the clearest feel for the product.
Start with:
src/pages/Home.tsxsrc/components/dashboardsrc/components/onboardingsrc/hookssrc/libsupabase/functionssupabase/migrations
Those folders explain most of the product quickly.
git clone https://github.com/YOUR_USERNAME/thecontrollables.git
cd thecontrollablesnpm is the safest default for this repo:
npm installCreate .env.local or .env:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_PUBLISHABLE_KEY=your_supabase_publishable_or_anon_key
VITE_SUPABASE_PROJECT_ID=your_supabase_project_id
# Optional telemetry
VITE_POSTHOG_KEY=
VITE_POSTHOG_HOST=
VITE_SENTRY_DSN=
VITE_SENTRY_TRACES_SAMPLE_RATE=
VITE_ENABLE_SUPABASE_ANALYTICS=falseMinimum required for the frontend to boot:
VITE_SUPABASE_URLVITE_SUPABASE_PUBLISHABLE_KEY
npm run devnpm run buildYou can point the frontend at a hosted Supabase project, or run Supabase locally.
If you have the Supabase CLI installed:
supabase start
supabase db reset
supabase functions serveThis is the best option if you want to work on schema or edge functions.
Several app capabilities depend on Supabase Edge Functions and server-side secrets.
These are configured in Supabase, not in the Vite .env file.
Common secrets used in this repo:
SUPABASE_URLSUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYLOVABLE_API_KEYRESEND_API_KEYGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETWHOOP_CLIENT_IDWHOOP_CLIENT_SECRETSTRIPE_SECRET_KEYSTRIPE_PRICE_ID_PLUSSTRIPE_PRICE_ID_PRO
You do not need every integration configured to run the app locally.
- no wearable secrets: the app still works, but without wearable sync
- no Google secrets: planner and integration OAuth flows are limited
- no
LOVABLE_API_KEY: AI-powered functions degrade or stop working - no
RESEND_API_KEY: email flows will not send - no Stripe secrets: billing flows will not work
The easiest way to explain the product is:
The Dashboard helps a person stop asking, “How do I get everything together?” and start asking, “What kind of day is this, what matters most, and what is one honest move I can make from here?”
Practically, that means the app can help a user:
- notice overload before the day collapses
- protect recovery on hard days
- choose a smaller, keepable promise
- see drift early and re-align without shame
- use planning and reflection together instead of separately
- bring spiritual grounding into daily self-leadership
If you want to understand the experience the way a user would, follow this order:
OnboardingLearn the life perspective, current season, and starter team framing.HomeSee how the product reads the day and narrows it down.Daily movesUnderstand the Controllables as lived behavior.Return from driftThis is one of the most important trust-building loops in the product.PlannerSee how the app moves from reflection into execution.Wellness / Money / VaultThese expand the app into a fuller life portal.
You do not need a backend rewrite to customize The Dashboard.
Most forks should begin with:
- product language
- interpretation rules
- onboarding framing
- AI voice
- which modules are emphasized
Good files to start with:
src/pages/Home.tsxsrc/pages/QuickStart.tsxsrc/components/dashboardsrc/components/onboardingsrc/lib/awarenessLanguage.tssrc/lib/controllableRoster.ts
If you want the app to react differently to stress, recovery, energy, or calendar load:
src/lib/signalInterpreter.tssrc/hooks/useGameSignals.tssrc/lib/driftAlignment.tssrc/hooks/useDriftAlignment.ts
This is one of the best places to customize the product without destabilizing the data model.
If you want different identity, age, season, or worldview framing:
src/lib/lifePerspective.tssrc/components/onboardingsrc/pages/QuickStart.tsx
If you want different team roles, move semantics, or progression tone:
src/hooks/useDailyRings.tssrc/components/dashboard/DailyRings.tsxsrc/components/dashboard/RingActionCard.tsxsrc/components/dashboard/ControllableHub.tsxsrc/components/dashboard/ControllableLevelsCard.tsx
If you want to adjust the assistant’s voice or product theology/philosophy:
supabase/functions/ai-chat/index.tssupabase/functions/ai-chat/controllables-knowledge.tssupabase/functions/ai-reflect/index.tssupabase/functions/daily-os-plan/index.tssupabase/functions/operator-console/index.ts
This codebase is a good fit if you want to build:
- a founder dashboard
- a Christian daily alignment app
- a reflective coaching portal
- a wellness-aware planner
- a calmer habit and recovery app
- a family or household dashboard
- a life admin operating system
If you are scanning the codebase for the first time:
src/pagesTop-level routes such as home, planner, wellness, money, onboarding, and auth.src/components/dashboardMost of the product personality lives here.src/components/onboardingEntry experience and framing logic.src/hooksData access, interpretation hooks, and UI orchestration hooks.src/libShared product rules, adapters, language helpers, and derived logic.supabase/migrationsDatabase schema history.supabase/functionsAI, integrations, sync, email, push, and server-side orchestration.
This repo works best when contributors keep a few product rules intact:
- do not make the app feel childish
- do not turn it into a dopamine trap
- do not add more cards if an existing one can be repurposed
- prefer adapter layers over backend rewrites
- keep the tone calm, emotionally useful, and premium
- let repair and re-entry count just as much as forward momentum
Issues and pull requests are welcome.
If you open a PR, it helps to say whether you are changing:
- product language
- onboarding
- dashboard behavior
- AI behavior
- signal interpretation
- Supabase schema
- integrations
That makes review easier because this app blends UX, product semantics, and backend behavior tightly.
If you want others to reuse this repo clearly, add a root LICENSE file.
A public repository without a license is visible, but reuse rights are not automatically clear.