It's interesting that you recommend marketing before building the project. I know most devs would definitely prefer to do the opposite, any reason you prefer this approach?
I would argue that validating your idea should be the absolute first thing to do. I'm not sure how you would fit marketing into the validation process, but bottomline is that you should understand customer needs very well and validate that a good deal of them would love your product enough to buy in before you commit even a single line of code.
I got by the idea that validation is the first step, basic marketing the second and building an MVP is third. The second part is what surprises most people as they would start building at this point.
Thanks for reading my post and replying. I hope it is of use to you. To your question:
Building projects has got much much easier over the last few decades. Languages and frameworks advanced and make it easier. Building got to a point where people build them just for fun, training, or simply to show off. With a bit of research, you can even find many (almost) complete, feature-rich applications open-sourced on GitHub. In one sentence: while it's still work, building itself isn't hard enough anymore to create the value alone.
Building it and hoping that customers come and find you simply doesn't work as an approach (anymore). For each problem, there are multiple companies offering solutions. If a new problem gets addressed, the solution gets cloned and replicated much faster than ten years ago (because building is fairly easy).
For independent entrepreneurs like myself, this is an additional challenge. We see it constantly - only a small number of projects lasts longer than a few years these days.
At the same time, attracting customers to your project gets harder every day. Hence my conclusion that you need to ensure that your project/product has an actual market before you start building - you need to market it.
If you opt for the traditional approach, your outcome will be one of these two: You will build it, no one really cares, you then get demotivated because of this and end up abandoning the project. The other outcome is not much better: if your project is a surprise hit and people love it, you get more bugs, more support requests, etc. etc. The workload is increasing with each new user. But if you haven't planned ahead to approach it as a commercial solution, you will face strong opposition when introducing commercial aspects later. Once people get it for free they want to keep it free. Users who sign up for free stuff don't just turn into paying customers. So marketing your solution as a project with commercial intent from day one gives you a greater chance of turning it into a permanently viable project for you (and your users).
Let me know if this doesn't answer your question.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.