Bilingual (English + Burmese) static site for Vibe Code Tours, a Myanmar AI coding tour. Tagline: "A guided journey into AI-paired coding."
Built with Astro 5 + Tailwind CSS, zero client JS by default, output is a static site that deploys free to GitHub Pages.
npm install # install dependencies
npm run dev # local dev server at http://localhost:4321/vibe-code-tours-site
npm run build # static build into dist/
npm run preview # preview the built dist/ locallysrc/
i18n/
en.json # English copy (source of truth for UI strings)
my.json # Burmese copy — values prefixed "[MY] " need translation
utils.ts # locale detection + base-aware link helpers
data/
chapters.ts # curriculum card data (Ch0-Ch8)
layouts/Base.astro # <head>, SEO/OG meta, header + footer wrapper
components/ # Header, Footer, ChapterCard + one *Body per page
pages/ # routes (English at /, Burmese mirrored under /my)
public/ # favicon.svg, og-default.svg, robots.txt
scripts/gen-my.mjs # regenerates my.json skeleton from en.json
Each page is a thin route file that renders a shared *Body.astro component, so
the English and Burmese routes never duplicate markup — only the active locale
differs.
- Astro i18n routing: English is the default at
/, Burmese lives under/my/. - UI copy comes from JSON locale files (
src/i18n/en.json,src/i18n/my.json). - A language switcher in the header toggles EN / မြန်မာ, preserving the sub-path.
- Burmese text uses the Noto Sans Myanmar webfont (via
@fontsource), applied automatically onhtml[lang="my"].
To add or improve Burmese translations, see TRANSLATION.md.
Short version: edit src/i18n/my.json, replace each [MY] <English> value with
Burmese, and delete the [MY] prefix.
The repo is local-only for now (the vibe-code-tours GitHub org doesn't exist
yet). When ready:
- Create the
vibe-code-toursorg + a repo namedvibe-code-tours-site. - Push this repo to
main. - In repo Settings → Pages, set Source = GitHub Actions.
- The included workflow
.github/workflows/deploy.ymlbuilds and deploys on every push tomain.
The site will be served at https://vibe-code-tours.github.io/vibe-code-tours-site/.
When the domain is purchased and pointed at GitHub Pages:
- In
astro.config.mjs, setsite: 'https://vibecode.tours'andbase: '/'. - Add a
public/CNAMEfile containingvibecode.tours. - Rebuild. All internal links and the sitemap adapt automatically (they read
BASE_URL).
- Curriculum content: CC-BY-SA 4.0
- Code: MIT
- Logo + visuals: CC-BY-SA 4.0