I got this question in a DM and I thought it made for a good community discussion (of course anyone is welcome to make a post like this, but I'm happy to take the mantle for reach).
How do you react in the situation? Is it appropriate to keep going, if so what should you be mindful of?
Top comments (79)
Everything already exists. Do it better (figure out first, not self-hype) or pivot but be firm.
Exactly this. Do it better along one dimension:
Yes Michael, 👍 Focus.
They can even merge. Easier to use & more fun can be one thing "better UI".
For example, my comment there is suffering from "reddit syndrome". It's a succinct masterpiece of course, but it is also more popular because it is at the top. The UI is determining content. That is influencing people which is distorting things. It's a sweet sweet comment, but there are better ones in the thread which are lower down the page so getting lower engagement. Later ones too that are better. it's not an easy fix & while devto team was making a polls feature...
Someone came along & built dev.three with the promise of machine learning predictive adaptive personalizing AI comment ranking behavior.
That's basically how it happens. If Goo search slips much more, DDG will really get in. If Chrome doesn't pull itself together, Brave gets in.
"It already exists". Kinda.
Edit, Addendum: If you people make that one my top comment again. @peter 😡
dev.four has comment edit timestamps so you don't end up liking things that people can bait & switch. 🤗
Good point!
I usually follow this rules:
If one of those rules is met, then I'd continue working on it, even if I drop it later.
If others (by contributing/publishing) or me (by learning) have earned anything, it was not vain.
A fair amount of the things I've made, I started because it already existed and I wanted to have my take on it. Everyone has a unique perspective, and new approaches to old tasks can revolutionize them forever. Stay strong 💗
Good point.
Yes!
I feel this!
You are thinking like an Artist.
Scientists and Hackers (the original concept) try to solve a problem once and reuse knowledge and solutions.
Also remember that it is not only about you. It is about the community that surounds the projects. They will be divided.
Nevertheles, there are always other reasons related to
Project management. For example if the owner of the other project invest few time, reject many changes, etc..
I'd say my answer is that no project is static and you can think of the existing project as similar in this time and place, but you could eventually go in a different direction with the evolution of your project so it's not so bad to duplicate for now.
In terms of learning, duplication isn't so bad either.
If you really do have a finite amount of functionality you are trying to build for a library or framework and the exact same thing already exists and is being maintained well, it is probably an opportunity to get involved in the project that already exists. And if you find you want to take things in a different direction at any point, you can get back to your own idea.
As an entrepreneur I'm actually quite a proponent of a sort of "first replicate, then expand" path in terms of getting into a new space. Replicate doesn't mean generic clone, but you can replicate an existing business model that works before being more "innovative" once you've achieved parity. I think the concept of "replicate then extend" could bode well for any project.
Pizza Hut doesn't stop making pizza just because Domino's already does. Be aware of, and focus on, what differentiates you from the competition.
The existence of a similar application can be a positive indicator that there is a market for your idea.
It's absolutely possibly to have similar products for the same market.
From there identify any pain points that you can use to provide a unique angle for your own product that the existing solution doesn't cover.
If anything build it out just for the learning experience.
But it shouldn't be instantly trashed due to another solution's existence. Just look at the signs and see if you can carve out your own piece of that user market.
If it's a money-making project, this is actually a good thing--competition means there's a market, people are willing to buy what you're making. You'll have to stand out in some way, of course, but it's much better to compete for your share of a lively market than to be building the world's best app nobody wants.
If it's a learning project, it doesn't much matter what already exists. There are thousands of to-do apps out there, but I built one anyway and learned a ton in the process.
If it's an open-source, "giving back" project, there's an argument to be made for abandoning your own project and helping out with the existing one. But there are also several examples of people building their own thing--a module bundler, a framework, a functional toolkit--that ended up having a major influence on the future of existing projects, or even overtook them to become the default solution.
Don't give up just because it's been done before. Unoriginality is one of the foundations of creativity.
I've often said...
"Unoriginality is one of the foundations of creativity." 👈🔥 100%.
Good that you have made the attempt of looking for some rule and special cases.
I am with you in that open source project should not be duplicated too much.
Big companies reuse all they propietary software code as much as possible.
We might forget the past but, the fact that we can use opensource projects today was because of the free software community and the preasure they gave to the market.
They could only achieve that because of they phylosophy of build and reuse.
Big companies don't use to make redundant solutions, they just concentrate resources on a good, competitive one.
If the opensource community has twenty projects to make the same thing, that is beauty and very dynamic, but from the economical perspective... "the resources are divided".
Also there are other costs for the community like the increase of second level dependencies with redundant functionality.
So another criteria would be.. Is it a top level (appliance) project or is it one framework that would be used by many projects?
I would say more basic dependencies sould try to don't repeat themselves.
For the propietary software and componentware marketplace it is something different. I would say.. You have the right to push the market but if you don't contribute back to the opensource projects used, a lot of complexity might accumulate in your customizations and the manteniance costs will grow up to the stress point.
I teach branding in a small design school here where I live. My students ask me a very similar question all the time and I always throw back the question to them:
How many toothpaste brands can you buy at the super market? And national wide? Or worldwide? How many toothpaste brands exist worldwide?
So yes, if you have an idea even if you start first, you are going to have some kind of competition. Those who can't understand this, just pay atention next time in a supermarket shelf and count different brands of the same product. Apps aren't any different. It's about solving a necesity or creating it.
This is sometimes true, but it really depends on the app. How many successful snapchats exist? How many successful Facebooks? The software world can be (not must be) different.
Myspace is dead, because Facebook did it better. On the other side of the coin even Google failed to dethrone FB with basically unlimited capital on their side. Sometimes your competitor is too big/popular to fail.
Also, we can apply this to other industries. What I love about your comment is precisely that you pointed a big problem for starting companies or launching products. You can't pretend to launch the next Facebook without the necessary resources to fight you in, or a very well planned strategy. It's a matter of common sense and reality, and a lot more complex than just developing a product. We all would be millionaire!
Thankyou for bringing this up!
Agree! Yes I missed that part in my comment and you are 110% right!
This.
You can make a todo app nobody has ever heard of that pays rent. You can make two & self compete.
It's not winner takes all.
You should remind yourself to do better research before your next project. Then consider this found project as though you didn't have your own yet. Avoid the fallacy of sunk costs.
If it does what you need, use it. If it doesn't, keep going. Be wart of Not-Invented-Here syndrome, but don't fall for Invented-Here Syndrome.
Yeah, it's more to give you an idea of where to start because innovation is kind of even a faster moving target.
Here's a pretty tangible example: I started by implementing a lot of Medium's features when first building DEV, gradually finding my own ways to do things differently and now we have a whole bunch of super awesome unique things but I didn't try to differentiate in any super meaningful way off the bat except a few basic things I thought were sort of table stakes (like syntax highlighting).
I'd repeat this pattern in the future. If you have an entirely novel idea, that's great, but if you want to create a useful tool in a known market, you don't need to do entirely new things. You can pick and choose from some cool existing ideas. As long as you understand why you're considering doing that and not cargo-culting off of existing implementations, borrowing the good stuff is a great path.
I would be wary working on a project knowing there are no competitors. It's either a truly innovative idea (which should probably be patented?) or there's something you haven't researched enough :-)
Good luck and don't quit!
My paper umbrella is fine. You just don't get tech.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.