Web development provides opportunities to work on different kinds of projects, learn all sorts of things, and dive deeply into specific areas of interest. It makes for a rewarding career choice. But if I’m being honest, the magic of the refresh button, the code-save-refresh feedback loop of digital creation is what drove my interest in web development when I started back in the mid-2000s.
My first projects—the ones I approached with little more than slapdash curiosity—were essential to solidifying my passion of making web things and leading me to an eventual career doing it.
But they were simple, half-baked ideas. They were side projects. And to this day I believe that the ability to dream up and execute a side project is the single, coolest, and funnest aspect of web dev.
In a way, calling them side projects doesn’t do them justice. I suppose most people would think of a side project as something that is, at most, secondary to your main job. But I don’t think of them as much in those terms. Sure, my job is important to me and I enjoy it and am grateful to have it. That said, in a longer-term view of things, I consider my side projects as equally important. I need to have both my job and my personal projects to feel like I have life balance; to feel fulfilled by my work.
Side projects are important. Unfortunately they are also notorious for going unfinished—whether by lack of time or motivation. I’m not a prolific creator by any means, but I have managed to make a thing or two (despite living with a progressive physical impairment that necessitates that I peck out this article one key at a time on an onscreen keyboard).
I’ll share some tips and tricks I’ve picked up along the way that helped me through the rough patches.
Small things are OK (and fun!)
Projects come in all shapes and sizes, and that’s cool. My personal definition of a side project can be something as small as a CodePen or as big as a large website. I enjoy working on small side projects for a number of reasons:
- They can be completed quickly before your motivation runs dry.
- A finished project is a success, and a series of small successes can give you the momentum you need to achieve larger ones.
- They are good for learning, whether it’s something technical, like a CSS trick, or just something that serves as a proof of concept for a bigger idea.
- They’re fun!
When you’ve got an afternoon and you just want to get something accomplished, a tiny side project can be the perfect outlet.
Scary things aren’t scary after you face them
I often experience this phenomenon where there is one particular part of my project that, for whatever reason, I am absolutely terrified of. I will put off doing that part of the project—often going to great lengths of procrastination just to avoid facing it at all. Sometimes it’s enough to halt a project in its tracks. I think it’s related to imposter syndrome. It’s as if this one tricky thing is going to finally prove to myself that I’m not a real developer, that my goal it is too lofty to accomplish.
That thought process is bullshit. Even if the thing in question is difficult, it doesn’t prove anything. Furthermore, it’s been my experience that the thing I’m scared of turns out to be nothing whenever I finally look into it. You can’t escape learning in web dev. Once you accept the fact that you’re going to be doing some searching and some Stack Overflow-ing, you can start to move past the idea that you’re going to hit some insurmountable obstacle.
The one new thing strategy
Speaking of scary things, a good way to face them is one at a time. I often start projects where I’m going to use familiar tools and strategies except for one new thing that I want to use or learn. For example, I was scared of learning Sass for a long time. CSS is already hard enough, the thought process went, without adding all these extra rules and setup. But eventually, on some side project, I decided that this would be the project where I would finally use Sass. It was my one new thing for that project.
This little strategy has served me well. It allows for experimentation while building on the solid foundation that is your existing knowledge. I learned jQuery, Sass, Knockout, Vue and a whole lot of other stuff by making them my one new thing on a project.
Beyond a learning tool, it can also help you keep things fresh and exciting. Maybe you always use WordPress, but this time you want to use a fancy JAMstack thing just because. Maybe you always wanted to try a popular library, but never had a reason to move away from the one that you are most familiar with. Well now you have a reason—just to have one new thing.
Git is not just for source control
If you are writing code, you should probably be using some sort of source control like Git; you could even make it your one new thing!
But I have found another great use for Git. Well, it’s more of a side effect really. A commit in Git represents a little piece of something you created or fixed. It’s an accomplishment. And the more they accumulate, the better. If you feel your motivation seeping away, take a look at your commit history and remind yourself how far you’ve come. It’s an automatic to-done list.
You should commit as often as it makes sense for your project. In my experience, making small commits with relevant messages helps you stay on track by knowing what you were working on previously, what you are doing now, and giving you that feeling of progress being made.
Scratching an itch
A great motivator for a side project is making something for yourself. Completely original ideas are rare, but maybe no one is solving a particular problem the way you want to. Most of my side projects start with this being the core motivation.
I didn’t like the built-in new tab page in web browsers so I made A Fine Start. I didn’t like the dice rolling applications available for the Mac, so I made d20. I wanted a better way to maintain a digital character sheet for my D&D character, so I made Minimal Character Sheet. I wanted to listen to and collect the best synthwave mixes on YouTube, so I made synthwave.live.
Don’t rely on memory
We don’t always control when ideas strike. Even though you are working on the user login feature, your brain might suddenly come up with the perfect animation for the hero section of your homepage. When these situations happen, you need low-friction tools at your disposal to capture your thoughts before they evaporate into the ether.
Whether it’s the issue tracking capabilities of GitHub or the simplicity of a plain text list, you need a way to record an idea and be confident that you (or someone else if you have contributors) are going to tackle said thing in the future.
For me, that mostly involves keeping notes in Simplenote and keeping my todo list in Things or Taskpaper. When I truly need low-friction and can’t be bothered to categorize or even give a title to quick note, I use Tot as a virtual sticky note. Before Tot, I used macOS’ built-in app, Stickies, which is also great for just having a place to write something down.
It doesn’t really matter what tool you use as long as you have one that you will use. We can’t keep everything in our heads—we’re only human.
I already covered making something for yourself to “scratch an itch” but there other motivators for side projects:
- Making money. Not every side project needs to be a business. But one certainly could be. Even if it’s just a little bit of hobby money, it feels good when people give you cash for a thing you created.
- Portfolio / resume / self promotion. This is especially helpful if you’re just starting out in web development. No matter what skills you say you have, what education you might have, employers want to see what you can do. Side projects serve well for building out your portfolio when you don’t have as many real-world examples.
- Making helpful things. This is related to scratching an itch, but it’s about scratching someone else’s itch. This metaphor is going in a weird direction. All I’m trying to say is that it feels good when people use something you’ve made and it helps them. It’s a pretty darn good motivator.
Time is relative
You may have deadlines whether they be external or self-imposed; that’s fine. Deadlines can be a good motivator. But in my experience, putting too much pressure on yourself is a good way to snuff out a project before it gets going. What helps me is to remember that as long as progress is being made, that’s a win.
When you start thinking about your project and everything it entails, it can be overwhelming. But if you’ve used your tools to gather your thoughts, and if you have a to-do list of any sort, then try to focus on just a small piece. Go for a small win. Every little bit of progress gets you that much closer. And like we’ve already said, small successes can lead to big ones.
Figure out whatever takes the pressure off and use that. Pace yourself. Slow and steady wins the race.
Just do it
These are just a few of the tips and tricks that help me to stay motivated and productive when working on side projects. But even with all of these tools at my disposal, I can procrastinate and binge media with the best of them. And sometimes that’s okay. You don’t always need to be working on something.
But if you feel like you’re stuck or unmotivated, it might be time to rip off the band-aid and just get started already. Sometimes starting is half the battle. Use whatever productivity method (or lack thereof) you prefer and make yourself focus for at least a little bit of time on making progress on your side project. You may stumble upon a motivator, like the ones we discussed, that revives your interest.
My side projects
I’ll leave you with a quick note about some of my projects in case you’re interested in checking them out. Most of them can be found on my apps page. My brother and I enjoy making tiny web games.
The side project that is most dear to me—and one that I use every day—is A Fine Start, my custom new-tab browser extension.
I also make stuff for playing D&D, most notably d20, an RPG dice roller for Mac.
If it isn’t already clear, let me just say: I love side projects. If you’ve made something cool, shoot me an email or find me on Twitter and let me know.