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"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.
Pull data from local YAML files, REST APIs, Notion, or GraphQL. One config block per source. Caching, rate limiting, and auth headers built in.
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.
Critical CSS inlining, image lazy loading, CSS/JS bundling with tree-shaking, content-hashed assets, HTML minification. All on by default.
Only re-renders pages whose templates, data, or config actually changed. Two-tier hashing keeps rebuilds fast even on large sites.
One site.toml file configures everything — data sources, SEO defaults, build optimization, analytics, redirects, feeds. No plugin ecosystem to navigate.
Auto-generated sitemap, robots.txt, Open Graph tags, Twitter cards, JSON-LD structured data. Configure once at the site level, override per page.
Async build pipeline on Tokio. Concurrent page rendering, parallel data fetching, non-blocking I/O. Builds your site as fast as your machine allows.
{{ post.title }}
{{ post.body | markdown }}data:
posts:
source: blog_api
path: /posts
limit: 10$ eigen build
Rendered 47 pages
Extracted 47 fragments
Built in 0.8scargo install eigen