> About tooldev.app
tooldev.app is built and maintained by Vitalii Kurovskyi, a software engineer based in Ukraine with a twenty-year background in retail technology. The site is an independent side project — a single-person effort to consolidate, in one place, the image tools people search for across the web, in a clean design, with every file processed locally in the browser.
> Why tooldev.app exists
The honest motivation: I kept running into the same wall. I needed to convert an image — change a PNG to WebP for a web project, drop a batch of JPEGs down to a certain size, strip EXIF out of a photo before posting it, resize an asset for a YouTube thumbnail — and every time, the first page of Google results looked the same. Tools from 2009 layouts, fake "Download" buttons, interstitial ads, mandatory account signups, and — the worst — services that silently upload your images to someone else's server before showing you the result.
I wanted something different, so I started building it. My goal with tooldev.app was simple: bring together in one place the image tools people actually search for across the web, give them a clean, minimal design, and make sure every byte is processed right on the user's own device. No upload. No account. No dark patterns. No interstitial wall between you and the file you need.
Everything you see on this site grew out of that one idea.
> Engineering principles
A handful of principles keep the project coherent as it grows:
- Privacy first. Every tool processes files locally. No file content ever leaves your browser. This is a structural choice — there is no backend to upload to.
- Vanilla HTML, CSS, and JavaScript. No React, no Vue, no bundlers. The site is a set of hand-written static pages that a modern browser can render without a build step.
- No third-party trackers of file content. Google Analytics and Google AdSense are used only for anonymous page-level metrics and advertising. Neither has any visibility into the files you convert.
- Six free themes. The cyber-minimalism look is opinionated. Not everyone likes matrix green, so there are six palettes — all free, no gating, no subscription upsell.
- Honest about limits. Browser-based conversion has real trade-offs — memory limits on large files, animated GIF flattening, metadata stripping. Those trade-offs are written into the UI, not hidden behind marketing copy.
- No freemium paywall. Everything that is free today stays free. There is no "pro tier" waiting to be announced.
> How the conversion actually works
All image processing runs client-side using the browser's Canvas API. When you drop a file
into the tool, your browser reads the bytes into memory, decodes them, paints the pixels
onto an off-screen <canvas> element, and then re-encodes the canvas in
the target format with canvas.toBlob(). The final blob is handed back to the
page for you to download. No HTTP request leaves your device carrying file content at any
stage of that flow.
Batches use the same pipeline repeated per file. For larger batches, the tools use Web Workers where supported so the main UI thread stays responsive while conversion runs. When all files are done, a ZIP archive is built client-side and offered as a single download.
Because there is no upload, conversion is usually faster than server-based alternatives — there is no upload round-trip, no queue, and no rate limit.
> Tech stack
The stack is deliberately small and boring — the less magic, the fewer surprises.
- Canvas API + Web Workers for local image decoding and re-encoding across seven formats (PNG, JPG, WebP, AVIF, GIF, BMP, ICO).
- Static HTML / CSS / JavaScript with zero framework dependencies. Every page is hand-written and readable in the "View Source" sense of the term.
- Cloudflare Pages for global static hosting. Automatic deploys from the
mainbranch and a generous free tier mean there is no cloud bill to worry about. - Schema.org JSON-LD for structured data on every page, so search engines and AI crawlers can understand the content without scraping visible markup.
- Consent Mode v2 with a Google-powered CMP for EU / EEA privacy compliance; non-EEA users get analytics by default and ad personalisation stays denied until explicit consent.
> What tooldev.app does NOT do
An honest "what this is not" list is more informative than a long feature list:
- No server uploads of file content.
- No account signup. Ever.
- No paywalls. Nothing hidden behind a "Pro" tier.
- No file retention — your files exist only in your browser's memory.
- No third-party tracking of image content.
- No newsletters, no modal popups asking for your email, no cookie walls beyond what EU law requires.
> What I learned building this
Writing tooldev.app has been an ongoing education in the rough edges of image formats and browsers. A few lessons stuck:
- WebP support was famously late on Safari. AVIF is currently in a similar transitional moment — great on Chrome and Firefox, still catching up elsewhere. Any comparison page on this site has to acknowledge that.
- Canvas re-encoding of large images (over roughly 50 MB raw) can silently hit memory limits on mobile Safari, which returns a black canvas instead of an error. Defensive coding matters.
- Animated GIF support inside a plain
<canvas>is effectively single-frame. Proper GIF-to-WebP animation support requires WASM decoders — a planned future upgrade. - ICC color profiles survive Canvas re-encoding inconsistently across browsers. Professional photo workflows should still go through desktop tools.
- Clean design matters more than I expected. A lot of the positive feedback is about the look, not the conversion speed.
> Background
Outside of this site, I have spent twenty years in retail technology — the systems, integrations, and operational problems that keep large-format retailers running. That experience doesn't show up in any particular feature of tooldev.app, but it shapes the approach: build something that works reliably for real people, keep it observable, and own the consequences of the choices you make.
tooldev.app is a deliberate move into public, independent web work. It is my sandbox for browser APIs, web performance, honest SEO, and the kind of product writing that earns user trust rather than chasing clicks.
> Available tools
The current focus is image work — conversions, compression targets, resizing for common platforms, and a handful of privacy-adjacent tools (EXIF removal, favicon generation). More tools join the set as the project grows.
- PNG → WebP — reduce PNG size by 25–50% for web delivery.
- JPG → WebP — modern format for JPEG photo libraries.
- WebP → PNG — lossless copy for editing and legacy workflows.
- WebP → JPG — maximum compatibility for sharing.
- PNG → JPG — smaller files for photos without transparency.
- JPG → PNG — a lossless canonical copy before further editing.
- All tools — homepage hub linking to compressors, resizers, and comparison guides.
> Why it's free
tooldev.app is free and is supported by display advertising through Google AdSense. I built it to learn in public, and keeping it free and accessible — without paywalls, signup walls, or feature gates — is part of that. If ads ever become intrusive enough to hurt the tool experience, I adjust them. The priority is the tool, not the revenue.
> Contact
Email: privacy@tooldev.app. Routed through Cloudflare Email Routing to my personal inbox. I reply within a few business days.
GitHub profile: github.com/dc83. The tooldev.app repository itself is private, but the profile is the best public proof of identity that ties this site to a real developer.
For bug reports, DMCA notices, and privacy requests, write to privacy@tooldev.app — replies usually arrive within 5 business days.