Prototyping

Here's a thing that I want. A fast way host a web app, for prototyping and experiments. It has to be:

  1. Simple. One git repo containing all frontend and backend code. 
  2. Reproducible. There should be zero configuration outside the git repo, aside from the domain name you register and maybe a few environment variables for secrets like API keys. Anyone can fork the repo, get their own domain, and host their own instance of the app within 30 minutes.
  3. Automatic. Pushing to Github automatically runs tests, then updates the app.
  4. Stateful. You can use a database in your backend code.
  5. Open source. You are not locked in to a proprietary provider.
  6. Serverless. It should scale down to zero. No long-lived servers that can accumulate configuration and become snowflakes.

As far as I can tell, this doesn't exist today.

Firebase gives you 1, 2, 3, and 4, but then you're locked in. If the prototype works and you outgrow Firebase, you have to rewrite your backend. AWS sort-of works: you can use terraform with ALB+ECS+RDS to make a declarative web app with an open source database. But you don't get #6. Or you can use DynamoDB, then you get 6 but you lose 5. Either way, it's a lot of moving parts.

Netlify is sooo close. You get 1, 2, 3, 5, and 6. Absolutely crushes #1, you can buy a domain directly in Netlify and deploy a web app all in a few minutes. Netlify Functions are excellent. No database though; #4 is missing. They seem to loosely recommend FaunaDB? Which is proprietary and also has the worst query interface I have ever seen?

Whoever solves this can take my money.