SchmiemanDev
Website
2026-09-13
NL

Talent Solutions 101

Bilingual website for a recruitment agency in Utrecht that places European talent with Australian companies. Seven pages in English and Dutch, a blog the founder runs herself, and a contact form that keeps the spam out.

Next.js TypeScript Tailwind CSS Sanity CMS Formspree Vercel
View live site
Talent Solutions 101

Talent Solutions 101 is a recruitment agency in Utrecht, run by an Australian founder with twenty years in recruiting. They place European candidates with Australian companies that are expanding here. The site had to work for both sides: English for the Australian clients, Dutch for the local market.

What I built

Seven pages — home, about, services, industries, insights, contact and the legal pages — each with English and Dutch copy. The founder writes her own articles in Sanity CMS under four fixed categories, and the site lists them under Insights. The contact form runs through Formspree with validation in both languages and a hidden honeypot field to keep bots out. Every page carries hreflang tags and the sitemap lists both language versions, so Google indexes the English and Dutch pages separately.

The whole thing took 22 working days in May and June 2026, with the language switcher added in September.

Two things worth mentioning

The images. The first version shipped with 3.7 MB PNG hero banners. Nine of the project's 24 commits are image work: converting everything to WebP (the largest banner went from 3.7 MB to 464 KB), then a pass to make the hero text readable on phones, where the photo now sits behind a solid panel instead of a transparent overlay.

Dutch came in two steps. The URL structure was bilingual from the first commit — /en/… and /nl/… — and every page had Dutch copy from the start. But there was no switcher, and every visitor was sent to English. In September I added the switcher, detection from the browser's language setting, and a cookie so the choice sticks for a year. A second pass then fixed grammar and anglicisms in the Dutch copy.

The hard part

Getting the site to match exactly what the client had in mind. The first version was close but not right, and the way through was short feedback rounds: a change, a look, a change. That is where most of the "changed pictures" commits come from. It ended up somewhere we were both happy with.

Stack

Next.js 16 (App Router), Tailwind CSS 4, Sanity CMS for the blog, Formspree for the contact form, Vercel for hosting and analytics.