Engineering System
Tests
Vitest covers the business logic and Playwright covers the public pages, admin login and client rooms. TypeScript runs in strict mode, so type errors fail the build.
Docker
The database, the app and the CI steps all run in Docker. One command starts the full stack locally, and Railway deploys the same multi-stage image to production.
CI/CD
GitHub Actions checks the schema, migrations, seed, types, unit tests, build, Docker image, end-to-end flows and accessibility on every pull request. Railway deploys main only after all of it passes.
Code structure
Business logic lives in feature modules, not in page files. Pages stay thin, so a change happens in one tested place.
Written decisions
Each significant technical decision gets a short written record: the context, the choice and the trade-offs. The next engineer can see why the code looks the way it does.
Progress updates
My larger projects have public milestones and a dated build log. Clients can also get a private link to their own project's milestones and updates.