A modern, lightweight static site generator that brings the power of server-side includes, markdown processing, and live development to your workflow. Build maintainable static sites with component-based architectureβno more copying and pasting headers, footers, and navigation across multiple pages!
So simple, it shouldn't be this powerful!
- Zero Learning Curve: Uses familiar Apache SSI syntax (
<!--#include file="header.html" -->) and modern DOM templating (<include>,data-slot,<template>) - Modern Tooling: Built with ESM modules, powered by Bun for maximum performance
- Live Development: Built-in dev server with live reload via Server-Sent Events
- Multi-Format Support: HTML, Markdown with YAML frontmatter, and static assets
- Convention-Based: Files starting with
_are non-emitting partials/layouts by convention - SEO Optimized: Automatic sitemap.xml generation
- Framework-Free: Pure HTML and CSS outputβno build complexity or JavaScript frameworks required
- High Performance: Native Bun APIs with HTMLRewriter, fs.watch, and Bun.serve
- Cross-Platform: Standalone executables for Linux, macOS, and Windows
# Install Bun (required runtime)
curl -fsSL https://bun.sh/install | bash
# Option 1: Install globally via Bun
bun add -g @fwdslsh/unify
# Option 2: Install cross-platform binary (Linux, macOS, Windows)
curl -fsSL https://raw.githubusercontent.com/fwdslsh/unify/main/install.sh | bash
# Option 3: User installation (to ~/.local/bin)
curl -fsSL https://raw.githubusercontent.com/fwdslsh/unify/main/install.sh | bash -s -- --user
# Basic usage with defaults (src => dist)
unify build # Build from src/ to dist/
unify serve # Serve with live reload on port 3000
unify watch # Watch for changes and rebuild
unify init # Initialize new project
# Advanced usage with custom options
unify build --pretty-urls --base-url https://mysite.com
unify build --copy "./assets/**/*.*" --clean
unify serve --port 8080 --host 0.0.0.0unify is built exclusively for Bun and uses native APIs for maximum performance:
| Feature | Implementation | Performance |
|---|---|---|
| HTML Processing | HTMLRewriter | Ultra-fast DOM processing |
| File Watching | fs.watch | Native file system events |
| Dev Server | Bun.serve | High-performance HTTP server |
| Build Caching | Bun.hash | Native cryptographic hashing |
| Cold Start | Bun native | ~800ms startup time |
<!-- src/index.html -->
<!--#include virtual="/_includes/header.html" -->
<main>
<h1>Welcome!</h1>
<p>Build maintainable sites with includes and layouts.</p>
</main>
<!--#include virtual="/_includes/footer.html" --><!-- Alternative modern DOM syntax -->
<include src="/_includes/header.html"></include>
<main>
<template data-slot="title">My Page Title</template>
<h1>Welcome!</h1>
<p>Use data-slot attributes and templates for advanced layouts.</p>
</main>
<include src="/_includes/footer.html"></include>See the Getting Started Guide for a complete tutorial.
- Getting Started - Your first unify site
- CLI Reference - Complete command documentation
- Include Syntax - Apache SSI and DOM templating
- Layouts & Templates - Advanced templating features
- Docker Usage - Container deployment guide
- Architecture - Technical deep dive
# Build your site (default command)
unify
unify build
# Development server with live reload
unify serve
# Watch for changes without serving
unify watch
# Initialize new project
unify init
# Get help
unify --helpSee CLI Reference for all options.
- Simple: Familiar HTML and Apache SSI syntax with modern templating
- Fast: Incremental builds and smart dependency tracking
- Modern: ESM modules, live reload, cross-platform binaries
- Flexible: Works with HTML, Markdown, and convention-based architecture
- Portable: Runs on Bun (optimal), Node.js, and Deno
- Secure: Path traversal prevention and input validation
- Developer-Friendly: Built-in development server with comprehensive error handling
- Path traversal prevention: All file operations validated against source boundaries
- Input validation: CLI arguments and file paths sanitized
- Static output: No client-side template execution vulnerabilities
- Secure serving: Development server restricted to output directory
unify has comprehensive test coverage:
- Security tests: Path traversal and validation
- CLI tests: All commands and options
- Build process tests: Complete workflows
- Error handling tests: Graceful degradation
- Bun: Minimum version 1.2.19 (recommended for best performance)
- Node.js: 14+ with native ESM support
- Deno: Latest stable version
Download and install standalone executables for Linux, macOS, and Windows:
# System-wide installation
curl -fsSL https://raw.githubusercontent.com/fwdslsh/unify/main/install.sh | bash
# User installation (to ~/.local/bin)
curl -fsSL https://raw.githubusercontent.com/fwdslsh/unify/main/install.sh | bash -s -- --user
# Specific version
curl -fsSL https://raw.githubusercontent.com/fwdslsh/unify/main/install.sh | bash -s -- --version v0.4.3
# Manual download from GitHub Releases
# https://github.com/fwdslsh/unify/releases# Bun (fastest execution)
bun add -g @fwdslsh/unify
bun unify serve
# npm/Node.js
npm install -g @fwdslsh/unify
unify serve
# Deno
deno run --allow-read --allow-write --allow-net npm:@fwdslsh/unify serve| Platform | Architecture | Binary | Package Manager |
|---|---|---|---|
| Linux | x86_64, ARM64 | β | β |
| macOS | x86_64, ARM64 (Apple Silicon) | β | β |
| Windows | x86_64, ARM64 | β | β |
The cross-platform binaries are compiled from Bun and include all dependencies, requiring no additional runtime installation.
See our detailed roadmap for completed features, current development, and future plans.
We welcome contributions! See our Contributing Guide for details.
git clone https://github.com/fwdslsh/unify
cd unify
bun install
bun test
bun run buildOur GitHub Actions workflows are optimized for performance and cost efficiency. See CI/CD Workflows Documentation for details on:
- Fast test feedback loops
- Docker build validation on PRs
- Automated publishing on releases
Built with β€οΈ for frontend developers who love simple, powerful tools.