Custom blog engine written in Go.
- Main page lists all blog posts in reverse chronological order.
- Posts can be tagged.
- Sidebar (can be positioned on the left or right) - includes tag cloud, search field, list of 5 most recent blog posts.
- Tag cloud lists all tags. Selecting a tag lists all blog posts with that tag.
- Light and dark themes. Selected automatically according to the system setting, but also can be toggled by the user.
Run the blog (serves on http://localhost:8080)
./blog.sh -serve./blog.sh -build./blog.sh [options]Flags take predecence over options specific in the configuration file.
| Flag | Description | Default |
|---|---|---|
-build |
Build the blog | true |
-serve |
Build and serve the blog | false |
-config |
Path to config file | config.yaml |
-port |
Port to serve on | 8080 |
Edit config.yaml to customize:
- Site title, description, URL
- Posts per page
- Sidebar position and content
- Theme selection (light/dark)
# Build the blog
./blog.sh -build
# Build and serve locally
./blog.sh -serve
# Serve on custom port
./blog.sh -serve -port 3000| Directory | Contents |
|---|---|
bin/ |
Compiled binaries for different platforms |
content/ |
Blog posts (Markdown files) |
public/ |
Generated blog output |
src/ |
Go source code |
static/ |
Static assets (JS, images) |
themes/ |
HTML templates and CSS themes |
- Go 1.26+
The build.sh script builds binaries for macOS (Silicon) and Linux. The Linux build is intended for
used in CI/CD environments. To build for other platforms, uncomment the relevant lines in the build
script.
# Build all platform binaries
./bin/build.sh