DEV Community

Cover image for How do you come up with new side projects?
Nočnica Mellifera for Heroku

Posted on

How do you come up with new side projects?

image by By freepik

Side projects are great ways to grow our knowledge and skill, but where do you start? How do you get your ideas for new side projects?

For me, I need someone else's passion to really get into side projects, so my process starts at a hackathon or meetup where I meet someone who wants to do something great.

Top comments (28)

Collapse
 
slavcoder profile image
Sławomir

Be careful with side projects :)

side projects trap

Collapse
 
nocnica profile image
Nočnica Mellifera

I know a lot of people (myself included) will see this as their pattern. I think I might write something just about this very idea! I think the point of side projects is that they don't ship, but I better start a new post before I write a 900+ word comment ;)

Collapse
 
ben profile image
Ben Halpern

I think this is the natural journey of side projects.

Taking some time to reflect around the patterns of failed side projects dating back all the way to college actually helped me map out what pitfalls to avoid when starting what became DEV.

The biggest pitfall was seeking early success. I actually gave myself a "ten year rule" when starting the project that I would not let it fall off for ten years, even if it slowed at times or whatever.

I think that's the kind of realization that can only happen if you've had a history of moving from one thing to another, which is a really healthy part of growth.

Thread Thread
 
mohammedasker profile image
Mohammed Asker

This actually gives me peace of mind! Knowing that it's okay to start dozens of side projects and then abandoned in the midway is totally fine. Hearing this from you who created this platform is quite encouraging.

Also, this may sound weird, but sometimes I enjoy hearing stories of someone's failures and mistakes. It's what makes successful people relatable.

Thread Thread
 
v6 profile image
🦄N B🛡

This jives well with Github's story.

Collapse
 
waylonwalker profile image
Waylon Walker

I have a ~/tmp directory full of small tests where I try out all the new shiny before I put them into an actual project. I start a couple a week, and am ok walking away after 20 minutes. Very few go anywhere, but I use it to learn what I want to actually use on a side project. Keeps me from starting too many big things.

That being said I still start way too many side projects to finish.

Collapse
 
jcs224 profile image
Joe Sweeney

This is usually me, but I've actually finished a couple. The key difference for me is that I'm solving an actual day-to-day pain point, which motivates me to at least get it to a usable state. Otherwise, it's just a learning exercise (which is great too!)

Collapse
 
brunner1000 profile image
Brunner

If you find your products to be useful for the market, why do you put them off? I think these are the products we need to spend time on building

Collapse
 
joro550 profile image
Mark Davies

This is basically me - can't be bothered with finishing things 😂

Collapse
 
ogaston profile image
Omar Gaston Chalas

I laughed but it hurt!

Collapse
 
prvnbist profile image
Praveen Bisht

I've got a few on the sidelines and started building a twitter clone and it's about to be sidelines as well😂

Collapse
 
bhupesh profile image
Bhupesh Varshney 👾

I keep a dev-ideas list on GitHub.
Whenever I have crazy-ass idea that I thing could help someone or me in general, I write a small description of what it will do or not with a catchy name.
It doesn't matter if its a small script or a library, if its solving some part of the problem, I consider that as a side-project.

After this i evaluate :

  • What can I build ? Is it worth it ?
  • Can it be built in 1-3 months (if longer then abandon it for sometime)
  • Can i do it alone ?
  • Do I have the skills to implement this idea ?
  • Basic flow layout of the idea
  • Feature list

If everything goes well, my next 4-5 weeks go in alpha development of the idea

Collapse
 
waylonwalker profile image
Waylon Walker

That is such a great idea. I think sometimes I feel a bit of relief just writing the idea down, and it relieves the feeling that I need to start it immediately. It also gives a place for ideas to combine into soemthing great.

Collapse
 
zferguson profile image
Zachary Ferguson

This is a great idea! I'm definitely going to start doing this :)

Collapse
 
vinayhegde1990 profile image
Vinay Hegde

Very helpful suggestions to be considered while building a side project 👍
I'd echo the sentiment that given a choice, do use code for solving a problem that you face than recreating anything that already exists. Such endeavors while initially useful will somehow end up ignored or be limited to only finite efforts.

The feeling when you fix your own problems via technology is unparalleled 😎

Collapse
 
arvigeus profile image
Nikolay Stoynov

One way to keep myself focused on a side project ideas is to treat it as an actual job: create a project on ClickUp and start assigning tasks to myself, logging time, the whole nine yards. I still go down the rabbit hole of starting something else before finishing what I am doing, but it's always related to the previous problem, so I create another task for it, until I complete it and I am satisfied with the result. Then I continue the parent task, reusing what I made. This thing went so far that I registered my own startup (just a website, but enough for now), which gives me extra motivation to finish what I started. And what I build can be later reused for other projects to help me start faster.
Here is an example flow:
1) I want to build an organizer...
2) ...but I don't know state management libraries well enough...
3) ...start a new project that plays around with different state management libraries to see which one fits my case best...
4) ... but I need to make sure I do things right, so I have to learn how to use the tooling around the ecosystem, so started learning jest, eslint, etc...
5) ... I want to make a default configuration so I can reuse it in 3) and then in 1), so I start making that.
Right now I am still stuck at 5), but things are getting into shape. Making things right is a project on its own too. Without that structure, I would have been lost. But now I have my 1) goal. Keep coding!

Collapse
 
macdevign profile image
macdevign • Edited

Having built many side projects, I share my own experience.

Side project:

  • Build mini project since it has shorter time frame and higher chance of completion.
  • Must be purposeful and focus, and not doing everything.
  • have immediate value asap. Not necessary need to be complex but must be useful.
  • Minimum viable project (MVP)/design should be completed within a day or two by asking "if tomorrow is end of world/presented to your boss", what are the most important things to show. The longer one drag to create MVP, the more chance one lose momentum and motivation.
  • KISS principle until the core functionalities are all up, after which you can decide if you want to expand on functionality.
  • Prefer starting project that can be designed and coded by oneself, and avoid collaboration with others on initial phase as no one really care what you do until you build yourself and proven to be useful as you are the champion for the project.
  • Think out of the box, not necessary need to follow traditional way of project deliverable (etc frameworks, library, full-blown web app)

I have built many mini projects using Keyboard Maestro wtih Kotlin, Ruby, Python, Kotlin, Java etc, node as execution runtime etc. and for those who may not know, Keyboard Maestro (KM) [keyboardmaestro.com/main/) has this ability to create webkit-Window based on HTML, JS (consider it as lighter electron), (wiki.keyboardmaestro.com/action/Cu...) which can leverage on the full power of KM.

For example,

1) Snippet Search => I built this app using custom prompt action (which actually is just html file that can call external js files. )of KM which use AceEditor (ace.c9.io/) to for code formatting and editing, and node.js backend to which use sqlite for Full-text Search. Inside the html can call any KM functionality.

2) Regex101
regex101.com/ that I constantly use for interactive regex. I convert this to KM version using custom prompt and add extra functionality (like auto-compact window when lose focus). Best of all, it opens up instantly (KM is very fast and memory-efficient) unlike web and chrome app version of regex101.

Snippet Search using Keyboard Maestro
dev-to-uploads.s3.amazonaws.com/i/...

Regex101 using Keyboard Maestro
dev-to-uploads.s3.amazonaws.com/i/...

Collapse
 
dansilcox profile image
Dan Silcox

It varies, quite often it's a limitation of existing tooling I've been using or something like that - I start with a grand vision to write my own faster, better, stronger version, then get distracted by something else and it goes to the bottom of the github graveyard :( But I normally learn a few things along the way :)

Collapse
 
waylonwalker profile image
Waylon Walker

💯 Many of my ideas and side projects I start extend existing things to fill gaps that no one else would care about.

Collapse
 
zarzonis profile image
Spyros Zarzonis

For me, side projects are the best way to explore new technologies and expand my skill set. I try to find an idea that meets the following requirements.
1) I would personally use the product
2) It's interesting enough that justifies all the hours that I'll spend implementing it
3) The things that I need to learn in order to implement it are focused on the technologies that I want to learn.
4) It will be ready in less than 2 months.

Once I find an idea that meets the above requirements, I try to find a cool name and register the domain. From that point on, I'm hooked and I proceed with the creation of all the necessary accounts(GitLab, Trello, Slack , Facebook, Twitter, Instagram etc). By treating the side project professionally, it really helps me stay on track and built the actual product as fast as possible.

Collapse
 
n8chz profile image
Lorraine Lee

It's a cliche, but for me it really is, often enough, just scratching an itch.

I wrote Ettal for balancing my checking account (and doing a few other personal finance things) because, while I love me some GnuCash, I find their user interface cumbersome and atrocious.

I wrote Prostetnic Highligher (deprecated in favor of Persistent Highlighter) because my beloved needed a web page highlighter, was an avid Yooper user, but Firefox 4.0 broke Yooper, and the other browser extensions for highlighting were too dumbed down. Couple years later Firefox broke Prostetnic so I wrote Persistent Highlighter. The original Prostetnic Highlighter was my first exposure to Javascript.

Back in 2011, I wrote AIS (Agnostic Ideology Sorter) because I was fascinated by "put you in an ideological bin based on your survey responses" websites such as Political Compass, but I was always troubled by the fact that which questions got counted toward which "axis" seemed to rest on a priori assumptions, so I wrote a politics questionnaire with a backend that does pattern recognition on the survey data. This project was my first exposure to PHP (and my first attempt at writing a website backend). My hosting provider was a small pop-and-pop operation that eventually folded, but Wayback has a few receipts, such as this.

I guess the common denominator is, I was using some software tool or website for some purpose, and it left me wanting more, maybe an additional feature, or a less cumbersome user interface.

Collapse
 
anhtm profile image
Minh Trinh

It's usually something that serves a purpose for me personally. I'm making a game inspired by LEGO just because I love legos as a kid and just wanted to build something fun that reminds me of the good old days. Also writing a python library of data structures to solidify my knowledge in that domain and it's also for job interview preparation.

Collapse
 
brunner1000 profile image
Brunner

I wrote a medium post about how I come up ideas.
I start with the customer. I identify a customer. Let's say my customer is 'a teacher', then I speak with teachers in my community and ask them about how they go about their day to day activities. From the story the give me, I pick a side project to build. The side project is now a solution to a problem identified in a teacher's story.

Collapse
 
waylonwalker profile image
Waylon Walker

I have several side projects where I have spent a couple of days looking for an existing solution with no results. So I get started. I start to where I need a repo and I need a name. I double-check pypi for name collisions only to find exactly what I was looking for in the first place and abandon my version.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.