I'm thinking about creating a fully functional photo editor utilizing WebGPU and other web technologies. I've only dabbled with WebGPU through abstractions, but I want to dive deeper. I'd like to use React for the front end and WebGPU for image editing and drawing. My goal is to develop something akin to Photopea but with even more features, and it absolutely needs to be cross-platform, particularly working on Linux. Ideally, I want this to be a desktop application, but from my research, it seems like webviews and WebGPU don't play well together, leading me to consider Electron as the only option. Another route could be using C# with Avalonia and Skia, but I'm not well-versed in C# and haven't used Avalonia before. I'm open to learning whatever it takes to make this happen. I'm also curious about potential limitations and performance issues down the line, especially as I add features. Any general advice would be greatly appreciated!
3 Answers
Have you checked out Graphite? It's a web-based editor too. Just a thought! But you’re right—if you want to stick with TypeScript, it might be tricky to match performance without Rust and WebAssembly.
It sounds like a challenging but exciting project! When you mention being concerned about performance, it's totally valid—software development often comes with limits. Structuring your application properly from the start can help mitigate sluggishness. While React isn’t inherently bad for performance, consider if a framework more tailored for graphics might be advantageous later on. Also, scope out existing photo editors for insights into both their successes and struggles; this can help you avoid similar pitfalls.
That's a great point! Learning from what's already out there could definitely save time. Maybe starting with a smaller project first to understand the tech stack would be a good approach?
Like Photopea, but better? That’s ambitious! Just ensure you’re not overloading your app with features too quickly. Prioritize the core functionalities first, and then expand. And yeah, Electron can be a bit heavy but it's quite powerful for cross-platform apps. If you go the C# route, Avalonia could be a solid choice. Just take your time learning and build iteratively!
I completely agree! Start with basics, and then add features as you go. That way, you can keep track of performance as your app grows.

Thanks for the suggestion! I checked it out, but I'm leaning towards TypeScript for my design because that's what I'm more comfortable with. Just hope I'm not making a harder choice!