Skip to content
Page still under development; content remains to be added and some bugs need fixing.
Quality and testingLOG-9657

What happens between writing code and it reaching your website

No change reaches production without first going through a chain of automated checks. Here is what they are and why each one is there.

Javier Exposito Martinez2 min read
Featured image for What happens between writing code and it reaching your website

When I make a change to a website, I do not push it straight live. First it goes through a continuous integration pipeline on GitHub Actions that reviews it automatically. If anything fails, the change is not published.

Security first

The first check is that no key or password has slipped into the code (gitleaks) and that the new code does not introduce insecure patterns (static analysis with Semgrep). On top of that, dependencies are scanned every week for known vulnerabilities.

Trusted dependencies

External libraries are always installed at the exact recorded version, and third-party actions are pinned to a specific version. That way, a malicious or broken package update does not slip into your website on its own.

Clean, typed code

Linting, formatting and TypeScript type checking on the frontend and backend, plus dead code detection. These are cheap mistakes to fix when they are caught early.

Tests at several levels

Unit tests for the frontend and backend, API tests against a real database and end-to-end tests with Playwright that walk through the website the way a user would. The end-to-end tests are split across several machines in parallel so the wait stays short. Coverage is measured too, and the pipeline fails if it drops below the set minimum.

Only what was tested gets published

The deployment checks that the code about to be published is exactly the code that passed the pipeline. The frontend is deployed on Vercel and the backend on Fly.io.

What the client gets

Fewer surprises. Bugs are found by a machine before they reach your website, not by your visitors afterwards.

Tags