Skip to content

Next.js in Germany

Next.js development services for German companies

A Next.js development company working with German teams. The BFSG made accessibility a commercial obligation, and German compound words break more layouts than any other language we build in.

Two things make German builds different from everything else on this list. One is regulatory and recent. The other is typographic and permanent.

The BFSG is a shipping requirement now

The Barrierefreiheitsstärkungsgesetz - Germany's implementation of the European Accessibility Act - has applied since June 2025, and it reaches private-sector e-commerce rather than only public bodies. For most online shops that is the first time accessibility moved from a nice-to-have into something with a deadline attached.

The technical standard everyone converges on is WCAG, and for an App Router application the failures cluster in three places that have nothing to do with alt text:

Focus on client-side navigation. A <Link> transition updates the DOM without a page load. If nothing moves focus and nothing is announced, a screen reader user has no idea the page changed. This is the single most common App Router accessibility defect we find, and it is invisible to automated scanners.

Loading states that announce nothing. A loading.tsx that renders a spinner is a visual signal only. Without a live region it is silence. We wrote about why this file is misunderstood.

Forms rendered by Server Actions. Validation errors that appear after a round trip need to be associated with their inputs and announced. The pattern is not hard, but the default implementation does not do it for you.

Separately, German sites carry an Impressum obligation - a legally required imprint with named, reachable company details. It is a content requirement rather than an engineering one, but it needs a real route with a real canonical, not a modal.

German breaks your layout before any other language

This is not an opinion. We hit it building this site, twice, and measured it both times.

WEBANWENDUNGSENTWICKLUNG is one token. At the size we were setting service labels it needed 265 pixels and the grid column it sat in was 256. There is nothing inside the word to break at, so CSS did the only thing it could: it made the column wider, which pushed the row wider than the viewport and produced a horizontal scrollbar on every mobile screen.

The failure mode is worth understanding because it is counter-intuitive: an auto-sized grid track cannot shrink below its content's minimum width. A max-width on the child does nothing. The fix is min-w-0 on the grid item, plus an explicit break strategy on the text, and the only way to know it worked is to render the page at 320 pixels and measure.

hyphens: auto is not the answer on its own - without a hyphenation dictionary loaded for the language it does nothing at all, silently. We run a script that renders every page at seven widths in a real browser and fails the build on horizontal overflow, because reviewing German layouts by eye does not work.

If your site has a German locale and nobody has measured it at 320px, there is a good chance it is broken right now.

Typical engagements

German clients come to us most often for performance engineering and technical SEO, and increasingly for accessibility work inside maintenance and support. Where there is an older Pages Router application, migration and rescue is the route, and it starts with an audit so the estimate is based on the codebase rather than on a call.

Frequently asked questions

Do you work in German?
No. Engagements, documentation and support run in English. This site is published in German, but we will not claim a working language we do not have - a German-language thread that goes unanswered is worse than an honest answer now.
Does the BFSG apply to us?
Your lawyer answers that. What we can say is what changes in the code if it does, and it is not alt text: focus that does not move on client-side navigation, a loading state that announces nothing, and Server Action validation errors that are never associated with their inputs.
Our German pages look fine. Why would they break?
Because nobody has looked at them narrow. WEBANWENDUNGSENTWICKLUNG is one token needing 265 pixels; the column it sat in was 256, and an auto grid track cannot shrink below its content. That produced a horizontal scrollbar on every phone and was invisible at desktop width.