Markdown in, static site out.

inkssg is a small static site generator in Go. Write a page in markdown or HTML, run one command, deploy a folder. No node, no plugins, no config.

go install github.com/snowztech/inkssg/cmd/inkssg@latest
~/my-site · inkssg serve watching
pages/index/content.md
---
title: Ada
---

# Hi, I'm Ada

I make small tools for the
command line, and write
about them sometimes.

[GitHub](https://github.com/ada)
localhost:3000 reloaded

Hi, I'm Ada

I make small tools for the command line, and write about them sometimes.

GitHub

Three commands

That's the whole workflow.

# start a site: ink.yaml and one page
$ inkssg new my-site

# write, with live reload on localhost:3000
$ inkssg serve my-site

# build public/ and deploy it anywhere
$ inkssg build my-site
✓ index → index.html
built 1 pages in 1ms

What you get

One binary. Nothing to configure until you want to.

Markdown or HTML
content.md for prose, content.html for full control.
Frontmatter and ink.yaml
Title and description per page, site-wide data in one optional file.
Your own theme
A layout.html in themes/. Same name as a built-in one replaces it.
Live reload
inkssg serve rebuilds and refreshes the browser when you save.
A Go library
inkssg.Build(".") from your own program. The CLI wraps it.
Assets and static files
assets/ for what pages use, static/ for robots.txt and CNAME.

A site

Only pages/ is required. Each folder becomes a page.

my-site/
├── ink.yaml          optional
├── pages/
│   ├── index/content.md   → index.html
│   └── about/content.md   → about.html
├── themes/           optional
├── assets/           → /assets/...
└── static/           → /

Small on purpose

If you need these, Hugo or Astro are better tools. inkssg will not grow them.

  • Blog features: posts, drafts, RSS
  • Plugins
  • Theme inheritance
  • i18n
  • An image pipeline