TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Break overwhelming goals into small steps, set deadlines that stick, and focus alongside other people every evening at 6:30.
ProductivityTypeScript · PLpgSQLGitHub @seunadegbolaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Social accountability app: break goals into steps, set deadlines that stick, and focus together every evening (Focus Hour, 18:30–20:30 UK time).
• Milestone 1, front end: every screen, with a local demo mode (no account needed).
• Milestone 2, backend: Supabase accounts and data with row-level security, LiveKit video in the Focus Room, AI task breakdown.
To go live, follow SETUP.md. Without the environment variables, the app runs in demo mode only.Read the full README ↗Social accountability app: break goals into steps, set deadlines that stick, and focus together every evening (Focus Hour, 18:30–20:30 UK time).
Built from the PRD (v2):
To go live, follow SETUP.md. Without the environment variables, the app runs in demo mode only.
npm install
npm run dev # http://localhost:3000
npm test # domain logic tests (streaks, cascade, Focus Hour)
npm run test:db # database security tests (runs the migration on an in-memory Postgres)
npm run build # production build
On the landing page, Try the demo loads a demo account that is on a save day (missed yesterday, streak still alive). Profile → Demo controls moves a demo clock so you can see every Focus Hour state (starting soon, kick-off, end of block 1, after). In the room, the Demo clock button skips to the next segment so you can see breaks, check-ins and the finish without waiting.
| Area | Where |
|---|---|
| Streak engine: never miss twice, 2-per-7-days cap, rest days, 03:00 day boundary | src/lib/domain/streak.ts, time.ts |
| Deadline cascade, intensity, deadline states | src/lib/domain/cascade.ts |
| Focus Hour schedule and session timeline (kick-off, blocks, breaks) | src/lib/domain/session.ts |
| Task breakdown (templates now; AI provider in milestone 2, templates stay as the fallback) | src/lib/domain/breakdown.ts |
| XP values and achievements | src/lib/domain/xp.ts |
| Tests for all of the above | src/lib/domain/domain.test.ts |
| App state (local, persisted to localStorage) | src/lib/store.ts |
| Landing, onboarding | src/app/page.tsx, src/app/start/ |
| Dashboard, Tasks, Goal + cascade, Focus, Create session, Buddies, Progress, Profile | src/app/(app)/… |
| Focus Room (Focus Hour tables, hosted, solo), check-ins, completion | src/app/room/[id]/ |
| Brand: logo (extracted as vector from the brand guide), logomark, swirl pattern, octopus mascot | public/brand/, src/components/brand.tsx |
The src/lib/domain folder is pure TypeScript with no UI or storage, so the same code can run in Supabase Edge Functions / server routes in milestone 2.
public/brand/logo.svg (light backgrounds), logo-on-blue.svg, logo-white.svg, and mark.svg. Extracted directly from the brand guide; don't edit by hand.src/app/globals.css. Status colours (good / save / missed) are proposals awaiting brand approval..woff2 files in src/app/fonts/ and swap the src list in src/app/fonts.ts.| Area | Where |
|---|---|
| Database schema, security rules, server functions | supabase/migrations/0001_init.sql |
| Security rule tests (60 checks) | supabase/tests/rls.test.mjs |
| Loading and saving user data | src/lib/remote.ts (called from store actions in src/lib/store.ts) |
| Sign-in: email link and Google | src/app/start/page.tsx, src/app/login, src/app/auth/callback, src/middleware.ts |
| Who can see the app | src/lib/session-gate.ts |
| Video passes, host removal | src/app/api/livekit/*, src/lib/video.ts, src/components/live-video.tsx |
| AI breakdown with template fallback | src/app/api/breakdown/route.ts, src/lib/breakdown-client.ts |
Two modes share the same screens: demo (data stays in the browser) and live (signed in; every change saves to Supabase straight after the screen updates).