Should I use a component which is still in alpha or beta?
For Flip, I took a plunge on an alpha stage peer-to-peer framework from HypeLabs.io; and then with SpendSimple.ai, I adopted Google's Firestore (in beta.) Here is a synopsis of how they went and where I am heading.
For beta components, if it fits your needs well and the community is active; go for it. A mature product (e.g. jQuery) actually has hidden risks, specifically its shelf life. Promising beta has a lot more active years in front of them.
From my journey with Firestore, the tradeoffs are:
- Generous free tier service: I don't have to worry about spending a penny. Even when I make mistakes.
- The Joy of Trailblazing: There are many uncharted territories. It's actually quite rewarding once everything is working.
- Beta != Low Quality: The name 'beta' suggests that it's not mature yet. But its creators usually invent them for a reason: they found the status-quo not good enough in the long run. In many ways, beta is actually better than the status-quo; because the creators have usually taken much time looking at current pain points and avoid them with new approaches.
- Administration tools (e.g. backup) are often incomplete. I nuked my main database by accident once and learned that lesson the hard way. :-) If you are using beta stuff, backup often.
- StackOverflow becomes less useful (fewer examples you can lean on.) I needed to go to the source more often.
For alpha, wait until it goes beta. The volatility on the APIs and lower quality of documentation chews up a lot of time. I will leave it at that. HypeLabs.io has gone GAed, but I haven't had a chance to upgrade my code in Flip yet.
