We've all been through that rollercoaster of 'I'm going to build this thing! I'll do it in my spare time, it'll take no time at all and it's going to be perfect!' that then turns into 'God I just can't be bothered, I'm gunna delete the repo'.
I know I've done that a lot. Just look at my GitHub; it's filled with so many dead projects. It's a really easy trap to fall into, too. There's a lot of pressure online that the best engineers contribute to open source and build cool, useful things (which isn't true; don't be pressured into believing it).
So, how to stay motivated? TL;DR: Figure out if you're more intrinsically or extrinsically motivated, and look at the table of contents!
Table of contents
Start simple
Set milestones
Build with a friend
Build in public
Have a genuine investment in the idea
Know your domain
Consider monetising
See if your work will sponsor you
Start simple
Being ambitious is great, but it can be overwhelming and make you feel like you'll never achieve your goal.
Pick something simple to build first. It's much easier to evolve an idea than to build something complex from the ground up.
This is pretty closely tied to the idea of using milestones (below).
Set milestones
Milestones have a kind of 'dirty' implication, but they don't need to. They're just goals with less fluff.
Milestones can help you focus and have something attainable to work towards; keep them simple and achievable.
Write some relatively easy goals you can achieve and work towards, draw up some sketches if it's something visual, and track your progress. I love using Linear or GitHub Projects for this, as it stays close to the code and makes me feel good when I can tick them off immediately.
I actually like doing this as part of my 'design' phase. Keeping it early in the project makes the milestones feel more proper and leads to realistic goals.
Easy questions to get you going:
What would the MVP look like?
What does SLC look like?
What can I build in a day? A week? A month?
Consider setting (achievable) timescales for your milestones, like due dates, but only if you think they're realistic and can commit to them. Take a look at SMART goals.
Build with a friend
Friends can be great motivation and assets. You can lean on each other when you don't know how to do something, brainstorm ideas, and keep each other motivated like gym buddies by holding each other accountable.
Just don't rush choosing a friend; you want to avoid somebody you might clash with. There's nothing worse than it all going to shit.
Build in public
Plenty of people love open source, especially when it's shouted about and shared around. PostHog has a great success story of being open source; they rose to fame through posting on Hacker News.
Get some support by building in public, then shout from the hills about it. If you manage to get enough engagement, you might get some help (which will be really easy to onboard if you're tracking milestones publicly, too!), or you might even find some people who want what you're building!
There's #BuildInPublic on Twitter (X) for this and HacktoberFest each year on dev.to. Find a community and share your progress with them.
Having people using what I've built massively increases my motivation to keep iterating.
Have a genuine interest in the idea
Having a use and true interest in what you plan to build is a great motivator.
If you have a use for it, you'll be constantly reminded about it and continuously motivated by being unable to use it. Having a use for it also implies that something doesn't already exist that fits your needs, so until you build it, you can't progress with whatever it is blocking.
Sometimes, having a deep interest in something is a good motivation. Often, this can be a technology you want to understand further. For example, to better understand HTTP, you want to write an HTTP server!
This isn't a great motivator for me, personally.
Having a 'longer-term' interest in a subject is better. Fleeting moments of interest don't lead to project motivation; the lack of motivation for your project will probably kill your interest.
Interest in a subject and a need for something are great combinations and could lead you down a route of turning your project into something that becomes bigger than you; An industry changer, a startup, something people pay for.
Known domain
Projects in a domain you know are immediately easier and more satisfying. When you understand/know the domain already then you can move past the stupid, annoying stuff and straight into the meat of it.
You have more intimate knowledge of the pains and don't get bogged down solving the already solved. If you know the domain, there's a high chance you work in it, and building something could make your life considerably easier!
Monetisation
Who doesn't love a bit of extra cash?
This is definitely one for you who are extrinsically motivated (we all are, at least somewhat!).
Money is a tricky one, though. If you don't have a guaranteed way to quickly profit, it can soon taper off as a motivation, acting more as a pseudo or secondary motivator.
One way to have this as a motivator without having an immediate income guaranteed is funding. Build a startup around your idea and seek funding - it adds extra depth to the challenge and a real extrinsic motivation beyond just a few nice extras per week.
Work sponsored
This one is a great way to avoid the ‘guilt’ that the ‘hustlers’ can push down about building outside work.
Some of us are lucky enough to get some time 'dedicated' to personal development or R&D each week/month/timeframe. You can set some of these aside to focus on your side project, using it as a chance to learn or build something useful for your work.
If you can make it worthwhile for your employer, you might even get them to 'sponsor' it more properly through dedicated time allocation or money!
Summary
Before you kick off your next side project, consider how to keep yourself motivated (if you even care that much!).
I'm more extrinsically motivated and crave structure, so I like to build things in public that can be monetised, have clear milestones, and set a time of day that I work on it (early mornings). It's taken me a few years to understand, but I didn't have this to help guide me there.
And don’t forget, you don’t need to build things outside of work. Ignore the people who make you feel bad for not, they’re not worth worrying about.
Give some of these a go. Let me know if they work for you.


