- Google Firebase Hosting for your static front-ends
- Google Cloud Run Services for your APIs
- Google Cloud Run Jobs for long running compute (more than doubles your Cloud Run monthly free compute grant if you can move some compute workloads into a Job)
- Google Firestore for anything that doesn't benefit from being relational
- Supabase for anything that benefits from being relational and/or you need a vector DB.
You can get pretty far with this combo without paying more than a few cents a month and you don't compromise on scalability nor portability (excluding Firestore).(I'd avoid Cloud Functions because the cold starts are abysmal and you'll end up paying a small fee for warm instances for anything that is latency sensitive; proper Cloud Run at least has a CPU boost option that seems to help).