Skip to content

feat(seo): guides hub with Hallstatt less-crowded-alternatives article (en/de/es/fr)#21

Merged
Manuel10i merged 1 commit into
mainfrom
feat/guides-hub-hallstatt
Jul 6, 2026
Merged

feat(seo): guides hub with Hallstatt less-crowded-alternatives article (en/de/es/fr)#21
Manuel10i merged 1 commit into
mainfrom
feat/guides-hub-hallstatt

Conversation

@Manuel10i

Copy link
Copy Markdown
Owner

Data-backed crowd guides hub + first Hallstatt article

Adds a new /guides hub and its first article, "5 Less Crowded Alternatives to Hallstatt (2026)", localized in English, German, Spanish and French.

What this is

  • A guides hub (/guides) and article template (/guides/[slug]) driven by an editorial registry in src/lib/guides.ts. Each guide names a target destination and a curated list of genuinely calmer alternatives (Cesky Krumlov, Colmar, Karlovy Vary, Eger, Mostar), all real entries in our 729-destination dataset.
  • The first guide contrasts Hallstatt with 5 similar lake-and-mountain heritage towns that stay below its crowd level year-round.

Crowd figures are computed, not hand-typed

  • Every crowd figure shown (busiest month, quietest months, "calmer every month" badge) is computed at build from the real dataset via services/destination-busyness, the same model behind the map and destination pages. Nothing is a hand-typed number.
  • The only fixed figures are the widely reported "up to 10,000 visitors a day vs ~750 residents" for Hallstatt, kept verbatim in the copy. Per-destination descriptions stay qualitative (no fabricated visitor counts).

Localization quality

  • de/es/fr copy was authored with correct native diacritics (German umlauts and ss, Spanish accents plus inverted question marks, French accents and cedillas), matching the orthography already used across the rest of src/messages. No ASCII-stripped transliteration ships.
  • German uses formal "Sie", Spanish informal "tu", French formal "vous", consistent with the existing site copy.
  • No em-dashes or en-dashes anywhere in the new copy.

Local verification

  • npm run lint: passes, 0 errors (guides files clean; only a pre-existing unrelated coverage warning).
  • Type check: next build runs Next.js type checking and completed with no type errors. (No standalone typecheck npm script exists in this repo.)
  • NODE_OPTIONS="--max-old-space-size=1536" npm run build: passes, exit 0. Both /guides and /guides/[slug] routes are emitted.
  • Confirmed all 5 alternative slugs resolve in the dataset: cesky-krumlov -> CZ-CESKY-KRUMLOV, colmar -> FR-COLMAR, karlovy-vary -> CZ-KARLOVY-VARY, eger -> HU-EGER, mostar -> BA-MOSTAR.

The i18n strings were injected by a throwaway script that is not part of this PR (deleted before commit); only the 7 feature files are included.

@Manuel10i Manuel10i merged commit 73c6bb7 into main Jul 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant