Skip to content
Examples

Site observability

status.arc42.org

Usage statistics and uptime monitoring for arc42's websites.

Main goal
Give every arc42 family site an honest, self-monitoring status page — one that says so when its own data goes stale, instead of failing silently.
Business domain
Site observability
Size
9 arc42 family sites monitored · single maintainer · in production since 2023
Strategic decisions
  • Independent external prober, not an in-process watcher
  • Plausible.io for cookie-free usage stats
  • Turso for durable snapshots and heartbeats
  • Go backend behind a static Jekyll shell
Technologies
  • Go
  • Jekyll
  • Fly.io
  • Turso
  • Plausible.io
  • Slack

status.arc42.org

status.arc42.org watches the rest of the arc42 family — arc42.org, docs.arc42.org, examples.arc42.org and the other sites and subdomains — and publishes two things about each of them: how many people are visiting, and whether the site is actually up.

The system is a working instance of the architecture it advocates: a small Go backend on Fly.io, wrapping four external APIs (Plausible, GitHub, Fly.io, Slack) behind one domain layer, backed by a Turso database for the little state it needs to keep. An external cron trigger — not a GitHub Action, and not an always-on process inside the monitored system itself — probes every site every 15 minutes, confirms failures before recording them, and alerts Slack when one goes down.

Where MaMa-CRM and HtmlSanityCheck each document a finished system, this one documents itself while still being built: twenty architecture decision records track the reasoning as it happened, several revised in place as the design changed. Section 9 reproduces all twenty in full.

The documentation

  1. 1 Introduction and Goals
  2. 2 Architecture Constraints
  3. 3 Context and Scope
  4. 4 Solution Strategy
  5. 5 Building Block View
  6. 6 Runtime View
  7. 7 Deployment View
  8. 8 Cross-cutting Concepts
  9. 9 Architecture Decisions
  10. 10 Quality Requirements
  11. 11 Risks and Technical Debt
  12. 12 Glossary

Start reading →