As an Android developer, I've spent years building apps for other companies. Like a lot of engineers, I've always had a stack of side projects I wanted to ship for myself. This one started from a genuinely annoying problem.
The problem
Every time I wanted to apply a quick cinematic or vintage look to a photo, I'd end up on some free "online photo filter" site — and almost every single one of them worked the same way: upload your photo to their server, wait, download the result, and quietly wonder where that photo just went and who else could see it.
For casual edits that's a small risk. But it bugged me enough that I decided to build the tool myself, with a different default.
What I built
photofilters.online is a free, browser-based photo editor with curated, AI-powered presets — but with one core architectural decision that shapes everything else:
Your photos never leave your device. All processing happens locally in the browser. No server uploads, no storage, no privacy policy you have to trust — it's true by construction, because the image data simply never gets transmitted.
Feature set:
- Curated preset categories — Cinematic, Vintage Film, Portrait, Landscape, Cyberpunk, Moody, Matte, and HDR looks, ready to apply instantly
- AI text-to-preset generator — describe the mood/color grade you want in plain language, and it generates a custom filter look
- Zero friction — no sign-up, no install, no account, no watermark
Why build it client-side
Coming from Android dev, where you're constantly thinking about what data actually needs to leave the device vs. what can be processed on-device, "upload your photo to our server just to apply a filter" always felt like the wrong default for something this simple.
Modern browsers are genuinely capable of handling image processing and AI-assisted styling entirely client-side. So instead of treating privacy as a policy or an afterthought, I built the processing pipeline so the photo never has a reason to leave the browser tab in the first place — no server, no upload endpoint, no storage layer for user images at all.
What's next
This is an early build, and I'm actively adding more preset styles and refining the AI preset generator based on feedback. If there's interest, I can follow this up with a technical deep-dive — architecture, how the local AI preset generation works, tradeoffs of client-side processing vs. server-side, etc.
👉 Try it here: photofilters.online
Would genuinely appreciate feedback — what filters you'd want to see, what's confusing, what's missing. Comment below or reach out.
If a technical breakdown of the client-side AI pipeline would be useful, let me know in the comments and I'll write it up next.



Top comments (0)