DEV Community

Tools Crazy
Tools Crazy

Posted on

Building a Browser-Based Photoshop Alternative with WebGPU

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 designer turned developer. Every time I opened Photoshop, I had to wait forever for it to load. Plus, 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 for free?

The Technical Challenge

I started with Canvas 2D API. Performance was terrible with large images. Then I discovered WebGPU - the new browser GPU API that gives you direct access to graphics hardware.

Key decisions:

  • WebGPU over WebGL (3-5x performance boost)
  • Pure client-side processing (privacy + zero server costs)
  • Full PSD compatibility, not just export (hardest part)

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.

  1. 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)

Result: smooth editing even with 500MB PSD files.

  1. 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.
  • Build in public on Twitter: Daily progress updates built early audience.
  • Focus on one killer feature: Full PSD compatibility. Competitors only do partial support.
  • Freemium model: Core editor free forever. AI features are paid add-ons.

What Didn't Work

  • Trying to build 50 features at once: Took 3 months to realize I should ship with 10 core features first.
  • Ignoring mobile: 30% of users are on mobile. Had to rebuild the UI.
  • 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)
  • AI API: ~$50/month (user-paid)
  • 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. Freemium works: Free core attracts users. Premium features convert.
  3. Build in public: Twitter exposure drove 60% of early traffic.
  4. Solve real pain: Adobe's price + install requirement + privacy concerns = clear market need.

Open Source Plans

Planning to open-source the core PSD parser and WebGPU rendering engine under MIT license. Want to help other developers build similar tools.

Questions for the Community

  1. What performance bottlenecks have you hit building browser apps?
  2. Would you consider using WebGPU over Canvas/WebGL?
  3. Any experience with freemium pricing models?

Try it: https://photoquill.com

Happy to answer technical questions about WebGPU, PSD format, or indie development.


Try it out here: PhotoQuill

Top comments (0)