Skip to content

anna-ssg/anna

Repository files navigation

Anna

/ɐnːɐ/ is a Kannada word for 'rice' 🍚

Inspired by Hugo and Saaru. Anna is a lightning fast static site generator written in Go, designed for simplicity and ease of use. With a focus on performance and minimal configuration, Anna lets you to create beautiful static websites with ease!

    ___
   /   |  ____  ____  ____ _
  / /| | / __ \/ __ \/ __ `/
 / ___ |/ / / / / / / /_/ /
/_/  |_/_/ /_/_/ /_/\__,_/

A static site generator in go

Get Started!

GitHub Repo Stars Anna Docs Test Workflow Go Reference

To setup your site, follow our quick-start guide to download Anna

Deploy Your Site

Anna ships as a single static binary, so most hosts deploy it the same way: fetch the anna release binary, run it to generate site/rendered, then publish that folder. No Go toolchain needed on the host's end.

Netlify

  1. Push a repo containing your site/ directory
  2. Copy deploy.sh and netlify.toml into it
  3. Connect the repo on Netlify — build command and publish dir are picked up automatically from your netlify.toml file

Cloudflare Pages

  1. Connect your repo on Cloudflare Pages
  2. Build command: bash deploy.sh
  3. Build output directory: site/rendered

GitHub Pages

  1. Settings → Pages → Source: GitHub Actions
  2. Look at the Build and Deploy workflow from our Actions tab
  3. deploy.sh fetches a Linux_x86_64 release binary, which matches the default Linux runners on all three platforms above.

Contributing to Anna

If you have git installed, clone our repository and build against the latest commit

git clone github.com/anna-ssg/anna
cd anna
make build

make build automatically wires up a pre-commit hook (tracked in .github/githooks/) that runs, in order: gofmt check, lint (go vet + golangci-lint if installed), audit (govulncheck if installed), the test suite, golangci-lint and govulncheck are optional; the hook skips those steps with a hint if they aren't installed.

You can also install the hook explicitly, without doing a full build, by running:

make install-hooks

If you ever need to skip it (e.g. a WIP commit), use git commit --no-verify.

Developer Guide

Detailed documentation for developers can be found here

History

This project was a part of the ACM PESU-ECC's yearly AIEP program, and is maintained by Adhesh Athrey, Nathan Paul, Anirudh Sudhir, and Aditya Hegde

About

A lightning-fast static site generator written in Go

Topics

Resources

License

Stars

Watchers

Forks

Contributors