Convert any image into app icons — entirely in your browser.
- TypeScript 97.2%
- JavaScript 1.9%
- CSS 0.9%
| public | ||
| src | ||
| .gitignore | ||
| bun.lock | ||
| file-routes.d.ts | ||
| LICENSE | ||
| oxlint.config.mjs | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vercel.json | ||
| vite.config.ts | ||
| vitest-setup.ts | ||
GenIcon
Convert any image into app icons — entirely in your browser.
Upload an image, pick the sizes you need (16×16 up to 512×512), and download them as individual PNGs or a single ZIP. No server, no uploads — everything runs client-side.
Features
- All common formats in — PNG, JPG, WebP, SVG, GIF, BMP, AVIF
- Square center-crop with stepwise high-quality downscaling
- 7 icon sizes — 16, 32, 48, 64, 96, 128, 256, 512
- Single or ZIP download — one size downloads a PNG; multiple sizes come as
icons.zip - Progress bar during generation and zipping
- Light/dark mode toggle, persisted
Tech
- SolidJS 2.0 + Vite + Tailwind CSS v4
- JSZip for ZIP packaging — resizing uses the native Canvas API
Development
bun install
bun run dev # http://localhost:3000
bun run build # static output in dist/client
bun run test
Deploy
Static site — deployed on Vercel via vercel.json (outputDirectory: dist/client).
Links
License
MIT