A quiet, Notion-inspired work journal. Log what you worked on in a sentence; SnapTrack reconstructs it into a daily timeline, a focus score, and a set of plain-language insights — without anyone else ever seeing your data.
This is the public web app: multi-user, Supabase-backed, ready for anyone in an office to sign up and start using immediately. It's designed to work alongside (and later, in sync with) the SimplyTrack browser extension.
- Next.js 16 (App Router, Turbopack)
- Supabase — auth + Postgres with row-level security (every user only ever sees their own entries)
- Tailwind CSS v4 — CSS-first theme, tokens in
src/app/globals.css - Recharts — the one chart on the Analytics page
Free tier is fine. Once it's created:
- Open the SQL editor and run everything in
supabase/schema.sql. This creates theprofiles,entries, andtagstables, all with row-level security so users can only ever read or write their own rows. - Under Authentication → Providers, email/password is enabled by default — nothing else to configure for the MVP.
- Copy
.env.local.exampleto.env.localand fill in your project's URL and anon key from Project Settings → API.
npm install
npm run devOpen http://localhost:3000. The landing page lets
anyone sign up; confirming their email drops them straight into /dashboard.
Any host that runs Next.js works (Vercel is the path of least resistance). Set the same two environment variables in your hosting provider, and set the Supabase project's Site URL / Redirect URLs to your production domain so signup confirmation emails link to the right place.
src/
app/
page.js landing page (public, marketing + signup CTA)
(auth)/login login
(auth)/signup signup
(app)/dashboard today's log + quick stats
(app)/timeline full history, grouped by day
(app)/analytics charts + behavior insights
(app)/settings workspace name, extension info
components/ Sidebar, EntryComposer, EntryRow, StatCard, …
lib/
supabase/ browser + server clients, session refresh
entries.js all reads/writes to the entries & tags tables
analytics.js pure, framework-free scoring functions
supabase/
schema.sql tables, indexes, and RLS policies
Tokens live in src/app/globals.css under @theme (Tailwind v4's CSS-first
config) — a warm paper/ink palette with a single indigo accent reserved for
"this is live right now" (today, the active nav item, the focus score). The
recurring visual signature is the rail: a thin ruled line with small
ticks, reused in the sidebar nav, the timeline gutter, and stat cards, as a
quiet reference to time passing.
The natural next steps, in rough order:
- Extension sync — point the existing SimplyTrack extension's
storage.jsat the same Supabase tables (it already has a near-identical data shape) so entries logged from the browser popup land in the same timeline instantly. - Team workspaces — the schema is already scoped per-user; adding a
workspace_idand shared-workspace policies is the main lift for a real team plan. - Weekly digest email — a scheduled Supabase Edge Function that emails each user their own weekly summary.
- Calendar / GitHub / Slack integrations — as outlined in the original product vision, layered in once the core logging loop is solid.