Cabinetul de Traduceri: full-site rebuild, from invisible brochure to multilingual, SEO-ready (June 2026)
Full rebuild for an authorized translation office: from a non-responsive 2010 brochure invisible to Google, to a multilingual, accessible, SEO-ready Next.js site. Every result measured, not estimated.
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS
- next-intl
- Vercel
Challenge
Cabinetul de Traduceri is an authorized translation office operating since 2007, with offices in Constanța and Călărași. It had customers and a reputation. What it did not have was a website that reflected either.
The old site was a brochure built on a 2010-era template: fixed width, a sidebar menu, a stock photo and a paragraph of text. Three problems were quietly costing it customers:
- It did not work on a phone. The page didn't even have a
viewporttag. On mobile, the entire desktop layout was crammed onto the screen in microscopic text. And most people searching for "authorized translations Constanța" search from a phone. - It was invisible to Google. No structured data, no canonical URLs, no Open Graph, six
H1tags on one page and zero internal links. Technically, it was exactly what a search engine ignores. - It spoke one language. A translation office serves foreign customers by definition. The site existed only in Romanian.

Solution
We rebuilt it from scratch rather than patching it. The decisions that mattered:
- Mobile-first, genuinely responsive. A layout designed for the phone first, with large, clear actions: Call now and WhatsApp one tap away.
- Multilingual, because that is the product. Six fully translated languages (RO, EN, FR, ES, IT, UK) with per-page hreflang. 467 keys × 6 languages is over 2,800 translated strings, automatically checked to stay at parity. A translation office should speak its customers' languages.
- Built to be found. Nine schema.org structured-data types, self-referential canonical URLs, Open Graph with build-time generated images, a sitemap, and a localized content library (160+ pages) targeting translation, legalization and apostille queries.
- Accessible by construction. Skip link, labelled
<main>, ARIA attributes,aria-liveforms andprefers-reduced-motionsupport. - Conversion, not just presence. WhatsApp and phone contact, a quote-request form protected by Turnstile (fail-closed), a persistent contact bar, and a "no lost leads" guarantee: the request is captured durably, and if email fails there is a WhatsApp fallback.
- One detail beyond the brief. A server-side power-of-attorney PDF generator with correct diacritics and the legal wording stored as testable data. Not a brochure, a tool.

Results
Every number below is measured across the two sites, not estimated.
- Mobile: no
viewport, unusable on a phone → fully responsive - Accessibility (Lighthouse): 64 → 100
- Languages (hreflang): 1 → 6 (plus
x-default) - Structured data: 0 → 9 schema.org types across the site
- Open Graph / social cards: none → complete, with auto-generated images
- Canonical URLs: none → on every page
- H1 tags: 6 (wrong) → 1, with a correct hierarchy
- Internal links (homepage): 0 → 36
- Engineering quality: 200+ automated tests (Vitest + Playwright) on every push; CSP plus 6 security headers; strict TypeScript

An honest note about speed: the new site does far more than the old one (content, maps, multilingual support, structured data), so it isn't "faster" than a 7 KB brochure. Mobile performance tuning is the next planned step. We would rather say that than inflate a chart.
Stack notes
Next.js 16 (App Router) with React 19, strict TypeScript, Tailwind for styling, next-intl for internationalization, MDX for content, hosted on Vercel. All business content comes from a single typed source, so the interface and the structured data (JSON-LD) cannot drift apart. The code refuses on principle to invent reviews or ratings the business doesn't have. The same discipline we applied to this case study: only numbers we can measure.