Skip to content
adanalifePublic

About

Dana's Blog

Resources

Stars

3 stars

Watchers

1 watching

Forks

Repository files navigation

A Dana Life website

Version License: CC BY-NC-SA 4.0

The source for https://www.dana.lol — Dana's personal site and blog. It's a static site built with Middleman.

Local development

Ruby 3.4 is pinned in .tool-versions (managed with mise):

mise install
bundle install
bundle exec middleman server

The dev server runs at http://localhost:4567.

Common tasks live in the Taskfile (task --list for the full set):

task build          # build the static site
task release:stage  # build + deploy to Cloudflare Pages staging
task release:prod   # build + deploy to Cloudflare Pages production

Deploys

The site deploys to Cloudflare Pages via wrangler. The legacy S3 + CloudFront setup (cloudformation/, the *:s3 tasks) is retained only as a rollback fallback.

Branch flow:

  • main is the only long-lived branch — feature PRs target it and squash-merge (the PR title becomes the commit subject, so it must be a Conventional Commit). Every PR gets a preview deploy at <branch>.dana-lol-staging.pages.dev (see testing.yml), and every merge deploys staging (staging.yml).
  • Releases are cut by release-please, which maintains a standing release PR on main with the next version and CHANGELOG.md entry computed from the conventional commits. Merging that PR tags vX.Y.Z, publishes the GitHub Release, and triggers the production deploy (release.yml).

Contact form

The site is static, but the Cloudflare Worker in worker/ backs the contact page and /ama: POST /contact mails each submission to Dana through a send_email binding locked to that one address. The same worker is the post-from-phone inbox (task post:drain). Deploy it with task post:worker:deploy.

About

Dana's Blog

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages