Sunday, April 8, 2018

Unexpected things I learned through building SpendSimple.ai, Flip and Sidekick (Episode 13 - Betas and Alphas)

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:

  1. Generous free tier service:   I don't have to worry about spending a penny.  Even when I make mistakes.
  2. The Joy of Trailblazing:  There are many uncharted territories.   It's actually quite rewarding once everything is working.
  3. 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.