20 side project ideas for a programmer.
Bored with your main project or a job? Sick of people telling you what to do? Feel empty or stuck in your career? Great, these are the reasons why you should work on a side project.
Side project - is a great way to start a business. If you always wanted to start something new, this is a great time to do it now. In the era of the internet, we have tremendous opportunities no matter where you live. Software developers have an advantage, you can code. You could make something that people want, and as a reward, you will get money and the freedom to work on your own terms. Although, you can start a side project even if you don't want to build a business. Do it to learn something new and gain experience.
Ask yourself these questions:
- Do I want to learn something new?
- Does it help me in my career or future opportunities?
- Can I make money on it?
When you decide what you want to get out of this project, you can move on and think about what can you do.
Side project ideas:
1. Online course.
If you are an experienced developer, you already have a lot of knowledge on a subject so that you can make a small online course about your favorite framework or language. Although it can be something new, interesting for you. You can either sell a course on platforms like Udemy or your website(blog). Using platforms has its advantage - you don't have to have an audience, they do it for you(bring audience). However, if you already have a blog and an audience, it would be better to sell it on your website.
2. Time tracker.
Time trackers are being used more and more, because more and more people are starting to work remotely, and the trends of digital nomads are growing. Working on such a project, you will learn how to track and record processes on a computer, how to track the time spent on specific applications. Create an application for Mac, PC or Linux. This project can be distributed as freemium, so you can add some extra features to get paid.
3. Web scraper.
This type of project is my favorite. By scraping, you can get a lot of potentially interesting data. For example: jump over e-commerce competitors to compare prices and be ahead of them. There are a lot of frameworks and libraries to scrape a website. There are two things you can do here.
1. Build your own scraper if you want to learn something new.
2. Take some existing framework and learn how to scrape data for your needs. For example, I like to check projects on a Producthunt, so I can build a scraper to send me the weekly email update of the top 10 products. And then parse scraped data to see what product categories are most popular.
4. Chatbot.
Chatbots are so popular nowadays; there are plenty of platforms on top of each you can build a chatbot. You can create a Telegram bot that will ask general user questions and answer with predefined phrases. Or create something more sophisticated with NLP libraries.
5. Personal finance calculator.
Pick a new programming language or a framework you always wanted to learn and build a simple finance calculator to track your expenses.
6. Fitness tracker app.
If you are a gym addict as I am, you may know that keeping track of your weight is difficult, especially if you keep all your information in your head. Instead, you can create a fitness tracker app using a modern frameworks such as Flutter or React Native, or others at your discretion.
7. Calorie tracker app.
Like a fitness tracker, this app will allow you to count calories. You can even combine the Fitness tracker app and calorie tracker into one great app. I hate counting calories. If you have ever tried to count calories by yourself, you know how difficult it is.
8. Domain name generator and domain name checker.
It’s hard to come up with a great domain name, why not help people create unusual names for their companies. To do this, you will need something more than a simple word generator. You need to think about the different aspects of word generation. In addition to this name generator, you can add another function - domain name-checking.
9. Instagram/Facebook schedule application.
Managing Instagram accounts with a huge number of subscribers is difficult; especially if you need to post regularly. But what if you need to post in the middle of the night? Well, you can wake up and do it. However, you can do this with your application. There are plenty of such applications on the internet. But most of them are complex and has a lot of features. So instead, create something simple to solve one problem. A scheduled message.
10. A simple game for kids(iOs/Android/Web).
Kids love simple games like puzzles, racing, and others. You can build a pretty simple game using Unity. If you don't want to develop an app, you can create a web version, using javascript.
11. Freelance monitor tool.
I did a lot of freelancing. And honestly, it is difficult to track all the freelance marketplaces. Especially if you need to track some specific jobs. You can create monitoring tools to track new jobs by phrases or tags and send the results by email to the client. You can monetize such service, there are millions of freelancers out there, and the number of digital nomads is increasing every year.
12. Image auto-tagging platform.
Machine learning and deep learning are now in trends, so I suggest building something in this area if you are already familiar with the principles of ML/DL. Image auto-tagging is a platform where I, as a user, can upload an image and get image tags as output. You can build an API for such a service or create a simple Instagram tag generation application.
13. Brand tracker.
Brands want to be able to respond to specific messages as quickly as possible and know what customers are saying about their product. I want to be able to track what people are saying about me(or my brand) on the internet and want to see it in some structured way. This project is both exciting and technically challenging to implement. You need to track many sources, scrape google and other places to find specific words or keywords.
14. Simple Kanban board.
Pick a new framework or language and create a Kanban board similar to Trello. I suggest making such tools if you are learning a new programming language or framework.
15. Utility for MacOs/Windows/Linux.
Create a simple widget or application for your favorite operating system.
When I search for something in macOS Finder, it searches around the entire disk. I want to perform a search in my current folder, so I would like to create a widget to search the folder in macOS Finder.
Think about something bothering you, some pain, or something you did not like and fix it. No need to build something massive, start with simple things.
16. Wordpress plugin.
Wordpress - the most popular content management system on the web; there are thousands of plugins created by various developers. How to find what to build? Check Wordpress marketplace and find plugins with a large number of downloads, but with bad ratings. Read the comments and find pain points. Then fix it with your new modern library.
17. Shopify plugin.
On the other hand, you can build a Shopify plugin. Shopify, it's an e-commerce platform. To create a plugin, you need to know some basic node.js and next.js. Although you can learn it by completing the tutorial(I strongly recommend it). To find inspiration and ideas, you can visit the Shopify marketplace.
18. Slack app.
Slack is a collaboration platform for teams. There are a huge number of apps available on slack, it is something you can monetize because many companies use slack. Here are some ideas for you:
- SCRUM plan poker game
- Daily log from Trello/Jira (get a list of the things you did yesterday, and publish it as a summary in the morning).
19. Site blocker application.
A simple tool that allows you to block any website for a certain amount of time. This will help you to stay more productive throughout the day, and do more work.
20. SDK library.
I have been working with the Telegram API for a long time. But due to the lack of functionality in this library, I decided to create my own with much more functions and support of my favorite framework.
Open source is a great way to help other people and share your knowledge. You don't have to start writing your own library. Instead, you can contribute to existing projects.
If you like this article, please share it on twitter or facebook.
Thanks.