
MSPaint in JavaScript - whalesalad
https://jspaint.app
======
thesandlord
Photoshop in JavaScript:
[https://www.photopea.com/](https://www.photopea.com/)

I use it all the time, amazing it was created by a single person!

~~~
crazygringo
Oh my god that's literally insane. Sorry, but I am astonished by what it
implements.

Layers? Path editing? Blending options? Content-aware fill? Convert text to
shape? In a _web browser_?

I'm just blown away right now. I'm editing a 2000x3000 pixel image and it
seems just as fast as my copy of actual Photoshop.

I can't even fathom how much work this must have been. One person? How is that
even possible?

~~~
jjeaff
And some people say 10x programmers don't exist.

~~~
zerr
It also shows how much an individual can achieve without big corporate and
nowadays "agile" bullshit overhead.

~~~
smougel
So true!

------
OkGoDoIt
I had originally assumed this was some sort of webassembly port of the actual
Microsoft Paint source code. But it looks like a completely custom JavaScript
app built from the ground up to look and work very similarly to Microsoft
Paint. That’s actually super impressive, although not quite the technological
feat I had originally assumed. It does make this more dubious from a trademark
perspective, the author might want to make it more clear it’s not actually
Microsoft Paint.

~~~
Tade0
It would be hard to beat Fabrice Bellard in this game:

[https://bellard.org/jslinux/](https://bellard.org/jslinux/)

~~~
gkfasdfasdf
Oh wow this is amazing. The win2k image runs Paint, and looks like you can
upload and download images.

~~~
Tade0
There's more where that came from - check out this guy's other work.

------
AdmiralAsshat
This is totally something that I could live with being an Electron app on
Linux.

Yes, I should be using GIMP/Krita/Other community FOSS solution, but gosh
darnit, sometimes I just wanna make a 20-second markup on a screenshot, and I
wanna use the friggin' program that I have a 20-year muscle memory for!

~~~
epicide
The fact that at least 5 people have replied with different tools really just
emphasizes your point.

Is it a perfect recreation? Of course not.

Will it do every sort of image editing I might want? A definite no.

Does everybody either quickly learn it or already have its interface burned
into their memory? Yep.

Does it work well enough to do a quick edit on pretty much any OS (including
mobile) without needing anything but a browser and an easy-to-remember link?
YES.

~~~
AdmiralAsshat
I try not to begrudge them because they're just trying to be helpful. :)

------
boomskats
This is huge. I no longer have any reason to keep my Windows partition!

~~~
mehrdadn
Windows XP? :P

------
mrtksn
Ah, this could be used as the missing paint in macOS. Even taking a screenshot
and dragging it inside the browser works as expected. Is there an easy wat to
turn this into an app that can live locally?

Paint is the only thing I miss about Windows.

~~~
jchw
Presumably Electron, but it may be slightly more comfortable to compile
something like KolourPaint for macOS instead.

~~~
ognarb
You don't need to compile it, there is already a precompiled version for
macOS: [https://binary-
factory.kde.org/job/Kolourpaint_Nightly_macos...](https://binary-
factory.kde.org/job/Kolourpaint_Nightly_macos/)

~~~
jchw
Ah, that’s cool, I didn’t know. Seems like a winning solution to me.

------
dang
Threads from 2018:

[https://news.ycombinator.com/item?id=16174478](https://news.ycombinator.com/item?id=16174478)

[https://news.ycombinator.com/item?id=17275332](https://news.ycombinator.com/item?id=17275332)

An almost unrelated but great thread from 2011:
[https://news.ycombinator.com/item?id=2305370](https://news.ycombinator.com/item?id=2305370)

------
rubyn00bie
Get the real magic* with Konami mode:

up, up, down, down, left, right, left, right, b, a

* Magic being what I'd call a full 90s experience

------
jtvjan
Looks like this is part of a greater project, 98.js.org. Though, you could
also add it as a shortcut to Windows 93[1] and it'd fit right in.

[1]: [https://www.windows93.net/](https://www.windows93.net/)

------
eatonphil
The source code/project page is linked in the Help popup.

[https://github.com/1j01/jspaint](https://github.com/1j01/jspaint)

------
goda90
Maybe this is false memory, but did old MSPaint have a "feature" where if you
are holding down the left click button to draw with the pencil tool or
something, and then you scroll the scroll-wheel, it creates a bunch of
vertical lines along where you are drawing? I was sad that this didn't have
that.

------
qwerty456127
Fun but not really useful. I bloody wish someone would implement Paint.Net
(which is the most practical + intuitive picture editor ever IMHO) in
JavaScript. It's cross-platform Mono clone, Pinta, is tolerable but not nearly
as good.

------
soheil
Even the speed by which help articles load when clicked on in the Help Topics
works the same way as ms paint. This is insane level of attention to details.

On a separate note, I love the Help Topics so much I think I will use it
instead of ZenDesk guide pages on our SaaS website. It's so elegant and all
contained in one booklet with extremely legible text and iconography. No bs
web ui here.

~~~
lotwxyz
> No bs web ui here.

You ain't seen nothing yet:
[https://dev.lotw.xyz/desk.os](https://dev.lotw.xyz/desk.os)

------
OkGoDoIt
Works surprisingly well on iOS, although it’s difficult to select the menu
items (small tap target), there doesn’t appear to be any way to right click,
and the window size bleeds off the right edge of the screen. Still, much more
impressive functionality and performance than I expected, especially since
this doesn’t seem to be optimized for mobile!

------
jsd1982
The history to GIF is a neat feature but falls apart if your first operation
is to invert colors or fill the image as black instead of default white.
Having the ability to edit history would be nice (cut out the initial New
Document history item) or be able to create a new image from the current one
with history erased.

------
eyelidlessness
My favorite feature is that typing `cmd-[` (browser back) briefly rotates the
canvas before the browser navigates back.

------
jancsika
Oh wow, there's a lot of attention to detail. The application menu looks
perfect and is a lot snappier than I thought it would be for an HTML5 app.

On the other hand-- why do the toolbar buttons only trigger on mouseup? I
thought they triggered on mousedown on the original MS Paint.

------
thrownaway954
Konami code is in effect ;)

------
yoavm
what strikes me the most is that the "modern" theme (from the "extras" menu)
feels so much less user friendly than the "classic" one. where did it all go
wrong?..

------
jedberg
This is awesome! I miss MS Paint. So much easier for markup.

One nit though, they should add a few sleep() in there so it feels like my old
PC. :)

------
franze
Here a JS/canvas implementatio n from 2010 (he showed a demo at a code meetup
around 2006?) [https://sigilmaster.com/](https://sigilmaster.com/) (desktop)
by C3O (now works at the european parlament for the pirate party to my latest
knowledge)

would be fun to compare the code

------
cbhl
Not seeing the Windows 9x theme around the window puts this squarely in
uncanny valley for me. (Granted, I'm running this in Chrome on Linux -- if one
was on Windows, the "double frame" would probably look wrong, too.)

Reminds me of the "Mac OS 8 in DHTML" page from the 90s...

------
thrower123
I'd forgotten how much better the old Paint UI was compared to the newer
edition...

------
bobchops
You are using the wrong algorithm for filled circles. IIRC MS Paint uses an
algorithm based on the mathematical formula for a circle, which creates a
pointy out pixel which looks a bit out of place.

------
badsectoracula
This is nice. The Win95-Vista paint interface was IMO the best and i still
dislike using the newer versions, especially since they screw up a lot of
common things (e.g. try to draw overlapping rectangles).

------
stakkur
MacPaint in JavaScript:
[https://www.cloudpaint.com/classic](https://www.cloudpaint.com/classic)

An elegant weapon, from a more civilized time.

------
discordance
Oh man, if this had some WebRTC in there so we could all paint on one canvas
that would be awesome.

Love it any how!

Edit: Just noticed under Extras there is Multi-user. Bravo!

------
Theizestooke
Is there a Deluxe Paint Javascript version?

------
Emendo
I can't believe that this application has an Online Help ... book as well. ;)

------
rkagerer
I love the fact that even the retro Help application look and feel was
recreated.

------
cek
In MS Edge, click on "Install this site as an app" in the Apps menu.

:mind blown:

------
flattone
grumbling to myself "If i could go back in time. this is the covered wagon.
this is why cowboys get old."

I love this so much

------
mc3
Upload to imgur? This is a meme machine!

------
amelius
It doesn't save in BMP format?

------
prgmatic
So sick. Did you make this yourself?

------
marstall
That's insane! (in a good way)

------
enahs-sf
this is great! thanks for making this, brought me back to my childhood and
made my day!

------
june28
Why do people do that...

------
walkingpigeon
render history as a gif is quite cool.

------
jbverschoor
haha cool the konami-code easter egg

------
dpcan
Someone's been on reddit today.

