eigen
A static site generator that thinks in fragments.
[site]
name = "my-site"
base_url = "https://example.com"
[build]
fragments = true
clean_links = true
[sources.api]
url = "https://api.example.com"Features
HTMX Fragments
Every template block becomes a standalone fragment. Click a link, swap a div — no full page reload. Navigation that feels like an SPA, built with zero JavaScript frameworks.
Data From Anywhere
Pull data from local YAML files, REST APIs, Notion, or GraphQL. One config block per source. Caching, rate limiting, and auth headers built in.
Dynamic Pages
Name a template [slug].html and point it at a collection. Eigen generates one page per item — blog posts, product pages, docs — from a single template.
Built-in Optimization
Critical CSS inlining, image lazy loading, CSS/JS bundling with tree-shaking, content-hashed assets, HTML minification. All on by default.
Incremental Builds
Only re-renders pages whose templates, data, or config actually changed. Two-tier hashing keeps rebuilds fast even on large sites.
Single Config
One site.toml file configures everything — data sources, SEO defaults, build optimization, analytics, redirects, feeds. No plugin ecosystem to navigate.
SEO Out of the Box
Auto-generated sitemap, robots.txt, Open Graph tags, Twitter cards, JSON-LD structured data. Configure once at the site level, override per page.
Rust Performance
Async build pipeline on Tokio. Concurrent page rendering, parallel data fetching, non-blocking I/O. Builds your site as fast as your machine allows.
How It Works
Write templates
{{ post.title }}
{{ post.body | markdown }}Configure data
data:
posts:
source: blog_api
path: /posts
limit: 10Build & deploy
$ eigen build
Rendered 47 pages
Extracted 47 fragments
Built in 0.8scargo install eigen