It can be difficult to find a worth while idea. I feel that it is important to come up with the idea yourself so that you feel more committed to it, but that might just be me.
Look for something you are passionate about, or for something that is useful to you. The idea doesn't have to be unique or original. For example, there are apps that track your run time and distance when exercising. Some of these apps collect your data. You could create an app that tracks your run so you know your data isn't being collected by a company.
I am putting together a crm and data extractor with nomad/consul/fabio. I feel there is a lack of good content on how to build cloud solutions with proper security. Feel free to reach out.
auto generate react ui code based on drawing in emacs artist mode http://www.lysator.liu.se/~tab/artist/ . I don't have time right now else i would have pursued it.
I'm currently working on a progressive web application for support workers in care homes.
I've seen through first hand experience how much paperwork there is in this setting (daily outcome charts, medicine administration records, abnormal behaviour records, dietary and fluid intake, etc) and how many clerical errors there are. I've also seen first hand the key-document-dependency there can be around service user files, communication notification booklets for staff, etc, where changes often happen synchronously and are forgotten because the document isn't available in the moment.
I've spent the last 4 months or so taking a sabbatical from working as a software engineer to work for £9.00/hour at a support home for people with mental and physical disabilities (think Down's syndrome or people who are unable to live in an independent setting). As a result I now know an awful lot about this setting, the people who work in this industry, the minimum feature set I would need and the legislative landscape these companies operate in.
The best way to find a profitable side project is to become familiar with a
none-technical discipline which is direly in need of modernisation. If you don't want to take time out of work, then choose an industry (it could be tree felling, red-brick manufacturing, shale oil extraction or solar panel installation) and figure out what the problems are plaguing the companies, staff or end customers.
There are so many $1,000,000,000 companies out there just waiting to be founded in areas which are considered unsexy and don't involve yet-another-to-do-list application. Find one company, with one problem, fix the problem, there's your profitable side gig.
I've had a lot of experience in and around this looking after both my grandparents. Would be great to learn more about your experience and what you've got planned - would you be interested in a chat?
Hi this sounds really interesting - I'm currently doing a PWA for a completely different industry and use case (enterprise sales), but I'd love to compare notes sometime - especially on ios & ipados side.
Solid advise. Any motivation to build something for others is soon gone, whereas you will keep working on that little library you want to use yourself.
It's very rare to find those "scratch your own itch problems", the solution to that itch is most likely a google search away.
Pick a good product that you use and clone it. Keep an open mind because you can never copy the entire business since there is only so much you can see. Atleast you get some direction to start and you know that you are not trapped in building something people don't want.
Since you mentioned making your skillset strong(technical?), either way you win by just starting something.
I'm not a SWE, but this is how I sometimes make music if I'm starting without an idea.
Take a song you love—or even a song you've just heard 15 seconds of—and try to recreate it, but extremely loosely, taking as many liberties as possible exploring directions the initial inspiration leads you towards.
More often than not, it'll morph into something unrecognizable compared to the source inspiration, and quickly become it's own thing.
Staring at a blank sheet of paper, or the the void of limitless options, is frozen death. Give yourself a limited toolset and an inspired spark of imagination to get yourself going, and incredible things are possible.
I discovered a long time ago that I often get lyric ideas while listening to other songs, usually in the car. What I find interesting is that most of the time the ideas that pop into my head are completely unrelated to the lyrics of the song I'm listening to.
I agree, trying to scratch your own itch is complicated and frustrating and if you really actually need whatever you’re building, chances are you could solve the problem in an easier way. After that, you’re not scratching your own itch anymore, you’re making it easier for others to scratch the same itch that you’ve already solved. It’s just not that easy to say “build something you need”.
Chances are you can do it in an Excel spreadsheet without writing a single line of code, but where’s the business in that?
What's your level? Are you a beginner or do you already have some experience?
Also: What's your language, your target market? Suggesting a backend project for a frontend language or vice versa doesn't help you much.
In general, start with a game. You can be as creative as you like, there are no limits. On the other hand, you can keep it as simple as you feel comfortable.
That said, if you have some experience, look for an open source library that needs support. You improve the library, you improve your resume and you will get constructive feedback.
MAL - Make a Lisp [0]. This one has been discussed on HN before - its where I found it. I completed it last year (from Jan to May 2019) and ended up with Lisp-a-like interpreter written in C# that is sophisticated enough to self-host (i.e. it can interpret and run itself). I picked it up again when the lockdown started and I am now using it to re-implement some of the classic AI systems described in Paradigms of AI Programming [1]. I almost have Eliza (the first chatbot, from 1966!) running, which has necessitated some thinking because MAL is closer to Clojure than the Common Lisp used in PAIP. I'm also implementing what is in effect a standard library of useful MAL functions.
What I got from MAL was much better knowledge of C#, better insights into the power of lisp-like languages, some intense satisfaction when I managed some of the more complex stages, etc. MAL is progressive, supported by 100s of tests, and an amazing array of reference implementations in a huge number of different programming languages.
[Edit] My side-project before MAL involved downloading the Unity game engine and using it to explore the different aspects of game development. I discovered that I really enjoyed asset creation and in particular lighting and shader design, and (long story short - totally bizarre trajectory) ended up creating a tutorial for the Octane render engine that has had actual sales! If I was going to look at games again I'd probably start with a simpler engine such as Godot [2]
I recommend giving Godot a look, I really like it and have been using it for small side-projects for about half a year now. I did have no "real" prior experience with unity and unreal though.
Yes - Godot looks interesting because it is simpler and seems more stable than Unity now. Coincidentally this was discussed recently on HN [0]. A lot has changed since I used Unity two years ago and it seemed easier to start from scratch with a simpler environment (Godot) rather than figure out all of the things that have changed in Unity.
I think it's important to find feasible projects. A full stack project will probably be left unfinished. A way to find projects is to do tasks that you'd at work if you didn't have deadlines and were allowed to do more exploratory work.
That said. If you like nodejs, you might try to do a Babel plugin. They would allow you to do meta programming and it's an area mostly unexplored (because of the great breadth). In my case that was https://github.com/furstenheim/babel-plugin-meaningful-logs to improve error messages.
If you like java and use Intellij, give it a try at creating a plugin. You'll be able to simplify your flows. Since it's mostly self tailored it will be most probably not done. It's not extremely hard, in a couple days you might have something workable. In my case it was adding support for ZPL language, which is very niche. But most probably you can find something tailored to your dev experience.
1. Write down the apps on your phone or computer that you use the most. If you want to bootstrap a profitable business, I recommend listing the apps you use for work.
2. Write down the one feature for each app that you use the most within that app.
3. Write down what slightly annoys you about that one feature
4. Build the product around the one feature you feel you can cook up quickly and that will benefit your workflow
Do you use this for serious products that you feel like releasing? Would you be discouraged when you have found an alternative on the market that fixed the problem for you?
I am doing exactly this right now in my free time. I stopped seeking the idea that was not thought about yet blablablabla. I just want to do something that I can actually use, and if it works out, I hope others can also benefit from it. I did the same about 15 years ago, when I started programming. Ironically, it was the only time that I published something (that is not work and paid) and that people actually used (and thanked me for it).
My story. I used to use news API services for my side projects. One day, I realized that I can build my own service that will be both, best quality (like real multilanguage support), and cheap.
8 months into it, it is my full-time job and we are releasing our first paid version (post-beta). We have 600 subscribers (beta-testers) and some people claiming they will become paid clients.
It is a huge experience in both, business and tech sides.
So, I would say the most important things are:
* forget "ideas"
* resolve your personal problem that you understand well
* always make a (side-)project with which you can charge people (making it "free" is just an excuse for not making something of good quality - 99.9% of cases)
* to the previous bullet point, you either ship a final solution that has business value for someone, or you are wasting your time (because no one can tell if it is of value or not (by paying))
On side, does newscaptureapi provide author information i.e. name of author bare minimum, email will be great. And also how you tackle copyright issues?
We provide the author(s) name when possible. No email. Regarding the copyright - no. It looks like a grey area as long as you do not return the full article’s text body
> 1. Write down the apps on your phone or computer that you use the most. If you want to bootstrap a profitable business, I recommend listing the apps you use for work.
Emacs, vim, xterm, tmux. (I use them all for work. 99% of the time, what you see on my screen is either Emacs, or an xterm running tmux and some instances of vim.)
On my phone, alarm clock. (I use it to get up for work)
> 2. Write down the one feature for each app that you use the most within that app.
In emacs and vim, probably self-insert-command or some basic motion commands.
In tmux, switching between windows and panes.
In xterm.. uh, just the fact that it's a terminal?
Alarm clock. I use it to wake me up in the morning.
> 3. Write down what slightly annoys you about that one feature
Nothing about the most used features above annoy me. Well, terminals annoy me but emulating terminals is the raison detre of a terminal emulator so I don't know if there's much you can do about it..
I also hate alarm clocks but I kinda need one to wake up.
> 4. Build the product around the one feature you feel you can cook up quickly and that will benefit your workflow
Looks like it wasn't that easy :(
Something tells me that picking the most used application and the most used feature in it most likely leads to the most solved problem that doesn't need to be solved again...
1. Most used apps are the browser, Facebook (marketplace only), Snapchat, Messages, Amazon, and RobinHood.
2. Browsing the web, browsing local listings, messaging people, shopping, trading stocks and options.
3. I wish the browser had better tab management and persona management. I wish Facebook Marketplace had a lot fewer ads and better categories. Also I wish it wasn’t Facebook. I wish there was a way to disable Snapchat notifications about the other person typing. I wish Messages had a way to disable notifications if I am, say watching a video or have some specific apps on (like games). I wish Amazon had a proper filter for “items I can get soon”. I wish RobinHood allowed me to list options bids/asks for longer than a day.
4. Of these the Amazon and RobinHood ones are the only ones that are feasible. There are alternatives to Facebook Marketplace and they are all worse/less popular. I doubt Apple would let me change their apps or OS code.
I suppose there is something here with an unofficial RobinHood API. Scraping Amazon is a popular thing to do but I don’t want to develop a complete clone of their app with just a single additional filter.
I had an idea yesterday for an alarm clock that requires a qr code to turn off, checked and there's been one out since 2012 with millions of downloads. Tough to find low hanging fruit.
Right, but doesn't that just prove that there's a market for the product? You could build a similar app with a more attractive/relevant UI, make it easier/quicker/cheaper to use, or market it towards a specific niche.
My story: I was tracking my expenses in a spreadsheet. But it was starting to get really annoying having to keep receipts (I ended up losing most of them) and remembering to open the spreadsheet every time I had a new expense.
I created my own expense tracker and I use it to share stuff with my wife :)
I also struggle but find that if I choose a few libraries and tools that I would like to make use of, I try and build a project around them - doesn't have to be anything in particular, just a kind of playground for the cool libraries and tools.
Do something challenging but not too challenging. It should be hard enough that you can learn something without being so hard that you give up.
Some classic computer science project ideas:
- Build a path tracer. Physically-based rendering is a topic with lots of information on the Internet. It requires some math, but at least it's fun math :)
- Write an operating system kernel. It doesn't have to work on real hardware, just QEMU. You could even run it on a very old PC, Raspberry Pi, or TI calculator. This is a good introduction to how OSs work. Again, there's lots of courses and pages full of information online.
- Write your own programming language. Combine ideas from existing languages. You can make an interpreter, a JIT compiler, a single-pass compiler, a nanopass compiler, or something completely different.
- Combine multiple projects! Make your own programming language run on your own operating system and write a path tracer in your own language! Be creative, have fun, and learn useful stuff.
- I would suggest make a small app with just basic crud operations. It should have a front-end, backend and a database and then work incrementally to the other steps mentioned below.
- Use k8s to deploy and run your app.
- Add more business logic where you will be needing more tools like elasticsearch, message-queues, etc.
Some examples from the top of my head are Stock Ticker app, Ticketing software like Zendesk, Food delivery App, etc.
What are the differences and pros and cons of a Database vs local storage? I'm thinking of creating a site where users can add there own urls and titles and this information should persist after the browser is closed, should I store these strings client side and tie it to there browsers local storage or tie it to some account on a database ran by me? Keep in mind there is no limit to the amount of strings a user could make and I predict there will be lots of users with at least 200 individual strings needing storage. Don't want to commit without being sure first.
If you either want to do stuff like processing or analyzing it on the backend, or let users access their data from other devices, use a database. If not, use local storage.
Local storage has the benefit of saving you bandwidth and storage cost, no matter how much your users save, and probably more privacy.
Databases on the other hand, allow you to „do stuff“ with the data when the user is offline, share it through cross-device sessions and things like that. However the users can’t be sure what you are doing with it.
I've been doing that with https://alchemist.camp (screencasts for learning Elixir), and it's been a great side project. It's pushed me to learn more than I would have otherwise, built up a (small) profile online and generally lead to good things.
Build something simple, and make it a product/tool that doesn't require many active users to work, aka, doesn't require a network effect.
I built http://feedsub.com for this reason. Only a few users, but it indexes thousands of feeds and I make plenty of use out of it for myself.
My current project is deploying this app on a Raspberry Pi based cluster, and I'm going to write all the software for this myself to learn distributed programming.
Borrowing ideas from other people seems unlikely to be very engaging, and making things just to learn skills has the same problem.
Lacking side project ideas seems kind of incomprehensible to me, as I have far more ideas than I could ever put into practice, even if I didn't need to work for a living. Therefore, I suspect you do have suitable ideas, but maybe aren't recognising them as such for some reason?
Scripting repetitive or annoying things is an easy place to start. Maybe start with simple website-improver GreaseMonkey scripts, to fix things that bug you, or make your life easier?
There is an initial phase, where a creative person is just starting out. In this phase ideas are rare and sometimes seem precious.
I don’t quite understand what happens but after a while this phase passes. I think one of the core factors might be just doing stuff out of curiosity, playing, implementing things that are your own, fueled by curiosity.
Then, day after day you get showered in ideas. Good ones, crazy ones, boring ones. All kinds of solutions or new ways of doing things come to mind.
Today I find it much more challenging to filter and evaluate ideas than to get them.
Some important virtues that help in both cases: patience, practice, playfulness. Also respect of other people’s work.
I don't see a problem with people sharing ideas - especially for those of us who lean more to mission-driven ideas... if we have an idea that we believe would make the world a better place, then by all means, let someone go make it.
That is easy way to lose friends :) when you get annoyed with feature requests. It is easier to build stuff for people you don't like because usually you want to cut amount of features.
165 comments
[ 3.0 ms ] story [ 125 ms ] threadHelp users of nonprofits understand them better - watsi, Kiva etc share data that can be visualized in a variety of ways.
Teach (blog, video etc) - this is especially effective in topics you already know, but have gaps. Teaching forces you to clear those gaps.
Do exercises from project Euler, Rosetta etc
[0] https://www.onlinevolunteering.org/en/opportunities?f[0]=fie...
[1] https://brigade.codeforamerica.org/?_ga=2.40007591.405176958...
Look for something you are passionate about, or for something that is useful to you. The idea doesn't have to be unique or original. For example, there are apps that track your run time and distance when exercising. Some of these apps collect your data. You could create an app that tracks your run so you know your data isn't being collected by a company.
I've seen through first hand experience how much paperwork there is in this setting (daily outcome charts, medicine administration records, abnormal behaviour records, dietary and fluid intake, etc) and how many clerical errors there are. I've also seen first hand the key-document-dependency there can be around service user files, communication notification booklets for staff, etc, where changes often happen synchronously and are forgotten because the document isn't available in the moment.
I've spent the last 4 months or so taking a sabbatical from working as a software engineer to work for £9.00/hour at a support home for people with mental and physical disabilities (think Down's syndrome or people who are unable to live in an independent setting). As a result I now know an awful lot about this setting, the people who work in this industry, the minimum feature set I would need and the legislative landscape these companies operate in.
The best way to find a profitable side project is to become familiar with a none-technical discipline which is direly in need of modernisation. If you don't want to take time out of work, then choose an industry (it could be tree felling, red-brick manufacturing, shale oil extraction or solar panel installation) and figure out what the problems are plaguing the companies, staff or end customers.
There are so many $1,000,000,000 companies out there just waiting to be founded in areas which are considered unsexy and don't involve yet-another-to-do-list application. Find one company, with one problem, fix the problem, there's your profitable side gig.
If you would like to collaborate and need a programmer let me know :)
It's very rare to find those "scratch your own itch problems", the solution to that itch is most likely a google search away.
Pick a good product that you use and clone it. Keep an open mind because you can never copy the entire business since there is only so much you can see. Atleast you get some direction to start and you know that you are not trapped in building something people don't want.
Since you mentioned making your skillset strong(technical?), either way you win by just starting something.
You can even go further and you'll notice that the vast number of VC backed companies are just focused snippets of Microsoft Office Apps.
Take a song you love—or even a song you've just heard 15 seconds of—and try to recreate it, but extremely loosely, taking as many liberties as possible exploring directions the initial inspiration leads you towards.
More often than not, it'll morph into something unrecognizable compared to the source inspiration, and quickly become it's own thing.
Staring at a blank sheet of paper, or the the void of limitless options, is frozen death. Give yourself a limited toolset and an inspired spark of imagination to get yourself going, and incredible things are possible.
Chances are you can do it in an Excel spreadsheet without writing a single line of code, but where’s the business in that?
Also: What's your language, your target market? Suggesting a backend project for a frontend language or vice versa doesn't help you much.
In general, start with a game. You can be as creative as you like, there are no limits. On the other hand, you can keep it as simple as you feel comfortable.
That said, if you have some experience, look for an open source library that needs support. You improve the library, you improve your resume and you will get constructive feedback.
A few things I might do in the near future: a PyQT tilemap editor which supports limited random generation; Reading CSAPP3 and work on the projects.
What I got from MAL was much better knowledge of C#, better insights into the power of lisp-like languages, some intense satisfaction when I managed some of the more complex stages, etc. MAL is progressive, supported by 100s of tests, and an amazing array of reference implementations in a huge number of different programming languages.
[Edit] My side-project before MAL involved downloading the Unity game engine and using it to explore the different aspects of game development. I discovered that I really enjoyed asset creation and in particular lighting and shader design, and (long story short - totally bizarre trajectory) ended up creating a tutorial for the Octane render engine that has had actual sales! If I was going to look at games again I'd probably start with a simpler engine such as Godot [2]
[0] https://github.com/kanaka/mal/blob/master/process/guide.md
[1] https://github.com/norvig/paip-lisp
[2] https://godotengine.org/
[0] https://news.ycombinator.com/item?id=23271973
That said. If you like nodejs, you might try to do a Babel plugin. They would allow you to do meta programming and it's an area mostly unexplored (because of the great breadth). In my case that was https://github.com/furstenheim/babel-plugin-meaningful-logs to improve error messages.
If you like java and use Intellij, give it a try at creating a plugin. You'll be able to simplify your flows. Since it's mostly self tailored it will be most probably not done. It's not extremely hard, in a couple days you might have something workable. In my case it was adding support for ZPL language, which is very niche. But most probably you can find something tailored to your dev experience.
2. Write down the one feature for each app that you use the most within that app.
3. Write down what slightly annoys you about that one feature
4. Build the product around the one feature you feel you can cook up quickly and that will benefit your workflow
Do you use this for serious products that you feel like releasing? Would you be discouraged when you have found an alternative on the market that fixed the problem for you?
Let's see how it turns out this time.
8 months into it, it is my full-time job and we are releasing our first paid version (post-beta). We have 600 subscribers (beta-testers) and some people claiming they will become paid clients.
It is a huge experience in both, business and tech sides.
So, I would say the most important things are:
* forget "ideas"
* resolve your personal problem that you understand well
* always make a (side-)project with which you can charge people (making it "free" is just an excuse for not making something of good quality - 99.9% of cases)
* to the previous bullet point, you either ship a final solution that has business value for someone, or you are wasting your time (because no one can tell if it is of value or not (by paying))
Product: newscatcherapi.com
> 1. Write down the apps on your phone or computer that you use the most. If you want to bootstrap a profitable business, I recommend listing the apps you use for work.
Emacs, vim, xterm, tmux. (I use them all for work. 99% of the time, what you see on my screen is either Emacs, or an xterm running tmux and some instances of vim.)
On my phone, alarm clock. (I use it to get up for work)
> 2. Write down the one feature for each app that you use the most within that app.
In emacs and vim, probably self-insert-command or some basic motion commands.
In tmux, switching between windows and panes.
In xterm.. uh, just the fact that it's a terminal?
Alarm clock. I use it to wake me up in the morning.
> 3. Write down what slightly annoys you about that one feature
Nothing about the most used features above annoy me. Well, terminals annoy me but emulating terminals is the raison detre of a terminal emulator so I don't know if there's much you can do about it..
I also hate alarm clocks but I kinda need one to wake up.
> 4. Build the product around the one feature you feel you can cook up quickly and that will benefit your workflow
Looks like it wasn't that easy :(
Something tells me that picking the most used application and the most used feature in it most likely leads to the most solved problem that doesn't need to be solved again...
1. Most used apps are the browser, Facebook (marketplace only), Snapchat, Messages, Amazon, and RobinHood.
2. Browsing the web, browsing local listings, messaging people, shopping, trading stocks and options.
3. I wish the browser had better tab management and persona management. I wish Facebook Marketplace had a lot fewer ads and better categories. Also I wish it wasn’t Facebook. I wish there was a way to disable Snapchat notifications about the other person typing. I wish Messages had a way to disable notifications if I am, say watching a video or have some specific apps on (like games). I wish Amazon had a proper filter for “items I can get soon”. I wish RobinHood allowed me to list options bids/asks for longer than a day.
4. Of these the Amazon and RobinHood ones are the only ones that are feasible. There are alternatives to Facebook Marketplace and they are all worse/less popular. I doubt Apple would let me change their apps or OS code.
I suppose there is something here with an unofficial RobinHood API. Scraping Amazon is a popular thing to do but I don’t want to develop a complete clone of their app with just a single additional filter.
I created my own expense tracker and I use it to share stuff with my wife :)
https://atomicmoney.app
Some classic computer science project ideas:
- Build a path tracer. Physically-based rendering is a topic with lots of information on the Internet. It requires some math, but at least it's fun math :)
- Write an operating system kernel. It doesn't have to work on real hardware, just QEMU. You could even run it on a very old PC, Raspberry Pi, or TI calculator. This is a good introduction to how OSs work. Again, there's lots of courses and pages full of information online.
- Write your own programming language. Combine ideas from existing languages. You can make an interpreter, a JIT compiler, a single-pass compiler, a nanopass compiler, or something completely different.
- Combine multiple projects! Make your own programming language run on your own operating system and write a path tracer in your own language! Be creative, have fun, and learn useful stuff.
Got any good resources on this that aren't focused on the Nanopass Framework?
- Use k8s to deploy and run your app.
- Add more business logic where you will be needing more tools like elasticsearch, message-queues, etc.
Some examples from the top of my head are Stock Ticker app, Ticketing software like Zendesk, Food delivery App, etc.
Note: Start small, add one feature at a time.
Local storage has the benefit of saving you bandwidth and storage cost, no matter how much your users save, and probably more privacy.
Databases on the other hand, allow you to „do stuff“ with the data when the user is offline, share it through cross-device sessions and things like that. However the users can’t be sure what you are doing with it.
I've been doing that with https://alchemist.camp (screencasts for learning Elixir), and it's been a great side project. It's pushed me to learn more than I would have otherwise, built up a (small) profile online and generally lead to good things.
I built http://feedsub.com for this reason. Only a few users, but it indexes thousands of feeds and I make plenty of use out of it for myself.
My current project is deploying this app on a Raspberry Pi based cluster, and I'm going to write all the software for this myself to learn distributed programming.
- Make things that seem interesting/fun to you.
Borrowing ideas from other people seems unlikely to be very engaging, and making things just to learn skills has the same problem.
Lacking side project ideas seems kind of incomprehensible to me, as I have far more ideas than I could ever put into practice, even if I didn't need to work for a living. Therefore, I suspect you do have suitable ideas, but maybe aren't recognising them as such for some reason?
Scripting repetitive or annoying things is an easy place to start. Maybe start with simple website-improver GreaseMonkey scripts, to fix things that bug you, or make your life easier?
I don’t quite understand what happens but after a while this phase passes. I think one of the core factors might be just doing stuff out of curiosity, playing, implementing things that are your own, fueled by curiosity.
Then, day after day you get showered in ideas. Good ones, crazy ones, boring ones. All kinds of solutions or new ways of doing things come to mind.
Today I find it much more challenging to filter and evaluate ideas than to get them.
Some important virtues that help in both cases: patience, practice, playfulness. Also respect of other people’s work.
Isn’t this also “I need a product-focused co-founder”?