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.
Convert and compress PDFs and images in a couple of taps. No sign-up, no clutter, no need to Google anything. Built for Momina, usable by everyone.
ProductivityTypeScript · JavaScriptGitHub @SallarBhuttoOnlineOwner 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 ridiculously polished file converter, built for one person who could not be
bothered to Google how to convert a PDF.
Free, no sign-up, and every file is processed locally in the browser. Nothing
is uploaded, nothing is processed on a server, nothing is stored remotely.
Live at jahilhomomina.com. The repository is
funconverter; the package is jahil-ho-momina.
Ten tools are implemented.Read the full README ↗A ridiculously polished file converter, built for one person who could not be bothered to Google how to convert a PDF.
Free, no sign-up, and every file is processed locally in the browser. Nothing is uploaded, nothing is processed on a server, nothing is stored remotely.
Live at jahilhomomina.com. The repository is
funconverter; the package is jahil-ho-momina.
Ten tools are implemented.
/pdf-to-jpg, /pdf-to-png, /pdf-to-webp/jpg-to-pdf, /png-to-pdf, /webp-to-pdf/compress-jpg, /compress-png, /compress-webp/compress-pdf, with three modes that each say plainly what
they give upFiles are never made larger: when a rewrite does not help, the original is returned and marked as already optimized.
The homepage carries the hero, the full tool grid and a live PDF → JPG
converter (see D014 in docs/decisions.md). Three non-tool
pages support it: /privacy, /terms and /contact, all Server Components
with no client JavaScript, linked from the footer and listed in the sitemap.
The privacy and terms copy describes how the site behaves today —
introducing advertising, accounts, cookies or any server-side file handling
means updating those pages in the same change (D011). Vercel Web Analytics is
enabled and described in the policy (D012).
src/app/globals.cssnext/font/googlepdfjs-dist) for PDF rendering, loaded on demandnpm install
npm run dev
Open http://localhost:3000.
npm run dev and npm run build first run scripts/copy-vendor-assets.mjs,
which copies the PDF.js worker, CMaps, standard fonts, ICC profile and WASM
decoders into the git-ignored public/pdfjs/, the OxiPNG module into
public/oxipng/, and the qpdf runner, worker and WebAssembly into
public/qpdf/. Next.js serves them as static files; nothing comes from a CDN.
Copy .env.example to .env.local if you need to override the site origin.
The public origin drives canonical URLs, Open Graph URLs, robots.txt and
sitemap.xml. It resolves from NEXT_PUBLIC_SITE_URL, then Vercel's
VERCEL_PROJECT_PRODUCTION_URL and VERCEL_URL, then http://localhost:3000.
Production must set:
NEXT_PUBLIC_SITE_URL=https://jahilhomomina.com
It always takes precedence over Vercel-generated domains. These variables are not secrets.
The mark is an M monogram cut out of a rounded tile, defined once in
src/lib/brand/symbol.ts and mirrored in public/favicon.svg and
public/brand/. After changing the master, regenerate the rasters:
node scripts/generate-brand-icons.mjs
The outputs (icon-*.png, apple-touch-icon.png, favicon.ico) are
committed. The Open Graph card is rendered at build time by
src/app/opengraph-image.tsx from the WOFF fonts in src/assets/fonts/,
which are there because that renderer needs raw font bytes; their OFL licences
are alongside them.
npm run lint
npm run typecheck
npm test
npm run build
Run all four before considering a change complete. Tests cover pure logic only: file validation, size formatting, filename generation, format configuration and quality presets, progress, canvas background planning, render-dimension safeguards, page layout maths, EXIF orientation parsing, list reordering, compression savings and output selection, PDF compression modes and qpdf argument generation. See docs/testing.md.
CLAUDE.md is the entry point for project rules and imports the documents in
docs/:
AGENTS.md holds a block that Next.js manages automatically; it is not part
of the project knowledge base.