Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Astro theme for local businesses — one config file, local SEO built in, GDPR-ready.
Chalet is an Astro theme for local businesses that turns a single TypeScript config file into a static, SEO-optimized, GDPR-friendly website in one command.
Chalet is a free, MIT-licensed Astro theme built specifically for small local businesses like bakeries, restaurants, guesthouses, salons, and workshops. It takes one configuration file (src/config/site.ts) that holds all copy, contact details, opening hours, services, reviews, FAQ, and legal information, and outputs a fully static HTML site into dist/ when you run npm run build. The theme was created by Antoine Grange in Chamonix-Mont-Blanc and is battle-tested on real small-business sites.
src/config/site.ts; components contain zero hard-coded text, and a complete French translation example is included in examples/french-bakery/.schema.org/LocalBusiness and FAQPage JSON-LD from the config, along with canonical URLs, Open Graph tags, Twitter cards, a sitemap, and robots.txt.prefers-reduced-motion.LocalBusiness JSON-LD block so Google can display the hours in search results.The quick start flow is: clone the repo, run npm install (requires Node.js 22.12 or higher), then npm run dev to preview at localhost:4321 or npm run build to generate the static site. From there, the "Make it yours" checklist walks through editing the config file, adjusting color tokens in src/styles/tokens.css, replacing images in public/images/, updating robots.txt, reordering sections in src/pages/index.astro, and deploying to Vercel, Netlify, or any static host.
System fonts mean zero font downloads, faster first paint, and no request to a Google Fonts CDN, which EU courts have ruled raises GDPR concerns. To use a brand font, self-host it with @font-face and font-display: swap, then update the font CSS variables in tokens.css.
All colors are defined as ten CSS variables in src/styles/tokens.css, and components never use raw color values. An alternative "alpine" palette is shipped in a comment to show how re-theming works.
Yes, it's released under the MIT license. Attribution is appreciated but never required.
No — the theme supports one language per site, set via the SITE.lang config value. For a bilingual site, the README recommends running two deployments with two config files; native i18n routing is on the roadmap.
