Engineering

Bilingual by design, not by translation

A second language added at the end is always visible. Built in from the route map up, it disappears.

5 FEB 2026 · 5 MIN

IThe late-translation tell

You can spot a retrofitted second language in seconds: buttons whose labels overflow, a language switch hidden in a dropdown, and a switch that drops you on the home page instead of the page you were reading.

All three come from the same cause — the second language was treated as a copy of the first rather than as its own thing.

IIStart with the route map

Every page gets a real path in both languages, and the mapping between them is data, not string surgery. `/work/ultimate/` and `/bs/rad/ultimate/` are two entries in one table; a localised segment and an unlocalised slug both survive the trip.

That table then feeds navigation, the switch, prerendering, the sitemap and hreflang. One source, no drift.

IIIDesign to the longer language

Bosnian runs meaningfully longer than English. Size buttons, nav items and cards against the longer string and the shorter one always fits; do it the other way and you spend the project shortening copy to protect a layout.

Same for the type: pick faces that carry č, ć, ž, š and đ in every weight you use, and check them at display size, where a badly drawn caron is obvious.

IVNever guess for the visitor

Do not auto-redirect on browser language or IP. Show both languages, remember the choice, and keep it. A visitor who picked English is telling you something; overriding it on the next visit is the clearest way to look automated.

Writing
12 MAR 2026

Static does not mean simple

Prerendering every route removes the server without removing the experience — what you give up, what you do not, and where the line actually falls.

ENGINEERING · 6 MIN
2 MAR 2026

When a business needs a system, not a site

The point at which a booking form stops being enough, and what replaces it.

STRATEGY · 7 MIN