Skip to content

WorkCase study

MediaVision is a technology and marketing partner for the pharmaceutical industry. I built their bilingual marketing site: a statically exported Next.js front-end fed by headless WordPress, with a delivery pipeline that rebuilds the site automatically on every content change. I delivered it end to end through an AI-assisted engineering process.

Client
Technology and marketing partner for the pharmaceutical industry
Role
Architecture, front-end, DevOps
Year
2026
Stack
Next.js 16 · TypeScript · Tailwind 4 · GSAP · Headless WordPress · ACF · Polylang · Yoast · Contact Form 7 · GitHub Actions
MediaVision website homepage

The tokens this page’s header is built from: colours read from the client site’s stylesheets, the typeface and the button.

Logo

Typeface

Poppins

Headings · 500

Palette

  • Background#0A0A0A
  • Text#FFFFFF
  • Accent#24D46D
  • Muted*#A3A3A3

* I picked the muted grey myself, for a contrast of at least 4.5:1.

MediaVision needed a bilingual (Polish and English) marketing site with product and service pages and a portfolio of past work. The client had to be able to edit the content without a developer, and the site had to be fast and well indexed by search engines.

The Services page of mediavision.pl on a phone: the heading, the intro and the "vision strategy" logotype

I built the site on a headless architecture. WordPress serves as the admin panel: ACF field groups are defined in code as local JSON, Polylang pairs the Polish and English content, Yoast supplies SEO metadata and schema, and Contact Form 7 submissions come through the REST API.

The front-end runs on Next.js 16 with the App Router and is built with output: 'export' to produce static HTML. Every page ships with full Polish and English defaults in code, so it renders correctly even without any content from the CMS. A single routes.ts file is the source of truth for localised routes.

The code lives in a GitHub monorepo. The staging branch deploys to a staging environment and main to mediavision.pl. GitHub Actions builds the static export and transfers it with rsync over SSH to shared hosting, excluding .htaccess.

A small WordPress plugin fires a repository_dispatch event whenever an editor saves content, which triggers an automatic rebuild of staging and production. Robots and indexing settings are driven by an environment variable, so a single WordPress instance can safely feed both a noindexed staging site and an indexed production site.

I re-encoded the hero video from 22 MB to 4 MB on desktop and from 28 MB to 3 MB on mobile. Images moved to WebP with explicit loading, decoding and fetch-priority attributes, and the video’s poster frame is preloaded.

The sitemap is generated after the build. Hreflang, canonical tags and JSON-LD come from Yoast, and the canvas and video sections carry text that search engine crawlers can read. The root path redirects to /pl/ with a 301, and www redirects to the apex domain.

The hero loop of mediavision.pl. On this page it plays at 1080 px without sound: 1.1 MB as WebM (VP9), 1.4 MB as MP4 (H.264).

I ran the whole project as an AI-assisted engineering process with Claude Code: a brainstorm, a written design spec, an implementation plan, parallel subagents building separate pages from Figma frames, a pixel-level audit of every page against the Figma exports in a real browser, and a review loop.

The bilingual content models and translation scripts were generated and verified the same way. AI was not used here as autocomplete, but as part of a disciplined process: spec, plan, review.

Editors publish content on their own, without a developer, and every publish triggers a fresh static build. The site runs in two environments, staging and production, and the front-end itself is fully static, so any host can serve it.

In a Lighthouse measurement on 27 October 2026 the homepage scored 98 for performance on a phone and 99 on a desktop, and 100 for accessibility, best practices and SEO on both.

Phone

Performance
98
Accessibility
100
Best practices
100
SEO
100

Desktop

Performance
99
Accessibility
100
Best practices
100
SEO
100
Lighthouse 13.5.0 on mediavision.pl/pl/, measured on 27 October 2026: a phone (emulated, throttled network and CPU) and a desktop.

A website, a store, or help untangling a process. Send me an e-mail or a message on LinkedIn and I’ll get back to you.

[email protected]