Static Site Generator · v0.4.5

Ink

Purpose-built static site generator. Write your content in Markdown, bring your own templates, and deploy anywhere.

$curl -fsSL https://raw.githubusercontent.com/aureliushq/ink/main/install.sh | sh

01 · Features

Everything a content site needs, nothing it doesn't.

  1. 1 Markdown contentWrite content in Markdown. Both CommonMark and GitHub-flavored Markdown are supported. Raw HTML passes through untouched.
  2. 2 Bring your own templatesA theme is just base, index, page, list, and single. Override any one or all by dropping a same-named file into a layouts folder — no forking the theme.
  3. 3 Built-in themesInk ships with a few themes. Content is all you need for a presentable site. Reach for your own HTML and CSS only when you want to.
  4. 4 CollectionsRegister a folder as a collection and its index page automatically receives every page inside it to list. Glob patterns scale the same idea to many folders at once. For blog posts, docs, etc.
  5. 5 SeriesGroup posts into a series with a shared id and an order. Ink generates the per-series index and the index of all series for you.
  6. 6 DraftsMark a page as a draft and it stays out of the build until you flip drafts on. Nothing half-finished leaks to production.
  7. 7 CI-friendlyA bundled GitHub Action fetches the release binary and runs the build from your repo root, so publishing on every push is a single line of YAML.
  8. 8 Host anywhereThe output is just HTML, CSS, and assets — no server, no runtime. Ship it to GitHub Pages, Netlify, Cloudflare Pages, S3, or your own box.

02 · Usage

Up and running in under a minute.

Free and open source. One dependency-free binary — no account, no build service. Only an ink.toml and a content directory are ever required.

  1. Install the binary

    Linux and macOS.

    $ curl -fsSL https://raw.githubusercontent.com/aureliushq/ink/main/install.sh | sh

    Or run go install github.com/aureliushq/ink@latest, or download a prebuilt binary for your platform from the releases page.

  2. Add a config file

    Create an ink.toml at the root. No template needed to start — the built-in default theme renders a presentable site on its own. More themes, coming soon.

    [site]
    title       = "My Site"
    subtitle    = "A short tagline"
    base_url    = "https://example.com"
    author      = "Your Name"
    
    [theme]
    name = "default"
    
    [build]
    collections = ["articles", "projects/*"]
    content     = "content"
    output      = "public"
    drafts      = false
    
  3. Add content

    Drop Markdown files into content/. A frontmatter block at the top of each file carries the title, description, tags, draft status, and series position — no sidecar files, no database.

    ---
    title: My First Post
    description: A short summary used in listings and meta.
    tags:
      - go
      - tutorial
    status: published
    created_at: 2025-01-06
    updated_at: 2025-01-06
    published_at: 2025-01-06
    series_id: build-your-own-redis
    series_order: 1
    ---
    
    Your Markdown content goes here.
    
  4. Build and preview

    ink build writes the static site to public/. ink serve previews it locally at http://localhost:8782.

    $ ink build
    
     read      content/   14 pages, 2 drafts skipped
     rendered  → public/
     assets    copied static/
     tailwind  compiled static/main.css
    
    built in 84ms
    
    $ ink serve
    serving public/ on http://localhost:8782
    

The demo/ directory in the repo is a complete working example — or read the full documentation.