I remember reading The Twelve-Factor App [1] from the Heroku folks back in the day, and was blown away by how well they understood the problem. Not only that but they had great taste.
I moved things to Render a while back, and then to my own Hetzner server (I built kind of an open source Vercel clone for that reason [2]).
I'm not quite sure any of these platforms are going to be relevant 5 years from now when you can summon your own DevOps AI agent. At the very least it's going to be incredibly difficult to justify the premium on top of AWS.
Appreciated. That's pretty much what I was going for.
The only thing I think is missing is a proper full text search which I'll add later on this week using lunr.js [1]. I just didn't have the time to get it done for this release.
It's pretty much as advertised: a really simple documentation template built with 11ty [1] and Tailwind.
I've been releasing a few projects in the past year: Basecoat [2], Pages CMS [3], and lately /dev/push [4]. Each one of them needed its own documentation.
Sure, I could have used stuff like Mintlify or Docusaurus. But I really wanted something fast, modern, simple, and good-looking. And if possible: no React.
Since it's using Basecoat, you get a shadcn/ui compatible design system, so pretty easy to style.
I'll be rolling it out to all my projects, but maybe some of you find it useful.
Quart was interesting, but it didn't seem to have as much traction as FastAPI. I also seem to understand Flask is trying to integrate some of Quart's ideas.
I think these may be footguns though. Components for example are just a regular macros under the hood. Why not use macros then?
I'm also curious about the choice of Flask. I started with a similar approach for /dev/push [1], but ended up moving to FastAPI + Jinja2 + Alpine.js + HTMX once I figured out FastAPI wasn't just for APIs. I wanted proper async support. I love Flask, but don't you find it limiting?
BTW, this comment is very true when dealing with HTMX as well:
> But what I’m most excited about are the possibilities that Datastar enables. The community is routinely creating projects that push well beyond the limits experienced by developers using other tools.
For example when displaying the list of deployments, rather than trying to update any individual deployment as their state is updated, it's just simpler to just update the whole list. Your code is way simpler/lighter as you don't need to account for all the edge case (e.g. pager).
I'm still trying to figure out what the key difference would be when writing an app with Datastar over HTMX.
I wrote /dev/push [1] with FastAPI + HTMX + Alpine.js, and I'm doing a fair bit with SSE (e.g. displaying logs in real time, updating state of deployments across lists, etc). Looking at the Datastar examples, I don't see where things would be easier that this [2]:
Also curious what others think of web components. I tried to use them when I was writing Basecoat [3] and ended up reverting to regular HTML + CSS + JS. Too brittle, too many issues (e.g. global styling), too many gaps (e.g. state).
If you end up playing with it, let me know what you think.