← Projects
Ink logo

Ink

Markdown-Native CMS

Active Eleventy v3 Node.js Electron React Markdown Open Source

What it is

Ink is a content management system built entirely around Markdown files. No database. No admin panel. Your content is plain text files versioned with Git, built into a fast static site by Eleventy v3, and deployable to any CDN.

The idea came from watching people fight WordPress for sites that didn't need WordPress. Most small business sites, portfolios, and documentation projects need five things: a way to write content, a way to organize it, a design system that doesn't fall apart, a build step, and somewhere to host it. Ink handles the first four and stays out of the way on the fifth.

How it works

The project is a monorepo with four packages:

Package What it does Status
CLI Scaffolds projects, creates content, manages content types v1.0 (stable)
Starter Eleventy v3 template with layouts, components, and design tokens v0.1 (beta)
Desktop App Electron editor with live preview, media management, Git publishing, and AI assistant Alpha
Site Marketing/docs site at get.ink — built with Ink itself Beta

A typical workflow looks like:

npx ink init my-site        # scaffold a new project
cd my-site
npx ink add blog            # add blog content type
npx ink add blog "My Post"  # create a new post
npx ink serve               # start dev server
npx ink build               # build for production

The CLI generates the Markdown file with correct frontmatter, drops it in the right directory, and registers it with the Eleventy collection system. The build outputs a _site/ folder you can deploy anywhere.

Content types

Ink ships with eight content types, each with its own frontmatter schema, layout template, archive page, and directory structure:

Type Use case
Blog Posts with dates, authors, tags, and featured images
Docs Documentation with ordered sections
Team Staff profiles with photos and roles
Services Service descriptions with icons and pricing
Features Product feature pages
Portfolio Project showcases with galleries
FAQ Q&A pairs organized by category
Service Areas Location-based pages for local SEO

Adding a content type is one command — ink add docs — and everything from the directory to the archive page gets created automatically.

Component library

Twelve ready-made UI components ship with the starter template:

Components are Nunjucks includes with scoped CSS. Drop them into any page with a single line.

Design token system

The entire visual identity is controlled through CSS custom properties in a single file. Change one variable, the whole site follows:

:root {
    --color-primary: #2563eb;
    --font-body: 'Inter', sans-serif;
    --spacing-md: 1.5rem;
    --radius-default: 0.5rem;
}

Colors, typography, spacing, shadows, breakpoints — all configurable from one place. No digging through component files.

Obsidian compatibility

The content directory is structured to work as an Obsidian vault. Open your project's content/ folder in Obsidian and you get a rich visual editor, backlinks, graph view, and full Markdown preview — while Ink handles the build and deployment. Obsidian templates are included for each content type.

Desktop app

The Electron desktop app provides a full visual editing environment:

The app is in alpha — core editing and preview work, edge cases are still being ironed out.

Deployment

Ink sites are static HTML. Deploy to anything:

Platform Setup
Cloudflare Pages Connect repo, set build command to npx @11ty/eleventy, output dir _site/
Netlify Same as above, auto-detected
Vercel npm run build, output _site/
GitHub Pages Build in CI, publish _site/

The starter includes pre-configured _redirects and _headers files for Cloudflare and Netlify.

Why I built it

I've set up dozens of sites over 10 years in IT. The same pattern kept repeating: a client needs a site, WordPress is overkill, but hand-coding HTML from scratch doesn't scale either. Ink fills that gap — enough structure to move fast, enough simplicity that there's nothing to maintain.

The content is yours. It's Markdown files in a Git repo. If Ink disappears tomorrow, you still have your content in a universally readable format.


Project resources

get.ink

Official site — features, docs, and getting started guide.

Articles

Design decisions, technical deep dives, and lessons learned.

Source Code

Open source on GitHub — CLI, starter, desktop app, and docs site.