v0.10.0
Incremental builds: dev server skips rebuilding unchanged content for faster iteration
Incremental Builds
The dev server (seite serve) now uses incremental builds. A build cache (.seite/build-cache.json) tracks file modification times and content hashes across builds. When the file watcher triggers a rebuild:
- Nothing changed → build is skipped entirely (no wasted CPU, instant response)
- Only content changed → output directory is preserved, only changed pages are re-rendered (indexes, feeds, sitemap still regenerate — they're fast)
- Template, data, or config changed → full rebuild (correctness requires it)
This means editing a single blog post on a 200-page site no longer rebuilds all 200 pages.
How It Works
BuildCachestores per-file mtimes and FNV-1a content hashes in.seite/build-cache.json- On each rebuild, the cache diffs current file state against the stored snapshot
- Changed content items are re-processed through markdown rendering and template expansion
- Unchanged items keep their existing HTML in
dist/ - The cache is updated after every successful build
What Triggers What
| Change | Effect |
|---|---|
| Content file edited | Rebuild that page only |
| Content file added | Build the new page |
| Content file deleted | Remove from indexes |
| Template changed | Full rebuild |
| Data file changed | Full rebuild |
seite.toml changed | Full rebuild |
| Static file changed | Re-copy that file |
Build Output
The build stats now show whether a build was incremental:
Incremental build 42 posts, 12 docs in 0.3s (5 static files copied, 51 items unchanged)
Notes
seite build(production) always does a full clean build — incremental is dev-server only- Add
.seite/to.gitignoreif not already present (the cache is machine-local) - The cache uses FNV-1a hashing for speed — it's a build cache, not a security mechanism