DEV Community

Harrison Reid
Harrison Reid

Posted on

✨ How To Start and Finish a Side Project ✨

I've been working on my side project ippy.io a fair bit recently, and have made good progress on it. I'm happy with the functionality, and it's now available online for people to use.

For me, this is a success - but I've worked on a lot of other side projects over the last few years - and none of the rest have ever reached this point. They've always either just fizzled out, or I've become distracted by some new idea and moved on.

I've been thinking about why I've had so much trouble sticking with side projects in the past, and the changes in attitude that I think have helped me overcome this.

I posted about this on twitter yesterday, in the form of a (long) tweet thread. I've unrolled it below for ease of consumption. Enjoy!



How To Start and Finish a Side Project

I’ve spent a lot of time over the last few years working on a whole bunch of different side projects. Precisely one (1) has reached a point that I’m happy with. My GitHub is a graveyard where side projects go to die.

I suspect I’m not alone here - a lot of people seem to find finishing their side projects really hard.

So, how do you make it easier?

I’ve been thinking about this, particularly in the context of trying to build a project that makes money. These are those thoughts 🤔...

👉 Quit fetishizing ideas, embrace unoriginality!

It’s easy to get stuck before you start. You can spend months in a purgatory of ideation - dreaming up the next big thing, and the next! But if all you have are ideas, then you don't really have anything.

What’s more, a project doesn’t need the potential to be the "Uber of X", or the "AirBnB of Y" to be worthy of your time. You don't need to put a dent in the universe. It’s a perfectly valid to take something that already exists in the world and try to make it better.

Focus less on disruption, and more on distillation. Work to find the best in existing solutions, and cut away the bad. Less revolution, more refinement.

With that in mind, here’s a 3 step process to find your next side project!

  1. Google around for products that exist in a space that you find interesting.

  2. Find a successful product where you think - "Yeah, I could build this".

  3. Build it!

Don’t steal the design, don’t steal the code, don’t steal the copy. But by all means begin by replicating functionality. Then, improve it. Build a more intuitive UI. Serve a different niche. Make it faster. Make it cheaper.

Being original is overrated. Google wasn't the first search engine. McDonalds wasn't the first hamburger joint. Facebook wasn't the first social network.

In reality, the original is almost never the best. So don't put so much focus on being original - focus on being the best!

👉 Take it slow.

If you believe in the 80/20 rule, then you can expect 80% of progress on a project to come from 20% of the time spent on it. I don’t know how accurate that is, but I can say for sure that productivity comes in waves.

So don’t stress the days that you feel like you’re getting nowhere. It’s okay to step away from the computer for a while. Take the day off. Take the week! If you're not feeling it, you're not feeling it. All you're likely to gain by pushing on is a bad mood.

Overwork is a sure fire way to kill off your excitement and motivation. When it does, it’s only a matter of time before some new, shiny idea pops into your head. You chase the excitement of the fresh idea. The old project is soon forgotten, and the cycle continues.

Just aim for consistent progress over time, and don’t sacrifice your sanity for the sake of a side project.

👉 Redefine what “finishing” means.

If your end goal is to create a business that generates income over the long term, then you should probably stop thinking in terms of “finishing”. In this context, being finished probably means your product failed.

Take a long view. Accept up front that you’ll be working on this project for many months. It makes it easier to step back for a while when you need a break, and to resist the pesky new ideas that pop up to distract you.

I’m not saying you can’t move on from a project if it’s just not working out. But you want to be able to look back on it with at least a little pride, knowing that you actually gave it a good shot. This requires a long term approach.


If you liked this post, follow me on twitter!. I'll be posting about my experiences building ippy.io, and my ongoing attempts to find it some users 😉

Oldest comments (26)

Collapse
 
nguyenletan profile image
nguyen

love it

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

Being a Senior Computer Science Student, I have always found it very difficult to start a new project, some would say that the thing that you are building does not have market value, some would say that the thing you are building will not have any effect on the life of anyone, someone would say that this thing is useless. So Your Article has provided something interesting to look at while starting a side project.

One more thing I would like you to explain more is how to find ideas for side projects, I mean I am currently working on a Business Management Software as my Final Year Project, but please write detail steps that person should take in order to find new ideas for side projects.

Thank you and a very amazing article as well.

Collapse
 
saurabhdaware profile image
Saurabh Daware 🌻

Hi, I would like to answer this as well hope you won't mind Harrison.

So as mentioned by the author, you can get inspirations from the existing products. This is a great idea!

To add to this I would say we usually have these crazy ideas in our mind that we ignore saying they are too dumb or have no use case or because similar product exist or simply thinking that they are useless. So if you have any of these crazy useless dumb ideas I would highly suggest to just build it without thinking of anything else. When you talk about side project, the only parameter that you have to care about is "fun". As long as it is fun to build it is ok to have a zero market value.

If you want some motivation, there's a really cool website by Sara Vieira called Make Frontend Shit Again
makefrontendshitagain.party/

Collapse
 
harrison_codes profile image
Harrison Reid

No problem at all! This is great advice. And also Sara Vieira is awesome as is makefrontendshitagain 😂

Thread Thread
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

It's Okay, have a nice working Quarantine as well and Stay Safe as well.

Collapse
 
harrison_codes profile image
Harrison Reid

Yeah it can definitely be discouraging. I feel like it's definitely valuable to have input from others, but there comes a time when if you believe in what you're building you've just got to back yourself and keep pushing on despite the naysayers!

I think I'll take you up on the suggestion and write up a seperate post going into a bit more depth on some ways to come up with ideas for a new project without getting stuck for too long :)

Collapse
 
aliminurudeen profile image
Nurudeen Alimi

You need to learn how to filter people's opinion about your idea, some might be jealous that you have the courage to build the idea. With my experience in software development and ideas implementation, the question you need to ask your self when developing software for your idea is; "Will anyone use this software?", when you start developing ideas will come to make it better

Collapse
 
awa02 profile image
Alaale Ali

As a person that's is still learning programming , I always try making new app and finding the idea part takes so much of the time that only itself demotivates you sometime.

What a great article.

Collapse
 
odddev profile image
Kai • Edited

Great article! Thank you for writing this up. I think this is an incredibly important topic nowadays and agree with all points made.

I just wanted to jam in and share that I've made a talk ("Best Practices are Killing our Babies!") about this exact topic just recently. It's probably an interesting addition to this essay. :)

Slides are shared here: slideshare.net/secret/iUycNCsNVJrkVB
A full recording of the talk is available (freely) here: thoughtworks.com/codeconf-stuttgart

Collapse
 
harrison_codes profile image
Harrison Reid

Going to check this out now, thanks for sharing :)

Collapse
 
mehmood168 profile image
Mehmood

Love the UI of ippy.io and overall working is smooth.
Can you please share the stack used to design/build it?

Collapse
 
harrison_codes profile image
Harrison Reid

Thanks! Happy to share the stack.

Developed with TypeScript,

Front end uses:

  • React
  • Gatsby (no particularly strong reason I chose Gatsby, just wanted to try it out 🤷‍♂️)

Back end uses:

  • Node
  • Express
  • Postgres

Let me know if you want anymore details :)

Collapse
 
mehmood168 profile image
Mehmood

Thanks for your reply :)
Just curious how are live changes on the template being rendered as we type?

Thread Thread
 
harrison_codes profile image
Harrison Reid • Edited

Magic! ;) Nah just kidding - as with pretty much everything in software development I'm standing on the shoulders of people way smarter than me. In this case it's the maintainers of two awesome packages for building & displaying PDF's in the browser. My only complaint is that they have identical names, which tends to get confusing...

github.com/diegomura/react-pdf
github.com/wojtekmaj/react-pdf

Thread Thread
 
mehmood168 profile image
Mehmood

Thank you so much Harrison :)
Wish you all the best for the success of your side project.

Collapse
 
thebuildguy profile image
Tulsi Prasad

When you said:
" Being original is overrated. Google wasn't the first search engine. McDonalds wasn't the first hamburger joint. Facebook wasn't the first social network.

In reality, the original is almost never the best. So don't put so much focus on being original - focus on being the best! "

It totally touched my soul. I mean, there's always a better way to do it and this is one of the reasons I'm motivated to code every morning. We're always finding better and better ways to make things more than awesome.

Collapse
 
saurabhdaware profile image
Saurabh Daware 🌻

I loveeeeeee this!! Thank you for writing this article, Harrison 🌻

Collapse
 
harrison_codes profile image
Harrison Reid

Thanks so much for reading!

Collapse
 
roniemeque profile image
Ronie

As someone who constantly get excited for a project and then looses it overtime and falls into that pit of anxiety, your article gave me another push to get up and try again, and who knows, this time I might make it! Thanks a lot.

Collapse
 
harrison_codes profile image
Harrison Reid

Not a problem. I think we've all been there (or at least a lot of us have). Don't give up, you'll get there eventually 🍻

Collapse
 
harrison_codes profile image
Harrison Reid

Hahaha that's pretty good way to stay motivated 😂

Collapse
 
selahattinunlu profile image
Selahattin Ünlü

Hey! Thanks for advice and btw I liked the project. What about the serving our resume in public url?
We can send our resumes to the companies something like: ippy.io/selahattinunlu

I send my resume with the link most of time for example: selahattinunlu.com/resume.html
I thought it could be great feature :)

Collapse
 
harrison_codes profile image
Harrison Reid

Hey! Thanks for reading and the suggestion - this would definitely be an awesome feature. It's on the road map - hoping to add it in soon.

Collapse
 
antonioeduardofernandes profile image
antonioeduardofernandes • Edited

Thanks a lot for your article. You really nailed it!
Sometimes it's better to have a break than to bang our heads to the wall trying to finish a side project.

You mentioned github is the graveyard of your projects, I must say figma is mine.
My biggest issue is the design process.
I'm far from an UI/UX expert, so I use to spend weeks on a single page layout to finally change it entirely and begin it all from scratch.

But now I'm taking easy and these breaks helps a lot.
Once again, thanks for your article!

PS: English is my second language, so forgive me for some mistakes.

Collapse
 
phantas0s profile image
Matthieu Cneude

Good thoughts!

It's true that "Google wasn't the first search engine. McDonalds wasn't the first hamburger joint. Facebook wasn't the first social network."

However, each of them had something original. McDonalds had a very well conceived strategy around franchise. Google was crazy fast from day one. I'm not sure for Facebook, except that using email domains from big universities help to spread.

If you copy everybody else, you need to find something which differentiate your product, too, and fast I think. I saw many startup trying to follow their concurrents without bringing anything better or new, and it doesn't really work. I mean, it was better for their founders, but not really for the customer.

Now, it's a bit what you're saying when you say "makes it better". I just wanted to bring some other thoughts.

Very good view on the word "finishing"!

Collapse
 
agrothe profile image
Andrew Grothe

Great topic. I realized long ago that the best idea in the world is nothing if not executed on. You have to start somewhere, and starting small helps, even if your idea is big. Also, a loose road map helps too, so you don't get to far off track. Use MVP (minimal viable product) for side projects. Don't be afraid to fail. I've restarted the same side-project several times over and almost gave up. But I realized that each time was just a learning process and I now know things that won't work or won't scale. Progress!

Also, abandoned side projects should never be seen as a failure. You coded, you learned something. Success!