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.
Tasks and notes in one place. Works offline. Syncs when you want it to.
ProductivityTypeScript · CSSGitHub @Gowreesh-VTOnlineOwner 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
Local-first Markdown notes and tasks app
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A fast, private to-do list and notes app in the spirit of TickTick. Lists hold tasks and Markdown notes.
Everything works offline and is stored on your device; sign in to sync across devices.
• Smart views: Inbox, Today (with overdue), Tomorrow, Next 7 Days, All, Completed, Won't Do, Trash
• Your own lists, grouped into folders; #tags found automatically in titles and notes
• Search and sort (smart order, due date, priority, title, last edited) in every viewRead the full README ↗A fast, private to-do list and notes app in the spirit of TickTick. Lists hold tasks and Markdown notes. Everything works offline and is stored on your device; sign in to sync across devices.
Organise
#tags found automatically in titles and notesTasks
Pay rent tomorrow !high #billsNotes
.md, import .md / .txt files; word count and reading timeEverywhere
/ to search, ? for shortcuts, Alt+T new task, Alt+N new note/, with the app at /appnpm ci
npm run dev # http://localhost:3000 (local-only mode, no setup needed)
npm run lint
npm run typecheck
npm test
npm run build
Built with Next.js (App Router), React, TypeScript, Tailwind CSS v4, Zustand, Vitest, Serwist (PWA), Auth.js (next-auth v5), Drizzle ORM and Postgres.
Without configuration the app is local-only. To try accounts and sync locally:
npm run db:dev # terminal 1: local Postgres (PGlite), prints a DATABASE_URL
cp .env.example .env.local # then fill in DATABASE_URL and AUTH_SECRET (openssl rand -base64 32)
npm run dev # terminal 2
DATABASE_URL for you.AUTH_SECRET (openssl rand -base64 32); for Google sign-in also AUTH_GOOGLE_ID and
AUTH_GOOGLE_SECRET (Google Cloud Console → OAuth client; authorised redirect URI
https://<your-domain>/api/auth/callback/google).npm run db:migrate (it asks for the connection string and hides what you type). Re-run it after pulling
any change that adds a file under drizzle/.While Notesflow is open, reminders ring from the app itself. To also ring when it is closed, the server sends Web Push notifications (VAPID) to devices that turned them on in Reminder settings → When Notesflow is closed (signed-in users only; on iPhone and iPad the app must be added to the Home Screen first).
npm run push:keys and add the four printed values to the Vercel environment variables:
VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT (a mailto: address) and CRON_SECRET. Redeploy.npm run db:migrate (adds the push_subscription and push_delivery tables).https://<your-domain>/api/cron/reminders every minute with the request header
Authorization: Bearer <CRON_SECRET>. (Vercel's free cron only runs once a day, which is too slow.)Each reminder reaches each device once, in that device's time zone and respecting its quiet hours. Devices that unsubscribe or sign out are removed automatically.
.github/workflows/daily-improvement.yml runs every day at 09:00 Asia/Kolkata (and on demand from the Actions tab).
Claude makes one improvement following CLAUDE.md and the maintainer's ROADMAP.md.
Every change must pass the protected-path guard, lint, type check, tests and build before it is published:
Changes are committed in batches of at most 5 files ((1/3), (2/3), …) and pushed together.
If nothing worthwhile is found, no commit is made.
One-time setup in Settings → Secrets and variables → Actions:
| Kind | Name | Value |
|---|---|---|
| Secret | CLAUDE_CODE_OAUTH_TOKEN | Output of claude setup-token (Claude subscription) |
| Variable | GIT_AUTHOR_EMAIL | The GitHub noreply email that receives commit credit |
The workflow never needs DATABASE_URL or any auth secret: the build and tests run without them.