Back to projects
Astro reference · own project

codeaeffchen.de – our own website, built with Astro

More than 400 pages in two languages, two domains from a single build, served as finished HTML from ordinary web hosting. What we recommend to clients, we run here ourselves – and measure it in every pull request.

Technology Astro 7 · Tailwind CSS 4
Lighthouse mobile 99–100 in every category
Languages German · English, one domain each
Home page of codeaeffchen.de

Project info

type
Own project
service
Concept, development, operation
technology
Astro 7, Tailwind CSS 4, TypeScript
scope
More than 400 pages in German and English
status
Live on codeaeffchen.de and codeaeffchen.com

What it is about

Our website is mostly content: 68 in-depth articles, 69 glossary terms and 15 tools – each in German and English, on two domains. We maintain it ourselves, in Markdown and Git. A CMS with logins, plugins and security updates would only have added upkeep without doing anything we need.

Hence Astro: every page is built ahead of time as finished HTML. PHP runs on the server only in the two places that truly need it – the contact form and the HTTP status checker. Everything else is static and sits on perfectly ordinary web hosting.

How the site is built

Two domains from one build

A single Astro build produces every page in both languages. A custom script then splits the output onto codeaeffchen.de and codeaeffchen.com, strips the /en/ prefix from every link on the English domain and rewrites sitemaps and robots.txt to match. Every page knows its counterpart in the other language (hreflang).

Content with a schema

Articles live in a content collection. The build itself checks title and description length and the mandatory summary – an incomplete article never goes live. Articles dated in the future appear on their own: a daily early-morning build publishes them.

One source for every figure

Prices, navigation, footer, the llms.txt for AI systems and the tools overview are generated from data files. When a price changes, it changes in one place – and everywhere on the site.

Analytics without a cookie banner

Matomo runs without cookies and respects Do Not Track, fonts are self-hosted. The site therefore shows no cookie banner.

What is checked before every change

A static site can't crash – but it can break quietly: a link to nowhere, a missing section, a page that no longer works on a phone. So before any change goes live:

  • Completeness: Does every page have a title, heading, description and text? If a required section is missing, the check fails.
  • Links: Every internal link in the build is checked for targets that don't exist.
  • Accessibility: axe-core checks 47 page types against WCAG 2.0/2.1 A and AA plus best practices – at two screen widths, with and without animations.
  • Lighthouse: Five pages are measured three times each on mobile. If accessibility drops below 95, the change is not accepted; performance, best practices and SEO below 90 raise a warning.
  • After upload: A second check runs against the real domains: pages reachable, content complete, form and status endpoint responding as expected.

Measurements

Lighthouse, mobile view on a throttled connection, median of three runs. Measured 10 October 2026.

Lighthouse scores of codeaeffchen.de, mobile, measured 10 October 2026
Page Performance Accessibility Best Practices SEO LCP
Home 99 100 100 100 2.0 s
WordPress maintenance 100 100 100 100 1.7 s
Article 100 100 100 100 1.7 s
Contact 100 100 100 100 1.7 s
HTTP status checker 100 100 100 100 1.7 s

These are lab figures from our automated checks, not measurements from real visitors. They show the site gives nothing away technically – how fast it loads for you also depends on your device and connection.

Stack

Framework
Astro 7, TypeScript
Styling
Tailwind CSS 4
Content
Markdown, content collections
Tests
Playwright, axe-core, Lighthouse CI
Server-side
PHP 8 (contact form, status checker)
Deployment
GitHub Actions, two domains

Planning an Astro website?

New build or moving off WordPress: in a first call we show you what Astro brings to your site – and where it doesn't fit.

See our Astro agency page

Prefer to talk? +49 9163 6791505 (Mon–Fri, 8 am–6 pm CET)