Skip to content
Worldmade Studio
en / ro
Live projectFitness & Personal Training · 2026

A static HTML site migrated to a real Next.js foundation, with the visual identity kept intact.

Overview

A personal trainer's site, migrated from a single hand-built HTML file to a proper Next.js application without changing how the site looks or reads to a visitor.

The existing site worked, but its single-file structure had no path forward — no type safety, no component reuse, and no realistic way to add the six-language support the client needed.

Challenge

A real coaching session, Cluj-Napoca.

A close crop of the real training photo from the Crișan Daniel site — a coaching session in a Cluj-Napoca gym.

Approach

Rebuilt the entire technical foundation — routing, components, a real internationalization system, a theme toggle — while holding the existing visual design fixed as the spec, then verified the result by actually clicking through it rather than trusting a clean build.

The site, as built

The Crișan Daniel services section on desktop — four cards describing one-to-one training, online coaching, a nutrition plan and group sessions.

Design & Development

A six-language system built from scratch
Romanian, English, Hungarian, French, Spanish, and German, switchable client-side with no layout reflow between languages.
A theme toggle that respects the visitor's system preference
Light and dark modes, persisted across visits, defaulting to whatever the visitor's system already prefers until they choose otherwise.

Technical Decisions

A bug only real interaction testing could catch
A security header shipped in an earlier pass was silently blocking every interactive script on the site — the build stayed green and every type check passed, because neither checks whether a click actually does anything. Caught only by clicking through the live site.

Results

Initial page weight

2237 KB514 KB

The original single-file site shipped 2.2 MB on first load, nearly all of it unoptimised imagery; the rebuilt site ships 514 KB. Median of three loads, cache disabled.

Cumulative Layout Shift

~0

Measured on the rebuilt site. Largest Contentful Paint is deliberately not claimed here — the original was only measurable from local disk, and comparing that against a live site over the network would flatter the result rather than describe it.

Role
Architecture, Development, Migration
Stack
Next.js, TypeScript, Tailwind CSS
Year
2026
Industry
Fitness & Personal Training
Visit live project →