sta6?sta6: sta(six), static.
As simple as it gets, sta6 is a tiny static site generator (bundler) that turns pages/*.lisp into build/*.html, with support for dynamic routes [1].
sta6, and many other SSGs are intended for content-driven sites (e.g., blogs, docs, wiki).
Rather than providing built-in Markdown support, sta6 lets you integrate any Markdown parser amongst the library of Common Lisp [2].
Using an SSG does not mean your site can't be interactive. You can use JavaScript/TypeScript to bring a simple interactivity to your site [3]. For example, this docs uses @hotwired/turbo for an SPA-like routing. Although, that's an additional ~90kB to pay.
If your site requires richer client-side interactions (i.e., DOM manipulation), then consider adding an external library:
But that's beside the point.
You can create layouts, and components (example: sta6/docs). Basically, sta6 tries to do what Next.js is capable of.
An index page (i.e., src/pages/page.lisp) should look like:
(defpackage #:pages/page
(:use #:cl)
(:export #:render))
(defun pages/page:render ()
(sta6:html5
(:p "hello, from sta6!")))
This will render into build/index.html, see quickstart for a more complete example.
sta6?sta6 isn't fancy. It's tiny, minimal, barebone.sta6 is your excuse to try it.Note that sta6 is still in it's early development (BETA). Some quality-of-life features are still absent [4].