Substi is still in stealth mode, but it’s important that we get the tech right from day 1. If you make the wrong choice now and suddenly find massive growth when you go live it can be disastrous if you can’t scale to keep up.
If you’re interested in a technology deep-dive, buckle up and read on.
There are a whole heap of competing technologies in this space and we’ve tried all of them in our other day jobs. For Substi we’ve gone all in (almost) on microservices. Our back-end is all Node JS micro services running on kubernetes on Google’s Cloud Platform. Kubernetes will allow us to scale to meet load across regions and data centres. We chose Node over more conventional back-end languages purely because it allows us to maintain our entire code-base (front, back, middle and side) in a single language – which is great for things like automated test code coverage tooling, scanning for security issues, reporting on styles and other code management type things.
We make heavy use of firebase for real-time data and authentication. Firebase uses websockets so that changes to the data on the server reach all the clients who are interested in real-time. It’s perfect for a system like Substi where people want to know in seconds when a job has been accepted, cancelled or declined. No refreshing, no waiting, the system just lets everyone know.
Our front end is React and React-Native, a js app framework made by the very clever people at facebook. It’s a robust view layer that takes care of reconciling the ‘state’ of the application with what the end-user sees and requires very little bootstrapping so our devs should be able to iterate quickly and add features without getting bogged down in lots of regression testing and breaking changes!