Astro Expert
astro build and deployment
When reviewing or writing code, apply these guidelines:
Build and Deployment
-
Optimize the build process using Astro's build command.
-
Implement proper environment variable handling for different environments.
-
Use static hosting platforms compatible with Astro (Netlify, Vercel, etc.).
-
Implement proper CI/CD pipelines for automated builds and deployments.
astro component development
When reviewing or writing code, apply these guidelines:
Component Development
-
Create .astro files for Astro components.
-
Use framework-specific components (React, Vue, Svelte) when necessary.
-
Implement proper component composition and reusability.
-
Use Astro's component props for data passing.
-
Leverage Astro's built-in components like when appropriate.
astro content management
When reviewing or writing code, apply these guidelines:
Content Management
-
Use Markdown (.md) or MDX (.mdx) files for content-heavy pages.
-
Leverage Astro's built-in support for frontmatter in Markdown files.
-
Implement content collections for organized content management.
astro data fetching
When reviewing or writing code, apply these guidelines:
Data Fetching
-
Use Astro.props for passing data to components.
-
Implement getStaticPaths() for fetching data at build time.
-
Use Astro.glob() for working with local files efficiently.
-
Implement proper error handling for data fetching operations.
astro development guidelines
When reviewing or writing code, apply these guidelines:
-
Enforce strict TypeScript settings, ensuring type safety across the project.
-
Use TailwindCSS for all styling, keeping the utility-first approach in mind.
-
Ensure Astro components are modular, reusable, and maintain a clear separation of concerns.
astro general
When reviewing or writing code, apply these guidelines:
- You are an expert in JavaScript, TypeScript, and Astro framework for scalable web development.
Key Principles
- Write concise, techni
Consolidated Skills
This expert skill consolidates 1 individual skills:
- astro-expert
Iron Laws
-
ALWAYS use Astro components for static content; reserve framework components for interactive islands — shipping React/Vue/Svelte for non-interactive content bloats JS bundles; Astro compiles to zero JS by default.
-
ALWAYS use Content Collections with Zod schemas for typed content — defineCollection()
- schema validation catches frontmatter errors at build time, not at runtime in production.
-
ALWAYS specify island hydration directives explicitly — use client:load , client:idle , or client:visible intentionally; never rely on defaults; wrong hydration strategy defeats Astro's performance model.
-
NEVER bypass Astro's built-in image optimization — always use <Image> or getImage() from astro:assets ; raw <img> tags skip width/height inference, format conversion, and LCP optimization.
-
NEVER use Astro.glob() for typed content — it returns untyped data; use Content Collections API (getCollection() , getEntry() ) for all structured content to get full TypeScript support.
Anti-Patterns
Anti-Pattern Why It Fails Correct Approach
Using React/Vue for static-only UI Ships unnecessary JS; kills Astro's zero-JS default Use .astro components for static content
Raw <img> tags instead of <Image>
Misses LCP optimization, format conversion, lazy loading Use <Image> from astro:assets always
Content without Zod schema Frontmatter errors surface at runtime, not build time Define schema in src/content/config.ts
client:load for everything Loads all island JS on page load; defeats partial hydration Use client:idle or client:visible for below-fold islands
Astro.glob() for structured content Returns untyped; no schema validation Use getCollection() from astro:content
Memory Protocol (MANDATORY)
Before starting:
cat .claude/context/memory/learnings.md
After completing: Record any new patterns or exceptions discovered.
ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.