Nicojuhari logoNicojuhari
All work

Handwerker Netz

A bilingual website for a Vienna handyman business I co-own - built to be found on Google and Google Maps, with no backend to run.

Role
Co-owner, engineer and marketer
When
2026 - now
  • Next.js 16
  • React 19
  • TypeScript
  • next-intl
  • MDX
  • Tailwind CSS
  • Vercel
indexable pages, DE + EN
75+
Google impressions in 3 months
39.5k
clicks from Google in 3 months
625
Google reviews
30

The problem

A small handyman business in Vienna lives on people searching "furniture assembly Vienna" and calling. The website has to rank for dozens of services in German and English, load fast on a phone, and turn a visit into a message.

What I built

  1. Pages from data

    Each of the 15 services is one typed data file with both languages. The pages, the sitemap and the structured data are generated from it, so a new service is one file. German has no URL prefix and every path is translated (/leistungen/moebelmontage, /en/services/furniture-assembly).

  2. SEO in the code, not in a plugin

    Structured data for the business, services, prices, FAQs and how-tos. Hreflang and canonical URLs on every page. About 170 permanent redirects keep old URLs alive after each restructure, so no search ranking is lost.

  3. A small image pipeline

    A script converts photos to WebP, fixes rotation, strips location data from the files and records each image's size, so pages don't jump while loading.

  4. No backend on purpose

    The quote form builds a message and opens WhatsApp, with email as a fallback. No server, no database, no spam to filter - and clients reply where they already are.

Trade-offs

  • Static pages everywhere: nothing to maintain at night, and fast on any phone.
  • A blog in MDX with small React diagrams, instead of a CMS. One fewer service to pay for and keep up to date.

What I’d do next

A small request manager that collects the WhatsApp and email requests in one place - planned as a separate app.

Want to see the code?

I’m happy to walk you through it in an interview.

Next case studyEPUfix