Sad to say this day is finally here - @zeithq announced the shutdown date for Zeit Now v1.0, still the best hosting platform I've ever used
They've handled this shutdown really well - they prevented new signups for that platform from (I think) January 2019 and gave plenty of time to migrate away.

I still have a terrifying number of projects to move but at this point that's on me, not in them.
I'll be migrating most of my stuff to Cloud Run which has the same Docker-based, scale-to-zero model that I loved about Zeit - but the developer experience isn't as good, especially around decent URLs to projects.
Zeit was perfect on this front: "--alias http://something.mydomain.com " would configure the subdomain and use (I think) an existing a wildcard certificate. Cloud Run makes me fiddle around in separate DNS settings and wait several mins for a new dedicated certificate to be provisioned.
Zeit Now v2 is a totally different product - great if your stuff fits in lambdas, but unfortunately inappropriate for @datasetteproj

Last I checked it didn't even have the Python sqlite3 standard library module! I think that's down to a dumb design decision by AWS lambda.
Aside from my stuff not working on it, my biggest problem with v2 is philosophical.

v1, based on shipping a Docker container, had zero platform lock-in.

v2, based on lambdas, is pretty much the opposite.

I got burned years ago by App Engine lock-in, been cautious ever since.
Aside from Cloud Run I'm excited about the potential of @flydotio for hosting Datasette. They don't scale-to-zero but they do host an instance for less than $3/month - and provide $10/month of free credit.

Plus they published this ace Datasette tutorial! https://fly.io/blog/making-datasets-fly-with-datasette-and-fly/
It's worth calling out the most innovative part of Zeit Now: every deploy gets a new unique URL, which are intended to work forever. You ship your code, then atomically update your production alias to point at it.

Zero downtime deploys! Instant preview for every pull request!
It's such a great way to work! I had https://latest.datasette.io/  running in Now v1 to always host the most recent master branch of https://github.com/simonw/datasette (now ported to Cloud Run)

... but I also had it so every commit pushed to that repo would get a permanent demo URL as well!
My hunch is that this is one of the things that killed v1 - it always felt too good to be true that they let me have each commit deployed forever as a several hundred MB Docker image.

When v2 came out my first thought was "huh I guess v1 really WAS too good to be true".
In case anyone's interested, I've been documenting the steps I'm taking to migrate http://www.niche-museums.com  from Zeit Now v1 to Google Cloud Run in detail on this issue https://github.com/simonw/museums/issues/20
I've got into the habit of doing this for any kind of ops work these days - document every single step in a GitHub issue comment with details of commands I ran and screenshots of any web UI settings I had to update. It's so useful for remembering exactly what I did!
You can follow @simonw.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: