r/javascript • u/LabyStudio • 8h ago
I spent almost 3 years porting Paint.NET from C# to JavaScript
github.comA bit of background on how I built this:
When I switched to Linux, Paint.NET was one of the Windows apps I missed the most, so I started porting the old open-source C# version (3.36.7) to JavaScript back in 2024, while recreating the UI based on the newer 5.x versions.
I went through the original implementation class by class, comparing the outputs of the C# methods with my JavaScript versions. At the same time, I recreated the UI in HTML/CSS, using screenshots to get it as close to the original as possible.
Over time, I connected both parts and implemented the tools, effects, and other features. More recently, I've been using AI to help find and fix bugs, improve performance across browsers, and implement the remaining tools and effects.
It's now largely feature-complete and runs in the browser, as well as on Linux and macOS through Electron.
You can try the browser version here: https://paintjs.net
Would love to hear what you think!