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.
Beautifully hosted flip books for your clients.
ProductivityJavaScript · TypeScriptGitHub @reubenmadeOnlineOwner 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.
Upload a PDF, note the client, and get a polished, trackable online flip book
plus a one-click "Copy for Gmail" share block. Built to run on free tiers.
Multi-user: each account sees only its own books, share links and activity. A
superuser (bootstrapped from env vars) manages accounts and sees usage
analytics across everyone.Read the full README ↗Upload a PDF, note the client, and get a polished, trackable online flip book plus a one-click "Copy for Gmail" share block. Built to run on free tiers.
Multi-user: each account sees only its own books, share links and activity. A superuser (bootstrapped from env vars) manages accounts and sees usage analytics across everyone.
/api/book/<slug>/page/<n>, so the real storage URLs are never exposed./b/<slug>): a real page-curl flip book (page-flip) — two-page
spread on desktop, single page on mobile.Next.js 16 (App Router) · Neon Postgres · Vercel Blob · pdf.js · page-flip · jose.
cp .env.example .env.local and fill in the required values (including the
SUPERUSER_* credentials you'll first sign in with).node --env-file=.env.local scripts/init-db.mjs to create tables
up front — the app also creates them lazily on first use.npm run dev → http://localhost:3000DATABASE_URL.BLOB_READ_WRITE_TOKEN in the project).SESSION_SECRET (openssl rand -base64 32),
SUPERUSER_USERNAME / SUPERUSER_PASSWORD / SUPERUSER_EMAIL, and
(optionally) RESEND_API_KEY / RESEND_FROM for password-reset emails, in
Project → Settings → Environment Variables.vercel --prod.Comfortably within free tiers. ~300 books × ~20 pages × ~120 KB ≈ ~700 MB of Blob (free tier is 1 GB+), Neon rows are tiny, and traffic is low. Expected: $0.
| Variable | Required | Purpose |
|---|---|---|
DATABASE_URL | ✅ | Postgres connection string (Supabase/Neon/local) |
BLOB_READ_WRITE_TOKEN | ✅ | Vercel Blob (auto on Vercel) |
SESSION_SECRET | ✅ | Signs session cookie + hashes visitor IPs |
SUPERUSER_USERNAME | ✅ | Superuser login (manages all accounts) |
SUPERUSER_PASSWORD | ✅ | Superuser password (env is source of truth) |
SUPERUSER_EMAIL | — | Superuser email (for password resets) |
RESEND_API_KEY | — | Resend key for reset emails (else logged to console) |
RESEND_FROM | — | From address for reset emails |
NEXT_PUBLIC_BASE_URL | — | Override share-/reset-link origin |
This is deliberately light protection, per the brief: no raw PDF is ever served; images are proxied (real Blob URLs hidden); right-click and image drag are disabled in the viewer. A determined user can still screenshot — that's fine.