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.
Share text and files with a link.
ProductivityTypeScript · JavaScriptGitHub @lalit2001OnlineOwner 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.
A simple text and file sharing app, built on Next.js 16, Turso (libSQL), and Vercel Blob.Read the full README ↗A simple text and file sharing app, built on Next.js 16, Turso (libSQL), and Vercel Blob.
/s/<id> link.app/api/blob-upload/route.ts only issues a short-lived upload token; it never sees the file bytes). Turso stores a reference (URL + pathname) to the blob, not the file itself.expires_at has passed, the Turso row and its Blob file (if any) are deleted.app/api/files/[id]/route.ts, which checks the optional access code, then 307-redirects to the blob's downloadUrl — a URL Vercel Blob generates that forces Content-Disposition: attachment with the original filename. File bytes never pass through your serverless function on upload or download.app/api/live/[id]/route.ts — the client debounces saves ~600ms after typing stops and polls for remote changes every ~2s, skipping the merge while the viewer's textarea is focused so it doesn't clobber what they're mid-typing). Use this instead of a Text share when you need to keep updating the same link rather than creating a new one each time.You need a BLOB_READ_WRITE_TOKEN. Easiest path with the Vercel CLI (already installed on this machine):
vercel login # interactive — opens a browser
vercel link # links this folder to a Vercel project
vercel blob store add # creates a Blob store, follow the prompt to name it
vercel env pull .env.local # pulls BLOB_READ_WRITE_TOKEN (and other linked env vars) into .env.local
Alternatively, in the Vercel dashboard: Storage → Create Database → Blob, then copy the BLOB_READ_WRITE_TOKEN from the store's .env.local tab.
Copy .env.example to .env.local (if you didn't use vercel env pull above) and fill in:
TURSO_DATABASE_URL=libsql://your-database.turso.io
TURSO_AUTH_TOKEN=your-turso-auth-token
BLOB_READ_WRITE_TOKEN=your-vercel-blob-read-write-token
MAX_UPLOAD_MB=1024
Install dependencies and run the dev server:
npm install
npm run dev
The shares table is created automatically on first use — no manual migration step needed.
MAX_UPLOAD_MB caps how large a shared file can be (default 1024 MB / 1 GB). Because uploads go directly from the browser to Vercel Blob using client uploads with multipart enabled, this is a Blob-enforced limit, not a Vercel serverless request-body limit — raise it freely (Vercel Blob supports up to 5 TB per file). The practical ceiling is your Vercel plan's storage/bandwidth allowance and how long you're willing to let a browser upload run.
vercel deploy after vercel link, done above).BLOB_READ_WRITE_TOKEN is already attached to the project. Otherwise, add these in the project's Environment Variables settings:
TURSO_DATABASE_URLTURSO_AUTH_TOKENBLOB_READ_WRITE_TOKENMAX_UPLOAD_MB (optional, defaults to 1024)@libsql/client for Turso (metadata + text content)@vercel/blob for file storage