- Core resize tool with aspect ratio locking
- Quality slider and format selection (JPEG/PNG/WebP)
- Drag-and-drop file upload
- Vintage UI styling with self-hosted fonts
- Security headers via vercel.json (strict CSP)
- Cowboy hat favicon
- GitHub contribution system (issue templates)
- "Suggest a Feature" link in footer
- Vercel Web Analytics
- Tab navigation UI
- Compress Only - Reduce file size without changing dimensions
- Strip EXIF/Metadata - Remove GPS, camera info, timestamps
- Image Cropper - Interactive crop with aspect ratio presets
- Enhanced: drag-to-move selection
- Enhanced: resize handles on corners and edges
- Enhanced: persistent selection when changing aspect ratio
- Enhanced: cursor feedback for interaction mode
- Custom Filename - Rename files before download (all tools)
- HEIC Converter - Convert iPhone HEIC/HEIF to JPEG/PNG/WebP
- Batch conversion with ZIP download
- Quality slider, 50MB per file limit
- Self-hosted heic2any (~1.3MB)
- Bulk Rename - Pattern-based renaming with batch download
- Patterns:
{n},{name},{date} - 100 file limit, 500MB total limit
- Self-hosted JSZip (~97KB)
- Patterns:
- Background Remover - AI-powered background removal
- Self-hosted MediaPipe Selfie Segmentation (~11.5MB)
- CSP updated: added
'wasm-unsafe-eval'to script-src - Security: 2048x2048 max input, 30s timeout, 50MB file limit
- All processing remains client-side
| Control | Status |
|---|---|
Input validation (validatePositiveInt()) |
✅ |
| Filename sanitization (path traversal blocked) | ✅ |
Memory cleanup (cleanupCanvas()) |
✅ |
Error isolation (safeExecute()) |
✅ |
Display safety (textContent only) |
✅ |
| Strict CSP headers | ✅ |
| No inline scripts/styles | ✅ |
| Self-hosted fonts (no external requests) | ✅ |
| SRI hashes for dependencies | ✅ |
| Hash | Description |
|---|---|
45aa3ac |
Add missing MediaPipe loader files for Background Remover |
71ed909 |
Add Phase 3 Background Remover + SRI hashes + test suite |
45ee756 |
Add Phase 2 tools: HEIC Converter and Bulk Rename |
006b2ac |
Add custom filename option for all tools |
d5e8cb8 |
Update progress.md with analytics and recent commits |
3abfee8 |
Add Vercel Web Analytics |
d15b583 |
Add progress.md tracking completed and upcoming tasks |
4b9b4df |
Enhance crop tool with movable selection and resize handles |
b1a08c1 |
Add Phase 1 image tools: Compress, Crop, Strip EXIF |
aca95ec |
Replace EST badge with red FREE stamp |
96ecdff |
Rebrand to iresized.com |
fe8e385 |
Add contribution system with GitHub Issues |
b388d26 |
Add cowboy hat favicon |