Case study07 / 18

VISARH

Architecture bureau · custom WordPress theme · RO/RU/EN

VISARH is an architecture bureau in Moldova. The design already existed as a React prototype, and my job at RocketSEO was to turn it into a WordPress theme the bureau can edit on its own, in Romanian, Russian and English.

Role
WordPress developer
Period
Jun – Oct 2026
Context
Agency · RocketSEO
Format
Hybrid · Chișinău
  • WordPress
  • PHP
  • ACF Pro
  • WPML
  • Vanilla JS
  • pdf.js
  • BEM
Client code, not public
visarh.mdnot publicA client site without a public link, so there is no screenshot here

The task

The prototype looked finished, but every word and photo was hard-coded in React components. The bureau needed the same pages on WordPress, with projects, services, team and clients managed from the admin and every text translatable.

  • Keep the look and behavior of the prototype page for page
  • Projects, services, team and clients as content the bureau edits itself
  • Three languages without duplicating templates
  • Project documents readable on the page, not only as downloads

What I built

From React to WordPress

  • Ported the prototype page by page into PHP templates with BEM markup and plain CSS on custom properties. Comments in the code point to the React component each part came from.
  • Four post types (portfolio, services, team, clients) and a hierarchical project category with a filter on the portfolio archive.
  • Team members and clients have no single pages, so those URLs redirect with a 301 to the archive.

Content and languages

  • Seven ACF field groups saved as local JSON, plus a theme settings page for contacts, the map and social links.
  • A WPML config for 4 post types, 1 taxonomy, 23 custom fields and 5 option strings, and RO and RU translation files for about 100 theme strings.
  • A small CLI script that rebuilds the .pot file and compiles the .po and .mo files.

Project pages

  • Each project has a gallery with a lightbox, a YouTube video in privacy mode and PDF documents in tabs.
  • PDFs render right on the page with pdf.js. The library loads only when a document tab is opened, and pages render as they scroll into view.
  • Global CSS and JS load everywhere, and each template adds only its own files.

Outcome

content types the bureau edits
4
languages through WPML
3
ACF field groups in local JSON
7

The theme uses no page builder and no jQuery. The JavaScript is six small vanilla scripts for the header, menu, FAQ, project cards, gallery and team modal.