
A personal command center for financial, career, and life execution. Not a todo app — a system that translates a yearly transformation mission into a daily executable loop.
Vision → Annual Goals → Quarterly Targets → Monthly Objectives → Weekly Plant
→ Daily Actions → Tracking → Review → Adjustmen
ANTIDOTE is a private, single-user web application built around one north-star question: did the system help the owner make better actions today? The daily dashboard is designed to answer five questions every morning:
/dashboard — "Good Morning" screen — Top 3, Money, Revenue Action, Client Follow-up, Brain Dump/today — Day plan builder, morning mission, shutdown flow/tasks — Priority-scored tasks (urgency + financial/strategic impact − effort)/goals — Hierarchical goal tree: Vision → Year → Quarter → Month → Week → Day/projects — Project tracking linked to goals/finances — Personal finance tracking & marriage-readiness numbers/freelance — Revenue pipeline — proposals, active work, payments/clients — Client CRM with follow-up tracking/opportunities — Income opportunity capture & evaluation/notes — Knowledge base/habits — Habit tracking & streaks/routines — Daily routine definitions/calendar — Time-blocking & schedule/reviews — Weekly / quarterly / yearly review wizards/energy — Energy level tracking/decisions — Decision log/brain-dump — Fast capture → convert to tasks/projects/goals/agent — AI assistant layer (server-only, keyed)/analytics — Charts & trends (Recharts)/marriage, /relationship — Shared-finance & relationship mission trackingBilingual UI: Arabic (RTL, default) and English, switchable at runtime. Dark/light themes via next-themes.
tailwind-merge, clsx, lucide-react icons@supabase/ssr + supabase-js) with Row-Level Securityprettier-plugin-tailwindcss), tsxnpm install
cp .env.example .env.local # then fill in the values
NEXT_PUBLIC_SUPABASE_URL — ✅ — Supabase project URLNEXT_PUBLIC_SUPABASE_ANON_KEY — ✅ — Supabase anon key (Settings → API)SUPABASE_SERVICE_ROLE_KEY — ⚠️ scripts only — Bypasses RLS — used only by scripts/seed.ts & scripts/reset-dev.ts. Never import from app/ or lib/OWNER_EMAIL / OWNER_PASSWORD — ✅ — Owner account created by the seed scriptNEXT_PUBLIC_SITE_URL — prod — Canonical site URL (SEO metadata, auth callbacks)AI_PROVIDER_API_KEY — optional — AI agent layerCRON_SECRET — optional — Protects /api/cron/*GOOGLE_SITE_VERIFICATION — optional — Google Search Console verificationnpm run db:push # apply Supabase migrations
npm run db:seed # create the owner account + seed data
npm run dev # http://localhost:3000
npm run dev — Development servernpm run build / npm start — Production build / servenpm run lint — ESLintnpm run typecheck — TypeScript, no emitnpm run format / format:check — Prettiernpm run test / test:watch — Vitest unit testsnpm run test:rls — RLS security regression tests (tests/security/)npm run test:e2e — Playwright E2E (tests/e2e/)npm run db:push — Push Supabase migrationsnpm run db:seed — Seed owner account & baseline datanpm run db:reset-dev — Reset the dev databaseapp/
(app)/ # authenticated group — sidebar layout, all private modules
(auth)/ # login + auth callback
robots.ts # robots.txt (private routes disallowed)
sitemap.ts # sitemap.xml (public pages only)
layout.tsx # root layout, metadata, JSON-LD
components/ # UI by domain (landing/, tasks/, finance/, reviews/, ...)
lib/
actions/ # server actions
dal/ # data-access layer (auth session, etc.)
ai/ # AI agent helpers (server-only)
i18n/ # ar/en translations
supabase/
migrations/ # SQL schema migrations
scripts/ # seed / reset / guard scripts
tests/
unit/ e2e/ security/
docs/ # implementation plan, architecture review, master spec
(app) routes sit behind authentication and are blocked from search indexes in app/robots.ts.tests/security/rls-regression.ts.SUPABASE_SERVICE_ROLE_KEY bypasses RLS — server-side scripts only, never exposed to the client. The server-only package guards sensitive modules.docs/IMPLEMENTATION_PLAN.md — full phased implementation plan (v2)docs/LIFE_OS_MASTER_PROMPT.md — product specificationdocs/ARCHITECTURE_REVIEW.md — architecture review findingsdocs/LIFE_CAREER_AND_LIFE_PLAN_AR.md — the life/career plan behind the product (Arabic)Deploy on Vercel (or any Node host). Set NEXT_PUBLIC_SITE_URL to the production domain so canonical URLs, Open Graph images, and auth callbacks resolve correctly.
Check out the live project or dive into the source code on GitHub