// the find
ixartz/Astro-boilerplate
🚀 Astro boilerplate with responsive blog and portfolio template using TypeScript and React styled with Tailwind CSS ⚡️ Made with developer experience first: TypeScript + ESLint + Prettier + Husky + Lint-Staged + Commitlint + VSCode
A starter template for an Astro-based blog or portfolio site, combining Astro 4, React, TypeScript, and Tailwind CSS with a full git hygiene setup (Husky, commitlint, lint-staged). Aimed at developers who want to stand up a personal site quickly without configuring tooling from scratch.
- Tooling setup is solid out of the box: ESLint with Airbnb rules + Astro/TypeScript compatibility, Prettier, Husky pre-commit hooks, and commitlint all wired together and actually working together is non-trivial to configure manually.
- SEO basics are handled: sitemap.xml via @astrojs/sitemap, robots.txt via astro-robots-txt, and RSS feed generation are all included, which are easy to forget and annoying to add later.
- Uses Astro's content model correctly - markdown posts in src/pages/posts with pagination via [...page].astro is idiomatic Astro and will scale to a real blog without refactoring.
- VSCode config is included (.vscode/extensions.json, settings.json) so new contributors get the right editor setup without a setup doc.
- Dependencies are significantly stale: astro is pinned at 4.0.2 (currently at 5.x), Node is pinned to v16.15.1 in volta/nvmrc (v16 is EOL), and several other packages like @astrojs/rss are on very old versions. Anyone cloning this today is starting with a maintenance burden.
- The blog posts live in src/pages/posts as raw .md files rather than using Astro's Content Collections API (introduced in Astro 2), which means no schema validation, no type-safe frontmatter, and harder migration to newer Astro patterns.
- React is pulled in as a hard dependency just for the component partials (Hero, Navbar, Footer etc.), but none of these need client-side interactivity — they could be plain .astro components, eliminating the React runtime overhead entirely.
- No tests of any kind — not even basic smoke tests or type checking in CI. There's a build-types script but no CI configuration is present, so the commitlint/husky setup only works locally.