How would you structure the backend for an application like this? - Theo's Typesafe Cult