Reason #1: no focus
You don’t think about a product, you think about a set of features. Sure, that feature is nice, and I know you have a new and cool idea, but you are failing because people want a product they can use and enjoy, not randomly collected features. You must have a set of core features and build around those, always keeping in mind the user experience. Fewer features but easier to use is the way to go. Less is more and all that.
Reason #2: you’re wrong
You built the product for yourself. Congratulations, you have 1 user! You assumed the way you are thinking is the way everyone thinks, and spent no time testing with other users from different backgrounds. Next time assume every single user thinks differently, and make things stupid proof. Your users may be very smart in their field of work, but complete monkeys when touching a computer. Get your product in the hands of as many test users as you can, as early as you can.
Also, pay attention to what you tell your test users, preferably as little as possible, otherwise you might have problems later, as explained here.
Reason #3: the all purpose deal
You try to make everybody happy, you idealist, jack of all trades, master of none. Set your target audience early on, and write it big somewhere. If you make that general purpose product that will be good for everybody, it will be great for exactly none. Example: I saw a company that built a web app that lets you watch a movie in sync with some friend of yours that is remote. Pretty cool. In the description they say something like: … but can be used for video conferencing, remote assistance, blah blah blah. NO! There are already many apps that do that better, so focus on what you do best, and don’t get distracted by unintended uses.
Reason #4: no selling points
You don’t know your identity. You should have around 2–3 characteristics of your product that are quintessential (ex: fast and easy to use, secure and robust, etc.) and always keep them in mind, as they will be your selling points. These too should be written big somewhere. No other feature should affect them.
Reason #5: it’s all the same
You don’t know why you’re doing it. If you are dragged out of bed in the middle of the night you must be able to say why the customers will choose you over the competition. If it takes more than one sentence to explain it, it will be hard for the customers too, and you will lose them. You must always keep in mind why you’re different, otherwise you will find yourself building a product that is already out there.
Reason #6: no marketing strategy
You don’t know how the customers will get to you. Maybe you’re thinking if the product is good, the customers will come. That works very very rarely, because as a customer you have a lot of options these days. Be sure to have a marketing budget and an estimate of how much a user is going to cost you. Even a bad product with decent marketing will sell better than a very good product with bad/no marketing. DO NOT POSTPONE THIS. Don’t think you’ll build the product and then think about marketing, it’s inefficient, as thinking about marketing will most likely make you think differently about what the product should be like.
Reason #7: customer care
You don’t know what to do with the users. You haven’t thought much about landing pages, tutorials, and who needs customer support anyways. Your customers may be monkeys, remember that. Think about what the user will ask (how do I create a user? what do I do next? how do I invite my friends? why is this not working?) and try to answer them before they ask. If a user finds himself feeling lost, it will cause frustration. And frustrated users leave.
Bonus: You waited too long to fail
Launch a minimum viable product, fail, get feedback, adapt, fail again, and repeat, until you succeed. Fail early!