
PhotoQuill
Free Photoshop alternative in your browser, full PSD support
I spent 14 months building PhotoQuill, a browser-based Photoshop alternative that runs entirely on WebGPU. Launched 2 weeks ago. Here's what I learned.
Why I Built This
I'm a frontend and web 3D developer with a strong interest in 2D and 3D art. I learned Photoshop systematically, but Adobe's $22.99/month subscription felt too expensive for occasional use. I thought: what if there was a browser version that just works instantly and is completely free?
Four Major Rewrites
The journey to WebGPU wasn't straightforward. I went through four complete rewrites:
1. Pure Canvas 2D: Performance issues with features like liquify and subject selection were obvious.
2. WebGL: Some features still had performance problems.
3. PixiJS: Tried this to quickly support both WebGPU and WebGL. Hit a wall when I needed 32-bit color depth support for HDR images - PixiJS doesn't support it.
4. Pure WebGPU: Final rewrite. Now handles 32-bit HDR images perfectly. Trade-off: currently doesn't work on mobile or browsers without WebGPU support.
Three Hardest Technical Problems
1. Reverse-Engineering PSD Format
Photoshop's .psd format has no complete public documentation. I spent a month studying the ag-psd library source code to understand layers, masks, blend modes, and data structures. Smart Objects were the worst - they're nested PSD files.
2. WebGPU Performance Optimization
Getting 60fps canvas rendering in a browser required careful GPU memory management:
- Tile-based rendering (split layers into chunks)
- Only render visible areas
- Compute Shaders for filters (2x faster than Fragment Shaders)
3. Implementing 27 Blend Modes
Photoshop has 27 layer blend modes (Multiply, Screen, Overlay, Color Dodge, etc.). Each one required writing GLSL shaders and ensuring pixel-perfect match with Photoshop's output. 2000+ lines of shader code.
What Worked
- Ship MVP fast: First version had just layers, brushes, and export. Launched in 2 weeks.
- Focus on one killer feature: Full PSD compatibility. Competitors only do partial support.
- Freemium model: All core editing features are completely free with no ads. Only AI image generation (which calls third-party APIs) requires payment, with free credits included.
What Didn't Work
- Trying to build 50 features at once: Took 3 months to realize I should ship with 10 core features first.
- Over-optimization: Spent 2 weeks optimizing a feature only 1% of users touch.
Current Status (2 weeks post-launch)
- 800+ users (no paid ads)
- 15% day-1 retention
- First paying customer yesterday
- 4.6/5 rating on Product Hunt
Tech Stack
- Frontend: React + TypeScript + Zustand
- Rendering: WebGPU + GLSL Shaders
- PSD parsing: ag-psd (heavily modified)
- Hosting: Cloudflare Pages (free tier)
Cost Structure
- Server: $0 (static site)
- Domain: $12/year
- Total: Nearly zero operating cost
Advice for Indie Hackers
1. Pick the right tech: WebGPU enabled desktop-class performance in a browser.
2. Don't be afraid to rewrite: Four rewrites taught me more than trying to patch the first version.
3. Know your trade-offs: Choosing WebGPU means no mobile support yet, but perfect HDR handling.
Questions for the Community
1. Would you consider using WebGPU over Canvas/WebGL?
2. Any experience with freemium pricing models?
3. How do you approach marketing and user acquisition? I'm struggling to figure out how to promote the product or create viral growth loops that encourage users to share.
Try it: https://photoquill.com

Comment