TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
PDF와 이미지를 몇 번 탭으로 변환·압축, 회원가입·광고·검색 필요 없음, Momina를 위해 제작, 모두 사용 가능
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.
생산성TypeScript · JavaScriptGitHub @SallarBhutto온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.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.