Tuzuru static blog generator beta release
I’ve released the beta version (^1) of Tuzuru, a static blog generator (0.1.2). It’s a CLI for people who want to set up a simple blog on GitHub Pages. Since I built it, I’d like to introduce it briefly here.
https://github.com/ainame/tuzuru
Tuzuru is a CLI in the static site generator family, but as it doesn’t aim to support anything beyond blogs, I’m calling it a static blog generator. This post was generated with Tuzuru and is hosted on GitHub Pages with a custom domain.
If you’ve been thinking of hosting a blog on GitHub Pages, I’d appreciate it if you gave it a try. Feedback is very welcome.

(I generated the logo with Gemini)
(^1) Until now I’ve been developing quickly on the main branch, but from here I plan to switch to a lightweight PR-based workflow.
Features
I once tried to revive a Hugo-based blog and gave up, which led me to start building Tuzuru. I’ve designed it to be as simple to use as I can make it. In short:
- Write posts in plain Markdown; intuitive
- No need to learn or remember YAML front matter syntax
 - Instead, post dates and author names are taken from 
git log 
 - Works out of the box with minimal configuration
- Automatically generates the home page plus yearly and category lists
 - Simple layout
 
 - Written in Swift
- Reasonably fast (I haven’t benchmarked it; the places that call git commands may be the bottleneck)
 - On Linux it’s a static binary via the Static Linux SDK, so installation is straightforward
 
 
Demo
Here’s a separate, random AI-generated demo page I’m hosting:
https://ainame.github.io/tuzuru-demo/
Main commands
At the moment the following subcommands are available:
tuzuru- runstuzuru generatetuzuru init- initialises a project by creating the config file (tuzuru.json) and templatestuzuru generate- converts Markdown files undercontents/to HTML and generates listing pagestuzuru amend- a way to change a post’s date and author in Tuzuru later without rewriting Git history (creates a Git commit with a marker)tuzuru import- a simple importer for Markdown written for Hugotuzuru serve- a built-in HTTP server for previews
Also:
- You can create pages that aren’t listed automatically (like /about)
 - Links to X are automatically converted into embedded HTML
 - The built-in preview server supports hot reload
 - CSS cache busting
 - Open Graph tags
 - Automatic generation of 
sitemap.xml - Installation via Homebrew or npm
 
Simple deployment to GitHub Pages
Enable GitHub Pages in your repository settings, then add this to .github/workflows/deploy.yml to deploy.
The ainame/tuzuru repository provides a reusable action for deployment, so you only need two steps: actions/checkout and ainame/Tuzuru/.github/actions/tuzuru-deploy.
name: Deploy
on:
  push:
    branches: [main]
  workflow_dispatch:
permissions:
  contents: read
  pages: write
  id-token: write
concurrency:
  group: "pages"
  cancel-in-progress: false
jobs:
  deploy:
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
      - uses: ainame/Tuzuru/.github/actions/tuzuru-deploy@0.1.2
Summary
It’s simple, but it covers the features I wanted. If you try it and find it useful, a star would be appreciated.
👉 GitHub: ainame/tuzuru