Whiskey

A dependency-aware static site generator written in Go.

Whiskey Logo

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:


Features


Learn More


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:


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: