A browser-based image resizer that generates app icons and assets for iOS, Android, web, and social media. Upload an image, pick your sizes, and download everything as a ZIP.
- iOS app icons — App Store, iPhone, iPad, Spotlight, Settings, Notification (Xcode 15+ / iOS 17-18)
- Android app icons — Play Store, mdpi through xxxhdpi, plus adaptive icon layers
- Web assets — favicons (ICO + PNG), PWA icons (regular + maskable), Apple touch icon
- Social media — Open Graph and Twitter Card images
- Microsoft tiles — all standard tile sizes
- Custom sizes — add any width x height you need
- Client-side processing — resize entirely in the browser using the Canvas API (no upload required)
- Server-side processing — optional Sharp-based resizing for higher quality output
- Batch download — download all generated images as a single ZIP
PNG, JPG, WebP, GIF, BMP, TIFF, AVIF, SVG
1024x1024 or larger is recommended for best quality, but any size is accepted.
- Next.js 15 (App Router) + React 19 + TypeScript
- Tailwind CSS 4
- Sharp — server-side image processing
- ico-endec — client-side ICO generation
- @catdad/to-ico — server-side ICO generation
- JSZip + file-saver — ZIP download
- Vercel Analytics + Speed Insights
- Anonymous Pro — monospace font
app/
layout.tsx — root layout, fonts, analytics
page.tsx — main page
api/resize/route.ts — server-side resize endpoint
icon.svg — app favicon
components/
AppLogo.tsx — SVG logo component
ImageUploader.tsx — drag-and-drop upload
ImagePreview.tsx — uploaded image preview
CategorySelector.tsx — size category picker
CustomSizeInput.tsx — custom dimension input
ProcessingToggle.tsx — client/server mode switch
GenerateButton.tsx — generate + progress bar
DownloadArea.tsx — results grid + download
lib/
types.ts — shared TypeScript types
image-sizes.ts — all size definitions
client-resize.ts — Canvas API resizing
server-resize.ts — Sharp resizing
ico-generator.ts — client-side ICO encoding
zip-builder.ts — JSZip wrappers
hooks/
useImageSizer.ts — central state management hook
MIT
