Prioritization for side-projects

While working on side projects, we don't have much time on our hands to do everything possible.

There will be few things that have to be done in order to move the project forward. There might be some things that would make sense to get done, but not really a must. And, there lie a few tasks that are just a nice to have which don't move the project any further but might delight the user.

Choosing the wrong things to work on will cost you a lot of time.

You will see that you've spent days and weeks working on the project, but haven't the project hasn't progressed. You can't take it live, you can't invite friends to use it, you can't charge people.

The criticality of tasks doesn't match with the effort or fun that task is.

This is where proritization helps.

The MoSCoW method


With a huge list of things we want to do, we can categorize them in one of these buckets -

  • Must. The critical pieces that make your product are the ones in this bucket. They make up the MVP.

  • Should. This bucket has important tasks that aren't critical and can wait for sometime. You would want to implement them but not absolutely necessary. Adding multiple ways to sign in, for example

  • Could. "Nice to have" tasks make up this bucket. These can be safe to leave out when you don't have the time for it. Things like adding animations or a dark mode for the app can be in this.

  • Won't. Tasks that no longer align with your goals for the product end up in this bucket. After a certain time with your product, you might want to implement everything. But when you are starting out, shipping MVP to you initial customers, prioritization is absolutely essential.

How can we implement this

Most tools that we use to write down all the tasks in our mind have some system to tag the task. A Notion board can have a property, task in Todoist can have filter and so on. It can be easy used to categorize them into one of the buckets above.

We can then schedule focus blocks in our calendar where we work on the musts first. This ensures we get the most important things first and take us closer to the (imaginary 😅) finish line.

As and when we finish the musts, tasks from should can jump up and now be a must. Priority will change as the product progresses.

I also suggest we take out some time, at least once every week, to review and clean up the tasks, assign them to proper buckets.

Effectiveness of all productive systems keep reducing when we don't keep reviewing them. Hope this helps you in your journey as a Indie hacker!


There is a great article called The MoSCoW method of prioritization by Anne-Laure from Ness Labs, which inspired me to write this.

Aravind Balla

By Aravind Balla, a Javascript Developer building things to solve problems faced by him & his friends. You should hit him up on Twitter!

Get letters from me 🙌

Get a behind-the-scenes look on the stuff I build, articles I write and podcast episodes which make you a more effective builder.

Read the archive 📬

One email every Tuesday. No more. Maybe less.