Professional engineering
The checks behind the features
Here’s a look at some of the work behind Recap Raven: how we test changes, review code and monitor the service. These are practices I’ve built up over my engineering career and put to use in a product my own table relies on.
4 review personas
AI-assisted QA, engineering, security and simplicity reviews, plus a fresh-context final review.
76 configured CI checks
Configured checks include SonarQube, linting, tests and security scans.
12,000+ automated tests
Unit, contract and browser tests across our services.
Release checks
Build, smoke tests and container scans before publishing.
Monitor and improve
Service health, alerts and performance dashboards guide continual improvement.
12,000+
automated tests
Across the API, website, Discord bot and recording services. Tests check individual decisions, connected workflows and the boundaries that keep campaign information private.
A recap can look right while a permissions mistake exposes a private note, or a later change breaks an import that worked last week. We test those underlying behaviours as well as what you see on screen.
Our continuous integration (CI) checks run against proposed changes before release. They combine automated tests, code analysis, security scans and focused reviews. Software tests check that the product behaves as intended; AI evaluation separately examines whether it preserves what happened in your game.
- Campaign isolation
- Permission tests check that users cannot access another campaign’s private records, with separate checks for GM, player and administrator access.
- API contract tests
- We check API responses against their specification, including failures. Automated checks keep routes, documentation and test coverage aligned.
- Browser testing
- Playwright tests desktop and mobile journeys, including error states and accessibility. Coverage checks flag pages missing browser tests.
SonarQube, code analysis and security checks
SonarQube analyses code and test-coverage reports, with a quality gate checked by CI. Alongside it, type checks and linters catch mistakes before the software runs. Dependency, secret and container scans look for known vulnerabilities or sensitive information that should never be committed. Security testing also exercises a running test application.
These checks answer different questions. A test can show that a feature works for a particular case; code analysis can highlight a risky pattern the test did not exercise. We use both, and investigate failed checks rather than weakening them to get a green result.
Monitoring after a feature ships
Health checks and alerts help us notice when a service is unavailable or processing needs attention. We use incidents, support conversations (with consent) and regression tests to improve the next change, rather than treating deployment as the end of the work.
Join our Discord community and help shape the future of Recap Raven. Every table is different, and we’d love to hear what works for yours, what gets in the way and what you’d like us to improve.
You can check our service status at any time. Growth helps us build on these foundations. We continually review resilience, recovery, security and performance, alongside how efficiently and sustainably we run the service. Our roadmap keeps that work moving as more tables use Recap Raven, guided by what matters most to the people relying on it.
