My personal site
  • Gherkin 41.4%
  • Ruby 35.9%
  • TypeScript 15%
  • PLpgSQL 3.3%
  • CSS 2.2%
  • Other 2.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Aaron Allen 9e41d9038e
Some checks failed
CI / Features (push) Failing after 6s
CI / Lint (push) Failing after 19s
release: prepare the v26.10.36 release
2026-10-27 15:49:07 -05:00
.claude skills: pick a model per issue and cap helper agents 2026-10-24 10:34:27 -05:00
.config config: pin Node in mise and lock 26.12.1 2026-10-24 08:22:08 -05:00
.github ci: install the vips tools for the photo features 2026-10-24 08:22:18 -05:00
app app: render mermaid fences as pre.mermaid and draw them with mermaid 2026-10-27 14:18:59 -05:00
config record: re-render journal entry HTML with a daily job 2026-10-27 15:04:02 -05:00
docs app: add a history flag to read_memory_file 2026-10-25 18:18:49 -05:00
features app: draw mermaid fences in notes, decisions and artifacts 2026-10-27 15:28:34 -05:00
lib app: draw mermaid fences in notes, decisions and artifacts 2026-10-27 15:28:34 -05:00
public lib: add the Blog::Maintenance middleware and the 503 page 2026-10-16 16:00:10 -05:00
scripts spec: delete the RSpec suite and its gems, tasks and CI jobs 2026-10-24 05:30:35 -05:00
slices record: re-render journal entry HTML with a daily job 2026-10-27 15:04:02 -05:00
.editorconfig Initial commit 2026-09-27 10:36:49 -05:00
.env.example record: re-render journal entry HTML with a daily job 2026-10-27 15:04:02 -05:00
.gitignore spec: add the playwright-bdd harness in features/ 2026-10-23 13:39:28 -05:00
aube-lock.yaml app: render mermaid fences as pre.mermaid and draw them with mermaid 2026-10-27 14:18:59 -05:00
aube-workspace.yaml app: render mermaid fences as pre.mermaid and draw them with mermaid 2026-10-27 14:18:59 -05:00
CHANGELOG.md release: prepare the v26.10.36 release 2026-10-27 15:49:07 -05:00
Gemfile spec: delete the RSpec suite and its gems, tasks and CI jobs 2026-10-24 05:30:35 -05:00
Gemfile.lock spec: delete the RSpec suite and its gems, tasks and CI jobs 2026-10-24 05:30:35 -05:00
package.json app: render mermaid fences as pre.mermaid and draw them with mermaid 2026-10-27 14:18:59 -05:00
README.md spec: delete the RSpec suite and its gems, tasks and CI jobs 2026-10-24 05:30:35 -05:00

aaronmallen.me

My personal website and blog, live at aaronmallen.me: the public blog, an admin behind GitHub sign in, and an MCP server. It is a Hanami app on Postgres, with Sidekiq jobs on Redis.

Setup

You need mise and Docker. mise installs Ruby and every other tool, and runs each task below. Docker runs Postgres, Redis and RustFS from .config/compose.yml.

mise trust
mise run setup

mise run setup writes .env with the values it can fill in on its own, installs the gems, node packages and libvips when Ruby cannot load it, and prepares the development and test databases. To sign in to the admin, add a GitHub OAuth app's pair to .env, as .env.example says. .env.example lists every other variable the app reads.

Development

mise run dev

It starts Postgres, Redis and RustFS, then the server, the worker and the asset watchers. The site answers at http://localhost:2300. mise run dev:stop stops it all.

mise run db:migrate migrates the database and dumps the schema to config/db/structure.sql. mise tasks lists the rest.

Tests

mise run test
mise run lint
mise run format

mise run test builds the assets, starts Postgres if it is down, then runs the Gherkin features in features/, giving each Playwright worker its own server, Sidekiq, database and Redis in Docker.

Docs

  • Backups: the nightly database dumps and how to restore one.
  • Deploy: what the Pi needs to run and build the site.
  • Maintenance: taking the site down for a NAS update and bringing it back.
  • Media store: the photo bucket, its key and libvips.
  • Releasing: the steps to tag and ship a version.
  • Shares: the short links on aa.cool.
  • Writing ADRs: how to write and change a decision record.
  • Decision records: every decision behind the code.