Synsema

Frontend

Server-side HTML, no imposed framework. Two paths: render() templates (full freedom) and content() (agent-negotiable).

render() templates

serve on 8080
    static "/assets" from "./static"
    route "GET /"
        give render("pages/home.html", {"title": "My App"})

Templates are HTML with { name } holes, { each }, { when }. Compose with layouts and partials:

{ layout "layouts/base.html" }
<main>{ title }</main>

-- base.html:
{ include "partials/nav.html" }
{ slot }
{ include "partials/footer.html" }

Serve your own JS/CSS from static/ — vanilla, htmx, or any framework. Full creative control.

content() for docs/blog

Build a semantic tree that renders as HTML for humans and Markdown/JSON for agents from one source.