Hacker News new | comments | show | ask | jobs | submit login
Reddit AMA on Photopea, a free alternative to Photoshop used by 1.5M people (reddit.com)
562 points by arikr 14 days ago | hide | past | web | favorite | 179 comments



I love a comment in the Reddit post where a user asks if he takes feature requests and proposes one (triple click on text to select it). The guy, shortly after, answers saying that it's a good idea, and that he just implemented it.

I don't love it because of the attitude of the developer (which is great too), I love that it reminds me how fast it is to solo develop something and how much more complicated it gets when a team grows.

(We are a small team of 15 devs in my company and it's already super complicated to be that efficient)


It only took him two hours after the feature request was posted until the change went live. I guess that kind of speed is only possible if you're a solo developer that takes full responsibility for his product and who is product owner, dev-op, UX expert and QA all in one person.


Notably he was also answering other questions in the AMA, so it possibly only took him 2 minutes. It is not a difficult feature to implement anyhow, it probably went like this:

    vim tools/Text.js
    self.addEventListener('click', function (e) {
      if (e.detail === 3) {
        self.selectAll();
      }
    });
    :wq
    git add tools/Text.js
    git commit -m "Add triple click select all"
    git push origin master
    Done.


Almost ... but I use Notepad++ instead of Vim. And I had to implement the search for the first and the last character in a line according to the layout. It took me about 10 minutes :)


This is super interesting :). Just curious, why don't you use a more advanced code editor than Notepad++?


I'm always amazed when people ship cool software with what I judge to be crappy, obsolete, or even downright dangerous processes/practices. Yet even though I (by my own judgement) use superior processes and practices (VSCode + Git + CI pipelines, etc.), I haven't shipped anything nearly as cool.

A few others that come to mind are KeePass/Dwarf Fortress (no formal VCS), and GRRM (uses WordStar 4.0 in DOS)


Maybe you spend too much time on processes, getting things right, and less time on actually shipping something useful?


He could have done this just as fast using GIT + CI. VSCode would have likely slowed him down with indexing, and he already knows where all his files are so there wouldn't be any gains from hopping around function declarations with the click of a mouse

Although you didn't pinpoint a single process that was inferior, knowing when to break processes is part of the experience.


I kind of put vscode in the same category as notepad++. Actually, as a text editor, I think N++ has some nice features that vscode doesn't (like macros, I think).

VSCode definitely has macros :) I don't think there's much that notepad++ has but VSC doesn't

Ah, I checked there seems to be an extension that lets you write macros in a JSON file: https://marketplace.visualstudio.com/items?itemName=geddski....

But there seems to have been no movement on this request for a functional macro feature: https://github.com/Microsoft/vscode/issues/4490


Thanks :) I already discussed it here: https://news.ycombinator.com/item?id=15924664


Cool project. Playing around with it now and I love what I see. Must have been very fun learning about how to implement image filters and such along the way.

Any particular reason you choose Notepad++ over a full-featured IDE for a project of this scope?


Neat, I didn't know about detail on mouseclick events :)


The main view is a canvas. Regardless, my hunch is event delegation would be more performant.


And because it's a webapp the user accesses the new feature by clicking "refresh."

Compare that to building binaries for all supported platforms, testing, publishing, dripping down into Debian & Ubuntu, someone on Ubuntu-Based-Distro-#1377 reporting a dependency problem, someone old Debian complaining that their compiler is choking on a gl library under armv7l, etc.


Unless the user is using IE11. A perhaps not-so-modern but still a mainstream and typically supported browser. But if you're going to specify "old Debian" I think it would be fair to expect it to work on "old browsers" as well. But I think it would be silly to expect it to work in IE 5 anymore than some modern programs working in some old flavor of a Debian distro with outdated libraries.

At some point, like people do with dated web browsers, developers need to tell users they need to update as the developer won't be supporting such outdated software anymore.


In the same vein, someone says it's not working for them in WinXP IE 8

I’m fairly confident that I could have built more or less the same product that our team of 30 has built over the past 5 months in the same amount of time by myself.

If I’d had 1 more senior developer and a designer/front-end dev, I’m fairly certain it could be done by now.

But there’s so many people involved in the process that everything slows to a crawl.

I’m sure our clients love hearing that the product is developed by 30 people over 1.5 years though.


Are you good at business requirements gathering? Environmental architecture? UX design? QA functional and regressional?

Fancy juggling AWS config and costs? Writing user manuals, help desk scripts?

On a scratch-itch OSS project you can ignore those. But when you plan to sell it, things scale quickly. Coding is just one arrow in quivver.


Most of those? There’s no point to me doing QA on my own product, and I hate writing any form of manual with a passion (things should be understandable without one).

But the point was mainly that the actual product is essentially a glorified crud application.

There is some value in having a larger team, but the time wasted is absolutely massive.


IME it's easy to look back and focus on doing the knowns. But starting from ignorance and alone is likely to take longer than a skilled team starting from scratch. Of course it must be the right size to explore and implement the solutions without too much overhead.


There's also a number of projects that it's super easy to do like 83% of.

A couple of ambitious college students could make a basic web crawler and search engine using 2018 technology and not even that many cloud resources and get like 80% of Google's quality. But that doesn't mean they're only another long weekend from being the next Google: closing the gap really does require millions of manhours and billions of dollars of compute.

(And their web crawler would be causing chaos and destruction across the web, but let he who has not accidentally deleted someone's will by crawling all the "delete this article" links cast the first stone.)


I just saw a demo by a team of 30 that had worked on a super secret project for a client for the last 3 years. It was a web page that let you enter in SQL queries and select which database from some set of databases they've integrated to run it against...and then save the query with a name.

In my area, we've literally built something more or less like that a few times in the same time with one or two developers each time. In fact, I found out after the demo that much of the core logic came from a repo a guy on my team wrote in his spare time to plug a hole on a minor side project he was doing.


Owning your product (ie. reaping the rewards of your labor) is an enormous motivator. It takes a skillful manager/salesperson to keep people motivated as a company grows and they have less skin in the game.


Or a fat, annually growing paycheck.


Money does motivate me to an extent. Ownership really lights my fire, though. Given the opportunity to really own a thing, to take responsibility for it, is something I've been looking for in employers and potential jobs.


I follow the development of a header-only C++ library that I use and, besides a small community of users who help the author test and report bugs, its just one guy and the amount of features he's implemented in the past few months, due to him or members of the community needing the feature, is quite substantial. Its always wonderful to see substantial features or optimisations implemented shortly after seeing a discussion on it. The velocity of some of these projects is incredible.

Its not necessarily just "small teams move faster". It can be, but also it depends on the passion and energy of the individuals.


What’s the library if I may ask?

https://github.com/skypjack/entt

Its a great Entity-Component-System library, but better than the library itself is how active and approachable the author is.


You are also more efficient when you work on something you love.


Can't a CI/CD pipeline + various processes be good enough to achieve a similar efficiency for under-100-engineers companies? Honest question - because I'm pretty sure I've heard some people claim similarly fast "idea to production" times.


Usually, feature requests go through a product manager who can do analysis, integrate with road map, prioritize against other features, figure out if there's overlap with another feature (maybe one coming up soon) and so it shouldn't actually be implemented, etc.

There may be some communication between product and design to figure out how it should look and feel.

Then it'll go into a sprint most probably, but not the current sprint, because that would change the scope and affect estimates and possible delivery timelines. You'd only change the sprint scope if the team is running out of work to do or there's a major customer request or other panic.

There will be some measure of QA, ideally. Some people fly by the seat of their pants, and rely on fixing things in production if it breaks in production. This is using your customers as QA. Can work if you roll out gradually and are very responsive to any reports of regressions.

All in all, this is unlikely to happen in less than a couple of weeks. The processes are designed for predictable, consistent delivery and to minimize surprise. Shortening the chain will mean less integrated decision making and will increase the amount of surprise and inconsistency in the product and its delivery.


The processes are also designed such that people do not feel overstepped and ignored. After all, most things in life are about social status, or more immediately about salary status and job position.

If someone secretly implements an awesome feature, others might be envious as it does not seem deserved if their idea did not receive the same level of scrutiny by the usual processes as other decisions did.

Theoretically, it probably won't cause much chaos at all if programmers are allowed to add small GUI tweaks and the product likely benefits from it.

The degree to which this would work probably depends a lot on the extent to which the programmers have reached Kegan level 5, so practically it probably won't work all that well.

http://i.imgur.com/K4AVFbW.png


It's pretty rare for someone to secretly implement an awesome feature. Usually the way that works is as you hint at: someone who already has high social status in the organization gets a lot of leeway to do his own thing while everyone else is constrained to the usual process.

The envy isn't about the awesome feature: it's about the fact that this developer gets even more attention and positive notice from leadership by means that aren't available to other workers due to social status (rather than merit).


To add to this good answer: in many cases you also don't want to overwhelm the users with frequent, unexpected changes, especially in 'enterprise' software.

This is not so much a problem when you add a new feature like this triple-click which doesn't change existing usage and workflows. But even here you want to add that to your documentation, inform your support staff about it etc.

For changes that affect the look & feel of the product, your users will curse you if you roll out multiple of those per week, even if everything is totally stable and free of bugs.


Not so sure. One developer understands his whole code base and environment quite well. So let's say an error occurs during build it's likely he will be able to check out the logs, navigate to that area of code and troubleshoot.

In a larger team the flow of info is DevOps/Developer spot error in CI/CD, find out which commit/Developer broke the build. Email/slack/ walk over to let them know and sit down for a friendly troubleshooting session.

Resolve the problem. Follow necessary processes to commit change. CI/CD hosted agent is busy building other projects because not enough budget for multiple hosted agents and all CI/CD is handled in the cloud. Time to go home!

Obviously that was a bit facetious but you get the picture.


Can you imagine running a company with a product where 100 people feel empowered to make small tweaks to the UI without going through a prioritization and design process?


Sounds like a nightmare to me. Probably most of those developers secretly think they work with incompetents.


Our team requires code review, and often times the comments are non-trivial. I think feature A could be implemented this way, a teammate thinks it should be done a different way. Neither way is wrong, but it requires either the team come to consensus (takes time) or the team lead makes a call (and potentially ticks someone off).

Additionally, beyond trivial projects, some changes may require changes to architecture, even small ones. A new feature may require a new index, a schema get updated, a new worker be setup to run in prod, etc.

And usually there are multiple PRs waiting to be added, which have to be deconflicted, and the lead dev still wants to code so everything takes longer than you'd think.


I reckon it's more of a question of bureaucracy than technology. If I were to do something like that on the project I work on, I'd need at least four other people involved, and a stack of meetings to get the feature approved for development.


Just a CI/CD run can easily take an hour or two. Add the code review back-and-forth (mostly waiting for reviewers, but also waiting for CI after every iteration) and a change that you could do solo within a two hours will take a couple days when working on a team. I've yet to see it go faster than that.


Yes, but most of the time a new feature request will be in a backlog behind many other things, at least in most places I've worked


> Can't a CI/CD pipeline

Those 100 engineers have to first agree on a CI/CD pipeline.


I don't think I could work any other way without feeling miserable. The one person freelancer model is just so much fun. My only regret (and it's a big one) is that being around smart people is a great learning catalyst.


Surely there's a way to have both? Meetups or co-working spaces, maybe?


Yeah, I’m trying.


I may be in the same boat as you eventually. I’d be interested in hearing your solution if you find one, and am happy to join a remote meetup if there is one.

IMHO you got it backwards. It's less of a question on efficiency than priorities. I doubt that if the request was too complicated to implement or the feature was for a very specific task (look at opening raw images in this very thread) there will be such quick response.

Larger teams suffer from the fact that everyone has number of requests and prioritising one over other gets even more complicated. Even a simple request like this might have to go through a pipeline.


Classic case of confusing correlation and causation. Large teams work on large projects. Large projects have large audiences which attract large numbers of requests. The smallest change in the world is going to get lost in all that noise.

You can be that quick with a relatively new product but once you have a few years of legacy code and a large install base then every little chance can have unexpected side effects and is much slower.

It certainly helps to be a solo dev but that's not all.


Unfortunately it is not an alternative to Photoshop. It's more of an alternative to Paint.net. Photoshop is vast, it's absolutely huge. It has all kinds of features that will take decades to implement for one talented person. Additionally, it relies on GPU acceleration for many common tasks.

If you want to target Photoshop userbase, you absolutely must implement 16-bit editing and the ability to open RAW camera files. This project can't do either, while GIMP does.

It's still impressive what he did.


This thing targets people who started using Photoshop back in the day when it still wasn't a subscription service for basic and mildly advanced image editing tasks, and who thus grew accustomed to the Photoshop UI. I personally know several such people, some are trying to switch to alternatives (like myself, I'm switching to Affinity Photo), but the others still use the same (sometimes pirated) Photoshop CS3 or CS4 version they have used since forever, because it's more than enough for their needs, and the usual reason why they stick to it is that they know how to get stuff done with the familiar UI.

Imitating this basic UI with nearly 100% accuracy is a stroke of genius. Not even Affinity Photo, which is clearly taking lots of ideas from the Photoshop UI as well, comes close to this level of familiarity. Photopea truly feels as if it was Photoshop from 10 years ago, which is exactly the Photoshop that lots of people not working in the graphics industry, where an Adobe subscription is mandatory, love.


This describes me. Started using Photoshop around 4, knew it inside and out. Then, over the years, Photoshop far outgrew me (and my needs). This is a wonderful alternative that probably does 95% of what I need in Photoshop.


Pretty much in a similar case to yours. I started playing with Photoshop with a 5.0 license my dad bought back around 1998, and used that same version for years. I pretty much still use the same features I did back then, and to me all those modern versions makes no difference to my workflow whatsoever. With time I just learned to do things a bit more efficiently like to use adjustment layers instead of destructive transformations, etc. That same 5.0 version would probably still meet the majority of what I would do with Photoshop.


Give Krita a shot. Its UI is much closer to Photoshop than other alternatives, and it's a fully open source project. It's still a bit buggy on Windows but it runs perfectly on every Linux distro I've tried it on. It's a bit overkill for my needs (I do everything I need with Paint.net/Pinta) but it's worth a look.


I used it a few weeks ago to crop out a picture of Lebron James’daughter’s face to use as a reaction in slack because I didn’t have photoshop or an app capable of doing what I needed on my computer


Gimp has a photoshop like UI option.

though if your OS has decent windown management and tear dow menus (both not an option on osx-cloned gnome3) than you'd be a fool to use it


I used maybe a hundred of different graphical programs(2d,3d, animation, foo) and photoshop still owns up on the ergonomic side. It's not perfect but it's way good enough. Everytime I use another 2d program I suffer.


If you want to target Photoshop userbase, you absolutely must implement 16-bit editing and the ability to open RAW camera files.

You're implying that there's only one type of Photoshop user. That's not true. Lots of Photoshop users never touch 16-bit or Raw files.


I'm implying that it's not a Photoshop alternative. You might as well call MS Paint that, because by your logic it works for some users.


It's a Photoshop alternative, not a Photoshop replacement. A bike can be an alternative to a car, but does not replace all its functions.


For the HN crowd, yes, you are correct. However, would the mass population relate more to paint.net or Photoshop? Maybe that's why he is calling it a Photoshop alternative.

I have never heard someone saying "Hey, that photo has been paint dot netted."


If someone says "I you can do in X whatever you can do in Photoshop" I immediately assume that they are only using a tiny fraction of Photoshop's functionality.


That's why I miss Fireworks so much. As a developer I receive PSD designs (sometimes 400MB files) that are just a collection of layers that have to be converted in to website-ready image files. This isn't really what PS is for, yet there's no alternative.


I'm running a windows VM on my mac solely for the purpose of running Fireworks (my CV is in Fireworks). I hope someone creates a decent (cross-platform) replacement someday! There's surely a market for it.

Sketch?


Sketch is great, but it's Mac-only with absolutely zero intention[0] of supporting anything else.

I'm a Mac user and have a Sketch licence, and use it often for personal things, but if you're looking to build a piece of software that supports workflows with multiple people working on / implementing designs independently in a professional setting, expecting every company using your software to enforce a fully Mac-only office* is only going to get you so far.

[0] https://www.sketchapp.com/support/requirements/other-platfor...

* I also work in a pretty-much-Mac-only office, so I do acknowledge that this strategy is not entirely fruitless, it's just not going to replace Fireworks.


Most people use Photoshop to open up the picture, crop, adjust color, mabe remove a read eye or put some text over the picture and then save it. Just about any program would be good enough but they know how to use Photoshop so that is what they will be using.


How do you know that? Until recently Photoshop was $700+, now it's $252/year, and I can't imagine many people you're describing paying that much, when you can do all that in a free program.


I'd imagine that warez versions of Photoshop are still extremely popular, and Adobe doesn't even have a lot of incentive to go after them since it's what gets people hooked on the Photoshop UI.


More like PSD file format. I'd throw PS out of the window if Adobe would start using an open common format but they won't as I said I'll switch.


I thought I was paying $10/mo for PS. Still vastly expensive than other professional utilities especially when you need more than PS.


I've used Adobe Photoshop that could not open RAW camera files.

Comparing this one to Paint is disingenuous.


It looks like one can accelerate filters using WebGL shaders: http://evanw.github.io/webgl-filter/

I think Photoshop also operates on a reduced image for previewing the outputs of filters and other tools. Compared to Photoshop, Photopea is a bit laggy with large images on my 8 year old machine, just like GIMP.


Unless something has changed more recently Photoshop was terrible with you acceleration and worked like crap on a 4k display. Most Adobe products completely lacked support for 4k and made them unusable. I was dumbfounded you had to manually edit obscure setting files simply to get hit or miss support for a modern display. They are a graphics company.


I was surprised he is able to process PSDs in his editor though. For many people that might in itself be sufficient.


According to the author it can open DNG RAW files, or at least he claimed it in the AMA


Hi guys, I am Ivan (author of Photopea) and I would like to thank you all.

I used to post here about Photopea in the past without much success. Now, I see a others posting it, and it makes me happy :) Thanks for all your support!


Great job building a product people use!

I was curious that given its an JS/Client side app, do you have any plans of porting it to Electron[0] to make it a cross platform app?

The reason I'm asking is coz editing my photos online makes me a bit nervous. For you the benefit may be that you don't have to test for different browsers and handle the compatibility nightmare.

0: https://electronjs.org/


I've been using Photopea for the past few weeks since my installed version of Photoshop is too old to modify some of the more recent PSD's I come across.

Just wanted to say thanks for an excellent product!

(It's real funny how you discover something for the first time, then start seeing it everywhere like it should have been obvious before!)


You are experiencing Frequency Illusion sometimes referred to as the Baader-Meinhof phenomenon: https://science.howstuffworks.com/life/inside-the-mind/human.... Once I learned about Baader-Meinhof I started to notice it everywhere. ;)

Hey, does this have anything like GIMP's color-to-alpha filter? I can't find anything in the menus, but it's the one thing that GIMP has that Photoshop doesn't which I use very often.

Question: How does one go about building a large-scale graphical app in the browser?

Now, I know a lot about the bits and pieces of web development, but not how to design and organize such an app.


This looks amazing. Just one question: what are the privacy guarantees? Will images, metadata, etc. always stay local and never be sent to another machine?


No. For example if you open an image from a URL, the photopea server will download it and serve it to the client. Unfortunately, I think this is technically necessary for many URLs because of cross origin policy.

Okay, how about once the images are on the local machine? Will they ever be sent elsewhere?

The author says "Photopea runs completely at client-side, there is no server-side computation."

https://old.reddit.com/r/IAmA/comments/9urjmg/i_made_a_free_... https://old.reddit.com/r/IAmA/comments/9urjmg/i_made_a_free_...


Oh awesome. Thank you!

Please post a Patreon donation link on your post, you deserve to be compensated!

As for a fully open-source Photoshop alternative, Krita [1] goes a long way. It does however have some major UX problems in minor areas. For example, yesterday I tried updating the font size of an existing text layer, and just couldn't get a proper selection on the text.

They had a funding crisis last year [2], but currently seem to be doing well with two paid developers. They could really use your (one-time) donation however [3].

[1] https://krita.org/en/

[2] https://krita.org/en/item/krita-foundation-in-trouble/

[3] https://krita.org/en/support-us/donations/


Isn’t Krita a drawing program? That’s akin to Adobe Illustrator, not Photoshop.


No, Illustrator is a vector drawing program. Inkscape or Corel Draw (if people even remember that) are direct competitors.

Krita has to to be compared to Photoshop because both are working on rasterized images. While Krita emphasizes drawing tools in its UI while Photoshop exposes manipulation tools more prominently, both programs aim to cover both sets of features. And Krita's core is actually much, much more advanced than what you would expect from a drawing program. I would actually love to see a UI for Krita that focuses more on manipulation, just to placate the "it's just for drawing" crowd.


> Corel Draw (if people even remember that)

Apparently the latest release of CorelDRAW came out in April this year. I'm a little surprised - I thought they'd disappeared. But apparently you can both buy a license, and rent it by the month.


I agree, Krita is more aimed at drawing than image manipulation (but as others said it's not akin to Illustrator)

Hey Ivan, usually what happens to this kind of a project is corporation knocks to your door and offers a pile of cash you can't reject. Since your project isn't libre open source, it would be nice if you can consider this option. Photopea is great! And it covers all my needs. I would like to teach my son using your product. But I want to be sure that one day I won't see Adobe logo at the top.

Open source under licenses like AGPLv3 will prevent other companies/developers using it for generating the revenue without full source code disclosure (and you'll be able to sell exceptions).

Unfortunately, nowadays the threat of acquiring and killing the product is more realistic than ever.


> this kind of a project is corporation knocks to your door and offers a pile of cash you can't reject

I hope that actually does happen for Ivan. Wouldn't that be a great outcome for him? He spent a considerable amount of time on it.


Sure. But I'm speaking from the user's perspective. Who knows, maybe it's important for Ivan what small little people are concerned about.

Any chance mods can replace the link to "old.reddit.com"? The "new" Reddit is extremely slow and makes my little MacBook sad.



If you're signed in, you can change your user preferences to use old reddit by default


Heh, I wish. It worked for a while but then I got force-logged out for a password change and now it flip flops between the modes and errors when I enable old mode.



Disclaimer: OP changed post title from "I made x y z" to "Redditor made x y z" so my question seems to have been rendered (get it?) invalid.

This is really impressive. I will be using this in the future - great work.

Are you at all worried about Photoshop coming after you for this? I know nothing about what patents they have etc., but it _is_ very similar to PS in design and functionality.


In the AMA he says that a developer from Adobe actually got in touch with him to coordinate on the support of a new format called Adobe XD. I guess Adobe don't see it as direct competition but as an additional tool that makes their proprietary format a de facto standard. It is reasonable as I don't think the group of people who need to buy PS and the group of those who would use his web based application overlaps a lot.


> but it _is_ very similar to PS in design and functionality

Thankfully that didn't stop Serif with Affinity Photo. The user interfaces and tools are so similar many tutorials don't even need modification.


It’s pretty depressing how many image editors are just incomplete clones of Photoshop without any original ideas.

There are a lot of parts of Photoshop which could be radically improved if Adobe weren’t constrained by needing to preserve existing customer workflows from circa 1995 and build off decades of legacy code / organizational inertia. Most of the low-level decisions in Photoshop are based on academic research from the 1970s, reimplemented in the early 1990s to match mid-range computer workstations and typical images of that time.

Many new image editors have basically zero thought put into design or core image processing infrastructure, and are just exact copies of Adobe’s ideas, without considering that computers and imaging have changed dramatically in the past 2 decades.

(To be fair, coming up with new ideas and then polishing them to the point they are ready for customers is really hard: it takes vision, cross-disciplinary expertise, new research work, multiple attempts at implementation when some ideas don’t work out, integration effort fitting ideas together, etc. Clones are a lot easier.)


Well said and great argument on both sides but you missed the point that nobody wants to spend time learning another tool. Most experts are very quick at things. Unless you know you're going to beat adobe 100% and with the entire feature set you wont try an innovative way.


Sure, but if your main criterion is “I am a professional expert and I know Photoshop inside and out”, then the obvious thing to do is just use Photoshop. The price is not really a problem for people doing serious work.

this is interesting. what are some things you think image editors should do differently once freed from legacy constraints?


1 - automatically save a version history and completely remove the need to think ‘have I saved this’. Same goes for all editors.


Yes. Let me join in the fun:

2 - every operation, every brush stroke, should be nondestructive, stored on automatic layers, and always adjustable.

3 - the rendering pipeline should be built from the ground up to support the nondestructive workflow on modern hardware. This means aggressive caching of layers with GPU compositing throughout.

4 - a full commitment to open data formats. Since a nondestructive workflow requires storing all of the instructions for every edit, these should be save-able in an open, human-readable format such as JSON. This would open the doors to scripting the editor with external tools, with the nondestructive editing instructions coalescing into a standard API.


Have you estimated the menory requirements for what you are proposing? Each brush stroke would need to store some image data for this to work. Just storing e.g. pen movement and rendering the result on the fly will likely not recreate the same result in an uodated version of the program, altering the image that the user created. Also, reopening complex files would take longer than users are willing to tolerate. The undo stack (which internally is pretty much an implementation of non-destructive editing) is about as far as you can bring the concept realistically.

Non-destructive workflows also have a huge maintenance problem: you can never again touch code that is involved in the creation of the final result after it has been released because it might break the user's files. It is not just the loading and storing part, but the whole backend can never be evolved in a reasonable way without breaking backward compatibility. After a while you sit on a pile of code for legacy operators and data models that you need to support and stops you from doing meaningful development.

I love non-destructive editing in many cases, but I also have some experiences with implementing that concept and this has shown me how constraining it is and how much effort it takes.


Each brush stroke would need to store some image data for this to work.

No, brush strokes would be stored as paths that simply record the input information needed to reproduce what the artist did with her mouse or stylus.

I hear you about the issue of breaking changes though. I think it takes real discipline to develop a format that's adaptable and with the capability to let you migrate files without visible changes. It would take one hell of a test suite though.


Google Tilt Brush saves brush on strokes. It takes roughly a minute to open a moderately complex sketch sketch in that program.

The only way to not change the output is to match the the already released operators exactly. This is almost impossible unless you freeze the code for each operation after it has been released originally.


Well, what if your image editor used an interpreter and the nondestructive edits were recorded in the document as scripts which, when replayed, construct that layer of the image. That way you can change the application all you want as long as you don't break the interpreter.

As for Google Tilt Brush, well that's just a failure to use proper caching.


Proper caching brings us back to the question of memory usage that I started out with. For the record, I don't think that Tilt Brush can be accused of a failure to cache properly. It need to recreate sketched 3d models for VR and I thibk there is some kind of LOD stuff going on when creating the final geometry, based on the performance of the computer it is running on.

And yes, any descriptions of nondestructive edits is by its nature a script that needs to be replayed by an interpreter to get the final state of the document. No matter the level at which you introduce the interpreter, you cannot upgrade it without risk to backwards compatibility to existing documents.

And if you you want the script language to be low level enough so that the implementations of your operators need to be dumped into the document, then you need to (a) write about half of your program in said scripting language and (b) end up duplicating that in every dicument that is created.


Proper caching brings us back to the question of memory usage that I started out with. For the record, I don't think that Tilt Brush can be accused of a failure to cache properly. It need to recreate sketched 3d models for VR

Oh, so Tilt Brush is 3D? So it's not at all comparable to a 2D image editor. I don't see how proper caching of a fully nondestructive editor should use any more space than a Photoshop document with a ton of layers. In fact, I think it could use a lot less, since Photoshop wastes tons of space when you duplicate source images in order to build up filtered layers with masks and so on. A nondestructive editor could save the space by not duplicating those source images so much.

And if you you want the script language to be low level enough so that the implementations of your operators need to be dumped into the document, then you need to (a) write about half of your program in said scripting language and (b) end up duplicating that in every dicument that is created.

Yes, this is what I had intended. But I don't think it's as bad as you say. You don't need to dump the bytecode (or equivalent) of your entire editor into every document, you only need to include the bytecode needed to reconstruct each of the edits made by the artist.

The editor itself could even include the source code of all its operators and let the artist modify it as she goes. It would be like the Emacs of image editors!


Tilt Brush is comparable in that it has it need to work as ypu propose internally. And all it has to do is fill relatively small vertey buffers with geometry, yet it takes forever to load a file.

I am not going to create a full model to estimate memory usage and of the different designs. It is however clear that a nondestructive approach is more computationally heavy in principle because it will always rerun the same operations more often than a destructive one. And all these times do add up. An operation that takes 100ms after a click or keypress is perceived as practically instant. But 100 of these take 10 seconds. And there are operations in Photoshop that a lot longer than that.


What you say is all true, but I think it is still worth a try. There are a lot of optimizations that Photoshop simply doesn't do. Its ancient code base leaves a ton of room for improvement with a fresh start. I don't know who you get to build this thing though. Maybe I will one day.

How do you know that Photoshop could be a lot faster than it is right now? I would not dare to make such a statement unless I have seen its current codebase.

At least they have been moving towards Node for the scripting part (Photoshop even ships with Node, you can make panels in HTML5, even use WebGL).

Although I wish the documentation wasn't just PDF files you can't copy/paste from, not an ideal way to provide code snippets.


>Thankfully that didn't stop Serif with Affinity Photo.

The main problem of the Affinity stuff is a lack of integration with professional niches and functionality that pros need for daily bread & butter work. E.g. not having an easy way to mock products (smart objects) renders it already unusable for most professional graphic designers. Instead of using the commonly used HSV color picker like in Adobe apps or Sketch, they go with HSL which isn't as intuitive. Many "small details" like that..

The devs seem to focus on overall functionality, specs and performance, not workflow specific functionality that makes tasks easier. The UI looks great, but is awkward to use.

They seem to be more concerned about being perceived as alternative to Adobe products than actually being an alternative.


I'm not saying it's a total replacement that will do all things for all pros. It may not suitable for certain professional niches and graphic design, fair enough.

It is a tool that is more than powerful enough for the photo-editing needs of almost everyone, and it costs a tiny fraction of Adobe's offering. At least there are a couple of companies offering some competition these days.

Also, recent versions of Affinity do support HSV mode too, afaik.


> www.Photopea.com , which is an advanced image editor, that works in a web browser

Free to use, not free software. I cannot imagine doing anything remotely Photoshop-related in a web browser...

> There was about 1.5 millions of visitors in October

Visitors do not equal users. If those were even 1% of that it would be impressive.


> I cannot imagine doing anything remotely Photoshop-related in a web browser...

I do that all the time, we might have different definitions of what photoshop-related is, but I often use pixlr.com to cut faces out of photos and put them on other things. I will check out his product


> we might have different definitions of what photoshop-related is, but I often use pixlr.com to cut faces out of photos and put them on other things.

This is a tiny fraction of what Photoshop does. Even back in the mid-2000s, when I was a graphics designer, I rarely used Photoshop for simple work like that. It would have been the equivalent of using a nail gun for a single nail to hang a photo frame. You could do it, but the $10 hammer in the shed will work just fine.


There is quite some MIT-licensed stuff here https://github.com/photopea?tab=repositories

He says he opensourced about 30% of it.


This food contains 30% non-meat products! Vegans, rejoice!


>I cannot imagine doing anything remotely Photoshop-related in a web browser...

Really? They already made Lightroom in browser making use of WASM.


Been using Pixlr (a photoshop-like web browser app) for over 5 years now. Here's why.

* It's free

* It loads so much faster, and the interface is in my opinion just as responsive as photoshop.

* It doesn't require 200+ Meg of space on my hard drive

* I can use it wherever, on any computer that has an internet connection.

* And it has all the features I need in a photo editing tool.

The only drawback for me is that it was flash based and now I found a html5 version and I think I'm in love with Photopea now.


Maybe this Reddit AMA helped it's SEO rank, as it's now first for “Photoshop in the browser”, but I've been searching for something like this for years and even entertained the idea of building one myself someday, but Google would only find old, Flash based stuff.

Really nice work, I'll check it out more thoroughly when I have the time.


Photopea exists for five years, and it was only in the last year, when Google started to place Photopea in front of flash-based editors.


I started using Photopea just for fun several months ago, because it seemed like a really cool project even if it just seemed like a bit of a novelty at the time.

The fact that the author now has 1.5M + users and just got a reddit hug of death is super impressive. Well done to Ivan.


1.5 Mio. visitors =/= 1.5 Mio. people


Sorry for feeling happy for Ivan.


I wish him to have 150 Mio. users, but there is no reason to spread information that is just wrong.


Then why not 15M, the more the happier!


Seems like a herculean effort! +1 to the lad for making something that is seemingly so complex all by himself!


I recently bought Affinity Photo. Yes, it's not free, but it is a decent alternative to Photoshop.


This looks good, thanks.

If one has already decided that they are no using the industry-standard Photoshop, then what would be the advantage to using Affinity instead of Gimp, which has the price and community advantage?


Probably the more similar interface to Photoshop. I personally can't stand Gimp interface.

Also commercial support.


Have you tried Gimp's single-window mode? I'm not familiar with Photoshop but I hated Gimp's old windowed interface. Single-window is what made it usable by me, and in fact I don't see how the UI could now be any better considering what it does.

As for commercial support, with the notable exceptions of Amazon and Rackspace, I cannot think of any commercial support that has been worth anything more than a good FAQ documentation would be. Can one really ask beginner questions on their commercial support, like one could do in a forum with a large user base?


Well you can use their support forum. They also have good tutorials.

https://forum.affinity.serif.com/

Personally, I just bought it because I wanted to support an Adobe alternative.


I see, that looks like a good forum. Thanks.


Have you tried GimpShop[0]? It's GIMP with the UI based somewhat on Photoshop.

[0]: https://www.gimpshop.com/


According to Wikipedia, it has not been updated since 2006. Gimp has improved a lot since then.

Also, this:

>In a March 2014 discussion,[9] Moschella states:

>I originally created Gimpshop, but I'm not the jerk who owns that domain and added adware & spyware to the source. Sorry about that. I hate that this guy is out there making my fun little project into an abomination.

>I don't have a project site for it. I became discouraged after this whole ordeal and I let it slip away into obscurity. Gimpshop was a fun little 'prank' that got bigger than I ever expected. Sad what it has become, though.


Fantastic product! Loved it! This might not be the next big breakthrough in the design domain. But definitely a pain-point solver for budding designers who might not be able to bear cost of buying software licenses for their hobbies or learning.

We run a design service (http://draftss.com) and we understand the significance of the amount paid for licenses every year. This isn't limited to learning just Photoshop; instead there are abundant number of softwares like Illustrator, CorelDraw, Indesign, Sketch, etc. that are necessary for designers to be familiar with. The cost makes it difficult for budding designers to spend time in learning multiple softwares efficiently.


Well done to the guy. What an interesting time, when a person can spend 5 hours per day for 3 years creating a product that has 1.5M visitors per month, but makes just about enough money from it to not be poor. Hopefully he can think of a better monetization scheme.


Interesting project. It works reasonably well and should be fine for light editing. It's comparable to other photoshop clones I've seen. It has a lot of the core features of photoshop and copies its UX. Of course Photoshop has more features, is probably a bit faster with certain things, and probably has some algorithmic edges. Nevertheless, impressive effort.

I'm guessing a lot of oss photography libraries and tools may be ported to wasm eventually. SIMD and threading are going to be two big enablers for this. That's also something that may benefit this project. T


his hacker news post from a year ago, https://news.ycombinator.com/item?id=15924402


Anyone who can tell what kind of tech stack can be used to make smth like this possible? I am assuming same stack which VSCode uses?


From the AMA it's all client side and apparently he didn't use any popular library (eg: React, Angular, etc).

He claims he uses Paper.js only for computing vector graphics booleans.


it's not electron[1], if that's what you're asking - it's all in the browser. Uses Ext.JS[2]. No idea what the backend is using.

1. https://github.com/electron/electron 2. https://en.wikipedia.org/wiki/Ext_JS


According to builtwith.com - PHP

https://builtwith.com/detailed/photopea.com


Wow, this is maybe the best "online editor" experience I've had so far... Very impressed.

Curious if there could be a way to use it completely offline (on a non-connected laptop while on a trip or something), but that would be a rare occurrence for me.

Since it all happens client-side, this may be my new "I need a quick edit" editor


I have been using Photopea for a while now, especially since I moved to a Linux machine from Windows and being a Photoshop enthusiast I would say, this is the best alternative outh there.

Recently I started using Gravit Designer as my go-to graphic editor of choice. It's free to use and really fast for being a web app! It does vector graphics and has most of the features I need.


This is a pretty cool tool for a one person team.


What is the tech stack used?


In the AMA he says it's all client side JavaScript. Server run costs are 20$ in one year.


That's pretty cool. My question then should be, what JS libraries?


From what I saw in the AMA it's 99% vanilla.

He only uses Paper.js for computing vector graphics booleans.


Love it!


gimp.org


Can someone add the AMA word to the title to denote the author is answering lots of questions.


Ok, added above.


It's great seeing open-source web services, that seems quite rare.


The one under discussion here isn’t open-source


whilst I don't really care so much about those things, the layout, icons and nomenclature of most functions seems to be eghmmm 'borrowed' directly from Adobe. I'm not sure how I'd felt if I'd invest millions and years of research into something, and someone else would re-create ~50% of it and make it free...


>I'm not sure how I'd felt

Adobe is a company, not a person. It can not feel.


It can sue tho.


Yep. That is the difference between ethics and legality.


You might enjoy this essay by Eric Schwitzgebel: _If Materialism Is True, the United States Is Probably Conscious_

http://www.faculty.ucr.edu/~eschwitz/SchwitzPapers/USAconsci...


You were right. I did enjoy this essay.

I disagree with it. And even if I didn't, there are other reasons it wouldn't change my ethical outlook on the situation. But it is interesting nontheless.


Welcome to business.


Adobe developed all those things knowing that anyone could copy them for free, and Adobe chose to develop and release them anyway. I would say it’s fair game for anyone to copy, and nobody should feel guilty about it.


Yeah and all smart phones this year copied iphone notch





Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: