Changelog

Shipped changes, incidents, and the occasional tease for something coming.

2026-04-18
  • Centralize SQLite settings and expand PRAGMA tuning (WAL, synchronous, cache, mmap, temp_store)
  • Commit alert state before firing notifications so a crash mid-alert can't cause duplicate sends
  • Harden the chromium wrapper with timeouts, /tmp temp files, and --headless=new
  • Redesign alert emails to match the warm-earth site palette
  • Stop wedge-reset from failing a healthy queued backlog of checks
2026-04-17
  • Redesign the whole dashboard with a warm-earth palette โ€” mossy forest green and amber on deep charcoal, Monaspace Argon throughout
  • Rework the property page with live-signals tiles, Lighthouse score cards, styled Chart.js panels, and compact insight tables
  • Add recent-uptime bar strips and rolling uptime percentage to every property row on the dashboard
  • Surface the full Lighthouse performance breakdown โ€” weighted metric tiles and top savings opportunities, ranked by impact
  • Swap the ๐Ÿš€ favicon for a themed SVG tile matching the in-app logo
  • Update the chromium wrapper to also pick up google-chrome so the webdev container runs locally without extra setup
  • Fix logout 405 by switching to a POST form + CSRF (Django 5 LogoutView is POST-only)
  • Refactor the scheduler with thread pools and graceful shutdown
  • Collapse the web and scheduler services into a single container via a Python supervisor in entrypoint.py
  • Replace the Exim relay with a Python direct-to-MX email backend
  • Set PYTHONUNBUFFERED so scheduler output reaches docker logs
2026-04-16
  • Add live crawl/lighthouse status panel with real-time recrawl and rerun buttons
  • Rewrite the SEO crawler in-process using requests + BeautifulSoup โ€” no more Scrapy subprocess
  • Harden the scheduler, alert state machine, and crawl pipeline against races and partial failures
  • Harden the Lighthouse runner and surface failure reasons in the UI
  • Migrate the frontend build from Webpack/Yarn to Vite/Bun
2026-04-09
  • Migrate Python package management from Pipenv/pyenv to uv
2026-04-03
  • Bind the Docker port to localhost only โ€” host should proxy in
2025-06-01
  • Refactor property email templates to share a base
2025-05-31
  • Improve alert system with state tracking and recovery notifications โ€” no more alert spam on flapping sites
2022-07-25
  • Add recrawl button
  • Run crawler weekly on a schedule
2022-07-23
  • Add crawler insights โ€” title, description, canonical, OG tags, H1 extraction per page
2022-07-16
  • Add docker init to handle Lighthouse Chrome zombies
2022-07-15
  • Add check queue to be more resource friendly
  • Add Lighthouse scores
2022-07-04
  • Add properties listing pagination
  • Add properties listing search
  • Improve properties listing UI
2022-06-26
  • Add HSTS monitoring
2022-06-25
  • Add uptime chart
2022-06-19
  • Create status project