sitegen/readme.md
2025-06-13 00:29:30 -07:00

2.8 KiB

clover sitegen framework

this repository contains clover's "sitegen" framework, which is a set of tools that assist building websites. these tools power https://paperclover.net.

  • HTML "Server Side Rendering") engine written from scratch.
    • A more practical JSX runtime (class instead of className, etc).
    • Transparent integration with Marko to mix component types.
    • MDX support for text-heavy content pages.
  • Incremental static site generator and build system
    • Build entire production site at start, incremental updates when pages change; Build system state survives coding sessions.
    • The only difference in development and production mode is hidden source-maps and stripped assertions and console.debug calls. The site you see locally is the site you see deployed.
  • Tools for building complex, content heavy web sites.
    • Static asset serving with ETag and build-time compression.
    • Dynamic server side rendering from within backend code.
    • Databases with a typed SQLite wrapper.
  • TODO: Integrated unit and end-to-end test runner. Along with other built-in codebase checks (tsc, lint), all tests run automatically in the background. Test caching uses the same incremental system the build does, so changing a library file knows to re-test all of the pages that import it.
  • Built on the battle-tested Node.js runtime. Partial support for Deno and Bun.

Included is src, which contains paperclover.net. Website highlights:

Development

minimum system requirements:

  • a cpu with at least 1 core.
  • random access memory.
  • windows 7 or later, macos, or other operating system.

my development machine, for example, is Dell Inspiron 7348 with Core i7

npm install

# production generation
node run generate
node .clover/out/server

# "development" watch mode
node run watch

Contributions

No contributions to src accepted, only framework.