Building result.ly: a studio site that checks itself before every release
outcome About 150 KB on a first visit, and every release passes automated accessibility, consent and SEO checks before it can go live.
The brief
We needed a site that makes a business owner confident enough to send an inquiry, and that proves the way we work instead of only describing it. There were no client stories to show yet, so the site itself had to be the evidence: fast, accessible, honest about money, and checked on every release.
Constraints
- Accessible in both themes. WCAG 2.2 AA in the paper and the charcoal theme, at desktop and phone widths, including keyboard use, reflow at 320 px and a pause button for the moving grid in the hero.
- Privacy first. In Europe, Google Analytics loads only after a visitor says yes. Elsewhere it runs without a banner, and anyone can turn it off at any time from the footer.
- Light. No framework shipped to the browser, no photos in the first view, and fonts served from the site itself.
- Nothing built on the server. The server only receives finished files.
Decisions and trade-offs
A static build. Astro renders every page to plain HTML ahead of time. There is no database to patch and nothing to slow down under load. The trade-off: content changes go through a build, which suits a site that changes weekly, not hourly.
Checks that can stop a release. Every push runs three scripts in Chrome before anything is published: an SEO audit (titles, descriptions, canonical links, structured data, robots and sitemap), a consent check (the cookie bar and Google Analytics, inside and outside Europe) and an accessibility check (axe-core in both themes and two widths, target sizes, reflow, text spacing and a keyboard walk). If one fails, the deploy stops.
One page first, a full site second. We launched as a single page in October 2026 and grew it into this site once we knew what visitors needed: service pages, a price signal, and work they can check.
What it runs on
The site is built with Astro and TypeScript. GitHub Actions builds it and runs the checks; the finished files go to a deploy branch that the server pulls. It is served by OpenLiteSpeed. The inquiry form posts to a small PHP endpoint that delivers mail through Google Workspace.
The result
The home page weighs about 150 KB on a first visit. Automated checks in both themes report no accessibility issues, and each release is checked again before it goes out. A person still checks what scripts can’t: screen reader use, zoom by eye and whether the words make sense.
Tell us what you're building.
We'll come back with a clear plan and a fixed quote. No obligation, and no surprise invoices.
Thanks, we've got it.
A senior engineer will reply within one business day to set up a time to scope your project.
Preview only: this form isn't connected yet, so nothing was sent.