This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
TripGazer is a personal travel blog built with Eleventy (11ty) static site generator. The site is deployed at https://www.tripgazer.com/
npm run dev # Start development server with live reload
npm run build # Build static site to _site/
npm run start # Alias for dev server
.eleventy.js - Main config file with plugins, filters, collections, and build settings.nvmrc and netlify.toml)_site/post/ - Blog posts, each in its own directory with format post-slug/post-slug.mdpost-slug/images/ subdirectorypages/ - Static pages (about, contact, privacy, destination landing pages)_includes/layouts/ - Page layouts (base.njk is the main template, post.njk for articles)_includes/components/ - Reusable components (head, footer, nav, author boxes)_includes/assets/ - CSS/JS assets_data/metadata.json - Site metadata (title, description, URL)_data/env.js - Environment configuration_data/tipping.js - Resolved tipping dataset for the tipping calculator_data/tipStrings.js - Tipping calculator UI copy (EN + DE)_data/fx.js - Exchange rates, fetched at build time with a checked-in fallbackLives at /tip-calculator/ (EN) and /de/trinkgeld/ (DE), plus one landing page per
country at /tip-<slug>/ and /de/trinkgeld-<slug>/.
To change tipping guidance, edit lib/tipping/ — not the templates:
lib/tipping/profiles.js - Tipping-culture profiles; each country points at onelib/tipping/countries.js - The country table, plus per-country overrides and noteslib/tipping/landing.js - Intro + FAQ copy; a country only gets a page if it's listed herelib/tipping/fx-fallback.json - Rate snapshot used when the build-time fetch failslib/tipping/timezones.json - IANA timezone → country, for detecting the visitor's locationFlat amounts (per night, per bag) are written once in USD in profiles.js and converted
to local currency at build time, so they never need updating per country.
Run ELEVENTY_SKIP_FX=1 npm run build to skip the exchange-rate fetch during local work.
@11ty/eleventy-navigation - Navigationeleventy-plugin-lazyimages - Lazy loading images (generates .lazyimages.json cache)@aloskutov/eleventy-plugin-external-links - External link handlingeleventy-plugin-embed-instagram - Instagram embedscategoryList - All unique categories from postsauthors - Posts grouped by authorevents - Posts with location datacssmin filter)jsmin filter)static/img/ - Site imagespost/*.jpg and post/**/images/*.jpg - Post imagesfavicon.ico, manifest.json, ads.txt, push-worker.jsFocus areas:
Avoid (too competitive):
{.center} class: {.center}