Inspiration
I built FreeWebPtoJPG after seeing how often simple image tasks require separate tools. Converting, resizing, compressing, or cropping a few images is easy, but processing a large collection can quickly become tedious.
I wanted to build one fast, browser-based toolkit where these common image workflows could be handled without installing software or creating an account.
What it does
FreeWebPtoJPG is a free online image toolkit with 60+ image tools for:
- Image format conversion
- Image compression
- Resizing and cropping
- Social media and preset image sizes
- Batch image processing
The platform supports up to 1,000 images per batch, including folder and ZIP uploads.
How I built it
The backend is built with Go, with the application running on Alpine Linux. The frontend uses Tailwind CSS.
The upload pipeline was designed to handle both small and large uploads. Smaller files can be processed in memory, while larger uploads can be spooled to disk rather than consuming large amounts of RAM.
For batch processing, the server uses Server-Sent Events (SSE) to send real-time progress updates back to the browser.
Challenges I ran into
The biggest challenge was making large batch processing reliable without allowing memory usage to grow with every uploaded file.
Supporting up to 1,000 images also required careful handling of temporary files, processing, errors, and cleanup.
Another challenge was making long-running operations feel responsive. SSE provided a simple way to stream processing progress to the browser without constant client-side polling.
Accomplishments that I'm proud of
I'm particularly proud that a relatively simple idea grew into a toolkit containing 60+ image tools.
The ability to process up to 1,000 images in a single batch, including folder and ZIP uploads, was also an important milestone.
I also built the system so uploaded files are automatically cleaned up after processing rather than being retained indefinitely.
What I learned
I learned that building an image-processing service is much more than implementing the actual conversion algorithms.
Upload handling, memory management, temporary storage, concurrent processing, progress reporting, error handling, and cleanup all become important when the application needs to handle large batches reliably.
Building the project in Go also gave me more experience designing a processing pipeline where resource usage needs to remain predictable.
What's next for FreeWebPtoJPG
I'm continuing to expand the image toolkit with more formats, presets, and image-processing workflows.
I'm also working on improving processing performance and the experience of handling large batches, while keeping the service simple, fast, and free to use.
Built With
- alpine
- go
- javascript
- tailwind
Log in or sign up for Devpost to join the conversation.