Entrepreneur. CEO and Founder of Epsilon Eight, software engineer, early Recurly employee, passionate about business.
Worked in and around SaaS businesses for the last 10 years.
This is a careful dance. Obviously you want the product of high enough quality that it has utility for your users, but you could play that game in perpetuity. If you have customers using the product and getting value from it, release it and start charging. Paying customers often behave different than free users and will give you the real feedback you need. Maybe there are features your paying customers need that your free customers haven't surfaced.
There a lot of resources out there for improving your Ruby or Javascript skills. http://www.codecademy.com/learn has some great content. https://peepcode.com/ is great as well.
Run through every tutorial you can find, improve upon the code in some way, then write your own blog post about it.
If you're really wanting to jump into some real-world code, checkout some node.js and ruby projects on GitHub and start contributing. This can be as simple as fixing/updating documentation or filing bugs. Improving tests is a great place to start.