I've been building a developer-focused hosting platform solo, and the biggest theme so far is simple: everything is a tradeoff.
Here are the ones that mattered most (and why I chose them):
Infra: Ansible + Kubespray instead of Terraform
- 6 years of Ansible muscle memory → faster to ship now.
- Pro: super flexible, easy to run just the pieces I need.
- Con: not centralized; human coordination is needed.
Control plane: a Go operator (Kubebuilder)
- Reconciles desired ↔ actual state for Apps/DBs/Redis/Volumes.
- Emits events that the backend subscribes to (dashboard stays fresh).
- No tradeoff here actually, it is what it is.
Backend: schema-first Go (Gin + Ent + oapi-codegen)
- OpenAPI → generated interfaces → manual impl → glue to Ent + operator types.
- Conversions (from type to type between packages) aren't perfect, but the consistency is worth it.
Frontend: React + AntD
- A friend helped me bootstrap React (speed > novelty).
- Autogenerated OpenAPI client = strongly-typed calls, quick refactors.
A recurring lesson: the most expensive resource is time. I'll pick "familiar + ships today" over "shiny + learn for a week," unless there's a clear long-term payoff.
Question for you all: what tradeoff saved you the most time recently?
PS: Happy to answer your questions if any too. A bit more in detail write-up is on dev.to.