Skip to content
LABS
Cabinetul de Traduceri2026June 2026

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 viewport tag. 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 H1 tags 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.
Left: the old site. Right: rebuilt from scratch.

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-live forms and prefers-reduced-motion support.
  • 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.
On a phone: the old site showed a shrunk desktop layout. The new one is built for the small screen.

Results

Every number below is measured across the two sites, not estimated.

Accessibility (Lighthouse)

Before

Score of 64

After

100

Score of 100

Languages (hreflang)

Before

1, Romanian only

After

6

6 languages plus x-default

Structured-data types

Before

0 schema.org types

After

9

9 schema.org types

Internal links (homepage)

Before

0

After

36

36

Every figure 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
Before → after, in a few seconds.

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.

Share

Tell us what you're building.

Book a call

Pick which categories of cookies you're OK with. You can change this any time from the footer.