I’m abandoning Astro.
Astro is stuck on slow TypeScript 6 and ESLint while the tooling has moved on to
fast TypeScript 7 and Oxlint. That lag is structural: .astro is a custom
language, so every new compiler and linting tool needs a bespoke integration.
Its tooling will always lag behind. I wanted a static-site stack that could move
with the rest of my toolchain, so I built
solid-static.
It is an Astro-inspired static site generator built as a Vite plugin with
SolidJS and TSX. It supports all the Astro niceties, including content
collections and optimized images. .tsx is a standard at this point, and
SolidJS has the lowest mental overhead of any .tsx framework I know: the same
components and primitives work for static pages and dynamic UI, without
introducing a second mental model.
Codex even vibed a nice API for JavaScript islands: fully Vite-powered ?island
imports.
import counterIsland from "../app/counter-island.tsx?island"
<script type="module" src={counterIsland} />
Vite serves the source entry during development, then emits hashed JavaScript and CSS assets for production.
All my personal static sites are now built with solid-static:
adelnz.com, Listenbox, and
ResponsibleAPI.
This very page you’re reading was built using solid-static.