01 About the project
GKN Portraits is the website of a Freiburg photo studio specialising in application and business portraits. The core isn’t a brochure page, it’s a booking: pick a package, click a free slot, leave your details — three steps, confirmation by email, cancellation link included. That removes the phone calls about open slots, which take up most of the admin work on short shoots.
Technically the site runs on Next.js 16 with React 19 and Tailwind 4. Fifteen languages with translated URLs cover who actually needs an application photo in Freiburg — including a right-to-left layout for Arabic. Prices come in two lists (private and business), because what differs isn’t the work but how the picture is used.
The interesting part is behind the scenes: the studio runs two brands — portrait and wedding — but there is one room and one schedule. Both websites therefore book into the same calendar, and every booking records which brand it came through. A database index makes sure the same slot is never confirmed twice. Everything is managed from a shared admin area with passwordless one-time-link login.
02 Highlights
- 01
Three-step online booking with confirmation email and cancellation link
- 02
One studio calendar for two brands — double booking ruled out at database level
- 03
15 languages with translated URLs, including RTL layout for Arabic
- 04
Two price lists (private / business) with three packages
- 05
Local landing pages for the towns around Freiburg
- 06
Guide section on clothing, process and picture selection
- 07
Passwordless login for the admin area (one-time link, JWT cookie)
- 08
Around 285 indexable URLs with hreflang, JSON-LD and its own sitemap
03 Tech stack
- Next.js 16
- React 19
- Tailwind 4
- next-intl
- PostgreSQL
- Drizzle ORM
- TypeScript
- Docker
Interested in
working together?
Let’s make your next project a success together. I look forward to hearing from you.
Get in touch