Skip to content

Behind the scenes

How this site is built

This website is deployed the same way we deploy client projects. Here's the setup.

Architecture

From a push to a live page

A push to the main branch on GitHub triggers GitHub Actions, which lints, tests, builds and audits the site, then deploys over SSH to a Linux server. The server keeps each release in its own directory and switches a current symlink; visitors reach it over HTTPS. Monitoring and backups watch the server. Developer git push main GitHub repository GitHub Actions lint · test · build · audit Linux server releases/ → current Visitors HTTPS Monitoring uptime · backups SSH deploy

Application

Laravel version, Blade templates and a hand-written stylesheet built on our design tokens.

Server

Ubuntu / AlmaLinux on VPS / AWS EC2, Nginx + PHP-FPM.

Delivery

GitHub Actions builds, tests and deploys over SSH.

Releases

Each deploy goes into a new releases/ directory; a current symlink switches only after the build succeeds.

Protection

HTTPS via Let's Encrypt, security headers (CSP, HSTS), daily backups.

Deployment pipeline

Every push, the same six steps

A failure at any stage stops the release, and the live site keeps running the previous version.

  1. Lint

    Laravel Pint checks code style.

  2. Test

    The test suite runs against a fresh database.

  3. Build

    Frontend assets are compiled and versioned.

  4. Audit

    Lighthouse CI fails the build if scores drop below the threshold.

  5. Deploy

    Files sync to a new release directory over SSH; migrations run; the symlink switches.

  6. Verify

    A health check confirms the new release responds; otherwise it rolls back.

Measured

Check our numbers yourself

Each figure links to the tool that measured it.

—Lighthouse performanceMeasured after launch
—Security headers gradeMeasured after launch
—Average deploy timeMeasured after launch
—Uptime, last 90 daysMeasured after launch

Next step

Have a project, or need an extra engineer on your team?

Tell us what you're building. We reply within one business day.