When it comes to programming, side projects (sometimes called passion projects) are important. As a programmer, you’ll gain the skills to be a self-sufficient developer who is able to turn your own ideas into tangible things. These types of projects are useful for a variety of reasons.
- As a programmer, you have full creative control over the full scope of the project.
- Side projects can turn into actual businesses.
- They can help you stand out in the job search.
These reasons for launching a side project are pretty obvious. But what’s less obvious is figuring out how to actually make it happen.
We pulled together a framework of 23 specific steps you can take to start and launch your own successful side project. Number 21 is probably the most important step.
Step 1: Brainstorm an idea
The idea doesn’t have to be revolutionary or change the world. It only needs to be a project that you can get excited about.
Some of the coolest side projects come from crazy ideas. Here’s an example that I tried:
I built a personal web application that would make my computer take a photo through the webcam whenever I ran a specific programming command ((in particular a git commit). I didn’t set out to change the world. But I got some users, had some fun, and learned a ton.
A Firehose student, Aleks Real, made a side project that automatically sent text messages with fake cat facts using the Twilio API. Hilarious.
A different Firehose student, Matt Ehrlich, started FitForge, an application to help people get in shape.
And Michael Farrell, our Technical Support Engineer at Firehose, built a side project called Qelody, a really awesome video learning platform where people can learn about music.
The app idea is only the first part. It’s a required step, but it’s not the only thing that matters. There’s a lot more work that comes after that.
Step 2: Make Sure You Care Enough About the Idea
Building a project takes a lot of work. If you’re going to go through the ups and downs that the project will inevitably take, it’s essential that you genuinely care about what you’re doing.
Step 3: Scratch Your Own Itch
If you’re having trouble coming up with a good idea, think about the problems you face in your day-to-day life. If you write a web application that could potentially make your life easier, you’re guaranteed to have at least one loyal user: yourself.
Step 4: Use the project as an excuse to learn something new
There’s nothing better than learning how to use new technologies in the process of building a new application. Use the opportunity to try to use a new web framework that you haven’t used past.
It’s always safe to try new approaches on side projects you’re working on.
Step 5: Tell as many people as possible about it
When you tell the people around you that you’re working on the project, it will give you additional social pressure to achieve your goal. The simple act of telling someone out loud what your ambitions are will give you added motivation to prove to that person that you’re someone who is capable of setting and meeting ambitious goals.
Step 6: Get comfortable taking on something outside your existing skill level
The best side projects are projects that are just a bit outside your realm of familiarity. The side project should be something that pushes your boundaries and helps you expand your knowledge base.
It shouldn’t be completely foreign to you, but if you feel a little intimidated to start the project, it means you’ve picked an adequately sufficient challenge.
Step 7: Buy a whiteboard
There’s no better way to brainstorm feature ideas and user flows. Whiteboards also will help you visualize technical aspects of the project. When you run into technical problems, it can be really helpful to zoom out and diagram parts to the problem you’re solving.
Whiteboards help promote organization and creativity. Using one can keep your side project on track to be the successful project you know it can be.
Step 8: Set Goals and Milestones
Since you don’t have a boss or a manager holding you accountable for finishing the project, it’s important that you hold yourself accountable. Set goals, milestones, and work to meeting or exceeding the goals you set for yourself.
Goals can include things like:
- Launch dates
- Features you need to launch
Step 9: Limit the scope of your MVP
It’s easy to get bogged down in a laundry list of features that you want to include in your app. Some examples of nice-to-have but not essential features are things like:
- Integration with Facebook or Twitter for user login.
- Sending text messages using the Twilio API, instead of just email notifications.
- Having thoughtful SEO (Search Engine Optimization) to ensure it is ranked highly on Google.
There are so many different features that you can integrate into your app. But when starting a side project, it’s important to focus on the most important aspects of your application. Limit the things that would take additional time to launch, and instead use your early launch to start getting users and feedback.
Step 10: Take the first couple action-building steps
Web applications, like any creative measure, are generally built gradually. But the first steps of building a new project are generally the same: setting up a new project.
If you’ve built a handful of other projects with guidance and tutorials, you’ll probably realize there are a few steps that generally start most projects. For me, as a Ruby on Rails developer, the process for me generally is the same:
rails new myProjectName –database=postgresql
This is followed by setting up GitHub, Heroku and getting a plain page that says something like “Welcome to my Web App”.
Don’t be afraid that you don’t know all the steps to take down the road. Only focus on the one step you can do now to get you closer to achieving your goal.
Step 11: Get it live
When launching a side project, getting your application from running only on your personal computer and live on the Internet is a big step. Luckily, there are tools that make your life easier.
Using tools called “Platform as a Service” (or PaaS), you can launch your application incredibly quickly.
Heroku is a freemium product that will get your app live really quickly. It’s worth noting, though, without paying the minimum price ($30/month), page load time can sometimes take a while. DigitalOcean provides servers at a cheaper price ($5/month), but you have to configure them and it’s a lot more work.
Using Heroku, even though it’s a bit more expensive, will help you launch your idea faster. It’s the go-to service I use when launching my own projects.
Step 12: Get a custom domain
Getting a custom domain for your project is something that will usually only cost about $10/year. Doing so can make your app become even more legitimate. GoDaddy is a popular domain service, but I’d like to recommend Namecheap and GANDI.net as they’re the domain registrars I use for my personal side projects.
Step 13: Convince your friends/family to use it
Once you build an application, you can try to convince your friends, family, and coworkers to use the application you’ve built and give you valuable user feedback. Nothing is more motivating to working on a side project than having actual users who will be impacted by the code you write.
Step 14: Plan specific times for working on it
I worked on a side project in my senior year of college and I planned to work on it several times a day. When I would do other things, like visiting my family, I would bring my laptop and make time to quickly make progress on my application.
By having a strict plan of when you want to work on your project and sticking to it, you’ll have assurance you’re getting closer and closer to the awesome state of “finished” that’s so hard to achieve in side projects.
Step 15: Get feedback from other people
Other people might have ideas about how your project could be even better. The project might be a project that you have 100% of creative control over, but that doesn’t mean you shouldn’t listen to feedback other people have.
There could be interesting ways that people would consider using your application that are completely different from your original idea. An easy example is Flickr, the photo sharing web application you’re probably familiar with today. It initially started as a massive multiplayer online game that happened to allow users to share photos. Users who had no interest in playing the game used the platform to share photos, and ultimately the company pivoted to what their users actually wanted.
Step 16: Stop worrying about what other people will think
Someone might think your application idea is a bad one. While getting feedback from other people is valuable, if someone tries to shut down your motivation, don’t let that happen.
The creative process of building out the application is worth it. And if you’re using the side project as a vehicle to learn new skills, even if the idea is bad the process of building it out will give you something really valuable: knowledge and experience.
Step 17: Set up Google Analytics on your project
Drop a single line of code on a page of your application and you’ll be able to gain a ton of insight about:
- How your users are finding out about you
- What pages your users access the most
- How your traffic is growing over time
My favorite metric that Google Analytics shows is a vanity metric, which is a real time map and number of active users. Seeing users actually interacting with your app in real time is incredibly cool!
But without putting the single pixel on your site, you’ll have no idea how many people are actually visiting your site.
Step 18: Keep track of your bugs
Most software products have bugs – it’s just the nature of building web applications. As the developer in charge of the product, it’s your goal to make the project as bug-free as possible. Tools exist like airbrake.io, errbit, or party_foul which gives you an email alert when a user performed an action that resulted in an error message.
These tools can help fix bugs, which are inevitable in large, complex, side projects.
Step 19: Make yourself OK with changing things up
It’s good to have a rough plan of attack of how you’ll proceed with your app. But don’t be so stuck to your plan where you refuse to adjust if things aren’t working out. If it becomes apparent that an aspect of your plan is actually going to drastically slow you down, consider changing course a bit.
For example, if you use the project as an excuse to learn a new technology and realize the technology will slow you down considerably, it’s ok to change course and go back to a more familiar technology.
Step 20: Document the journey
In the process of building out any complex project, there are so many cool things that you could share with the world.
- Why is this a project you’re passionate about?
- What process did you take to determine what features are critical in your app?
- What technical challenges did you face in the process of building out the application and how did you overcome them?
People love to look behind the scenes and have an inside scoop on how projects are made. And most people don’t have the technical insight about how web applications work.
You should share things like wireframes, early planning, and the aspects of the project that proved to be most challenging.
Step 21: Present your Side Project at Local Programming Meetups
I recently saw a promising young developer present his side project at a Ruby on Rails meetup. He was recently kicked off his family’s phone plan and wanted to have a way to find other people who wanted the discount of a family phone plan.
Not only did presenting the project at a meetup potentially get potential users for his project, it also helped expose him in a super positive way to people who could eventually hire him. He was very impressive and he wouldn’t have gotten that opportunity if he hadn’t put himself out there.
Step 22: Remember that your app is only as good as the stock photography you use
You’ll likely have various pages where the difference between a polished app and a dull boring app is high-quality stock material.
One remarkable place to get amazing, free, royalty free photography site is unsplash.com – which I visit almost any time I build side projects. Pexels is also a great service that also has stock video footage, which can make really cool backgrounds to landing pages.
Step 23: Be in it for the long haul
It takes work to build out an awesome side project. You’re going to encounter error messages, problems, and interesting challenges. The problems you need to overcome and the process you use to overcome the challenges is the true value of the project you’re working on.
You need to be in it for the long haul. If you’re going to give up at the first setback, you’re not going to get very far. So get into the right mindset. Doing so will help set you up for success.