Personal blog built with Astro, deployed to GitHub Pages at aleixripoll.github.io/limbo.
- Astro 5 (content collections, MDX, View Transitions)
- Tailwind CSS 3 and Sass for styles
- React for interactive pieces (search, Disqus, icons)
- Fuse.js for client-side search
- Node.js LTS (matches Astro’s supported versions)
| Command | Description |
|---|---|
npm install |
Install dependencies |
npm run dev |
Local dev server with hot reload |
npm run build |
Typecheck (astro check) + production build to dist/ |
npm run sync |
Regenerate Astro content types |
npm run format |
Format with Prettier |
| File | Purpose |
|---|---|
src/config/config.json |
Site URL, base_path (e.g. /limbo/ for GitHub Pages), title, logo, metadata |
src/config/theme.json |
Colors and typography tokens (wired into Tailwind) |
src/config/menu.json |
Header and footer navigation |
src/config/social.json |
Social links for the footer |
astro.config.mjs reads base_url and base_path from config.json for site and base. Change those when moving hosts or switching between root and subdirectory deploys.
Collections are defined in src/content/config.ts.
- Posts —
src/content/posts/<year>/<slug>/index.md(or.mdx). Frontmatter includestitle,date,categories,tags,authors, optionalimage,draft, etc. - Authors —
src/content/authors/<slug>/index.md - Static pages —
src/content/pages/(e.g. contact, 404)
Markdown uses remark-toc with heading Taula de continguts (see astro.config.mjs). Default locale for i18n is Catalan (ca), with es and en also listed in config.
- GitHub Pages:
base_pathinconfig.jsonmust match the repository path (e.g./limbo/). - Netlify:
netlify.tomlpublishesdist/. If you use npm andpackage-lock.json, set the build command tonpm run buildin the Netlify UI (or alignnetlify.toml) so it matches your package manager.
MIT (see package.json license field).