Over the past few months, I’ve had the luxury of playing with and developing an app using a whole slew of technology. Nothing makes me happier than doing research to find a bunch of solutions and then writing some real life code to test the specific solutions I want to build my app on. It is a bit overwhelming, but each layer has an interesting mix of latest, sometimes bleeding edge tech. At the same time, it is also functional and stable, so the focus is on features and not fixing bugs.
I knew I needed a webapp, mobile (android and ios) and backend. Zero devops. I wanted to try GraphQL over REST (ended up with a bit of both anyway). I know I need aggregations, so it is postgres over a document store. I need login and authentication and firebase provides that… for free. The entire stack can be worked on by anyone involved, no specialized future hires, which limits the hiring pool.
React / Hooks / Context - Latest React philosophy is quite nice.
Material-UI - Not just Material, it is a great platform for building component based apps.
React Final Form - Best form management tool I’ve found… because it is performant.
MUI-RFF - Form components that I wrote!
Navi Router - Great alternative to the standard fare.
Apollo React Client - A bit difficult to use, but works well enough
Provider State Pattern - Common state management pattern, done well.
flutter_test - Easy enough testing of components
Typescript - Again, simply because it means I can use the same developers.
Firebase - Excellent platform with near zero costs and great documentation.
Firebase Auth - Security is hard, let someone else do it.
Firebase Cloud Functions with Node JS - Zero devops for the win.
Mikro-ORM (v3 is shaping up nicely) - Finally hibernate for JS/TS
Cloud Postgres SQL - $7/month to start and scales with growth
Apollo GraphQL Server - Experiment in GraphQL isn’t bad, but I’m not entirely convinced yet.
Type-GraphQL - Really makes using Apollo so much simpler.
GraphQL code generator - Let type safety work for you.