You need to determine the value of your time first. Basically, figure out what dollar value your expect to get for work. When working on private projects, you need to (metaphorically) pay yourself too. For example, If I'm doing a personal project, I first determine how much it is worth to me. If it is something I actually make money off of, this is easy. It is worth what I expect it to make. If it does not make money, I assess how much I would potentially pay someone else to do it if I did not have the skills or if I had too many other commitments. Then you put as many hours into the project as you could afford to pay yourself, given your previously defined budget. When you hit that mark, stop. If it has some loose ends, tie them up quickly and stop. Do not add any extra stuff beyond this point. If at some point it becomes reasonable to update (such as a personal portfolio site for example), first assess whether or not the existing project is filling it's need. If you are getting bites for work from an existing portfolio site, or if it is being favorably viewed by prospective employers, you do not need to update it; it's already doing what you designed it to do and continuing to pour effort into it is undermining your own skills and taking time away from more relevant endeavors.
If it is something you are just doing on the side for fun, do the same process, but set aside a certain number of work hours you can afford to put into it in your free time (the same chunk of free time you would also dedicate to watching tv, going to the bar, playing video games, or going golfing), and work on it within that time frame. When you have exhausted that time frame, you're done until next week/tomorrow/whenever your schedule resets.
When your project is functional, launch it. If it flops, improve the areas people didn't like and relaunch. You expect by default 100% output from yourself because you know know what level of work you are capable of. The public expects your work to fill a need. If it does that, it is successful. If it does that better than other examples, it is optimal. It does not ever need to be the 100% you expect from yourself to work for others, it just needs to suit their needs and they will use it.