Whiskey
A dependency-aware static site generator written in Go.

What is Whiskey?
Whiskey is a static site generator built around a simple idea: only rebuild what changed.
Instead of rebuilding an entire site after every edit, Whiskey constructs a dependency graph connecting pages, layouts, partials, assets and external content. When a file changes, Whiskey determines the minimal set of affected pages and rebuilds only those.
The result is faster builds, better scalability and a development workflow that remains responsive even as sites grow.
In simple terms, Whiskey asks:
"Which pages actually depend on what changed?"
Then it rebuilds only those pages.
Why Whiskey?
Modern static websites are no longer made up of just Markdown files. They often combine local content with shared documents, generated pages and remote resources.
Whiskey was designed to make these workflows first-class while keeping the development experience simple.
Its goals are:
- Incremental by default — rebuild only affected pages instead of the entire site.
- Dependency-aware — understand relationships between pages, templates, assets and external sources.
- Remote Content — treat remote Markdown as native content through built-in
@includecommand and workspace caching. - Developer-friendly — provide a fast CLI, live reload and deterministic builds.
Features
- Dependency-aware incremental builds
- Local includes for reusable content
- Remote includes with workspace caching
- Offline builds using cached sources
- Development server with live reload
- Layouts, partials and themes
- Collections and tags
- RSS feeds and sitemap generation
- Built-in image shortcode
Learn More
- Documentation — Learn how to configure and use Whiskey.
- Developer Guide — Explore Whiskey's architecture and implementation.
- Blogs — Design philosophy, architecture and implementation notes.
- Tags — Browse topics across the documentation.
Getting Started
The guide below is included directly from getting-started.md using Whiskey's local include feature. The source page remains a draft, allowing the same content to be reused without being published independently.
Installation
Homebrew
brew tap sxijyoti/whiskey
brew install whiskey
Verify the installation:
whiskey --help
Build from Source
Clone the repository and build Whiskey:
git clone https://github.com/sxijyoti/whiskey.git
cd whiskey
make build && make install
Verify the installation:
whiskey --help
The whiskey binary is installed into your Go binary directory (typically ~/go/bin). Make sure this directory is included in your shell's PATH.
Creating a Site
Every Whiskey project consists of a site directory containing your content, assets and configuration.
A minimal project looks like this:
my-site/
├── content/
│ └── index.md
├── static/
└── whiskey.toml
Configuration (whiskey.toml)
Create a whiskey.toml file in the site root:
title = "My Site"
description = "Built with Whiskey"
base_url = "http://localhost:8080"
theme = "minimal"
Project Structure
A typical Whiskey site contains:
whiskey.toml— Site configuration.content/— Markdown pages.layouts/— Custom HTML templates.static/— Images, CSS, JavaScript and other static assets.themes/— Reusable themes.
Your First Page
Create content/index.md:
---
title: Welcome
layout: page
draft: false
---
# Hello, Whiskey!
Welcome to my first Whiskey site.
Build the Site
Build your site with:
whiskey build
Whiskey automatically detects what has changed and rebuilds only the pages affected by those changes.
To force a complete rebuild:
whiskey build --full
Serve Locally
Start the built-in development server:
whiskey serve
By default, Whiskey serves your site at http://localhost:8080 and watches for changes to content, layouts and static assets, rebuilding affected pages automatically.
To use a different port:
whiskey serve --port 9000
Remote Content
Whiskey can include Markdown from remote HTTP or HTTPS sources.
To fetch or update all configured remote content without building the site:
whiskey sync
Downloaded content is cached locally so it can be reused across builds.
Offline Mode
When you're offline, Whiskey can build using cached remote content without making network requests.
Build using cached sources:
whiskey build --offline
Or start the development server in offline mode:
whiskey serve --offline
Next Steps
You now have a basic Whiskey site up and running.
Continue with the documentation to learn about:
- Layouts and themes
- Local and remote includes
- Collections and tags
- RSS and sitemap generation
- Dependency-aware incremental builds