As web and app developers, our job is to deliver products. Those products can have many properties, but first and foremost they should be:
Delivered on time.
Maintainable (easy to update, even by a different developer).
Of high quality (no 404s or NPEs, please).
Solving a real-world problem.
It’s irrelevant whether you’re getting paid to deliver it or whether it’s your passion project for which you’re willing to sacrifice your free evenings and weekends. What’s important is that going from an idea to a fully functioning product can be a complicated process.