About

Skrapa exists because most static sites don't need a toolchain, a virtual DOM, or a hydration step. They need just markup, a few interactive bits, and plain HTML to ship.

All too often I wanted to spin up a simple static site and found the usual stack (Vite + React + TypeScript + a pile of config) to be total overkill. I didn't need client-side routing or a runtime in the browser. I just wanted to write some markup, get a few interactive bits, and ship plain HTML.

Skrapa is the result. It keeps the one thing I actually missed (writing layout as JSX in TypeScript) and throws out the rest. Pages compile to static HTML at build time with their client JS bundled into standalone files, so there's no framework and no runtime in the browser. A dev server with live reload keeps the feedback loop tight while you work.

I built it for myself and still use it daily: my personal site, Sordle, throwaway prototypes, quick dashboards, and one-off reports. If you've ever wanted a static page without booting up an entire toolchain to get there, it might suit you too.

What it does

All of it ships as a single script with no dependencies, importing nothing but Node builtins. npx fetches it on demand, so it never becomes a dependency of the site it builds. The one thing it doesn't do itself is compile TypeScript, which it hands to your local tsc.

For the full mechanics (the HTML shell, the Page type, client script and stylesheet resolution), see the docs.

← Back home