Skip to content
Skillpedia
Websites & UI (frontend)48k · #2214

astro

Lets your agent build content-focused websites. It uses technology that loads fast and works well across different parts. Ideal for blogs and informational sites.

What it does

Astro is a tool for building fast, content-focused websites. It sends minimal JavaScript to the browser, making pages lighter and quicker. You can use different programming technologies together.

When to use it

  • ✓Building a blog, documentation site, or portfolio.
  • ✓Prioritizing website speed and performance.
  • ✓Working with a lot of text and content files.

Example of what to ask your AI

“How do I create a blog website with Astro?”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/astro/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/astro/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

You write the content and site structure in `.astro` files. Astro compiles everything into plain HTML, sending JavaScript only for interactive parts when needed. It automatically organizes content and pages.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add sickn33/agentic-awesome-skills --skill astro

Or download just the file:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/astro/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Astro Web Framework

Overview

Astro is a web framework designed for content-rich websites — blogs, docs, portfolios, marketing sites, and e-commerce. Its core innovation is the Islands Architecture: by default, Astro ships zero JavaScript to the browser. Interactive components are selectively hydrated as isolated "islands." Astro supports React, Vue, Svelte, Solid, and other UI frameworks simultaneously in the same project, letting you pick the right tool per component.

When to Use This Skill

  • Use when building a blog, documentation site, marketing page, or portfolio
  • Use when performance and Core Web Vitals are the top priority
  • Use when the project is content-heavy with Markdown or MDX files
  • Use when you want SSG (static) output with optional SSR for dynamic routes
  • Use when the user asks about .astro files, Astro.props, content collections, or client: directives

How It Works

Step 1: Project Setup

npm create astro@latest my-site
cd my-site
npm install
npm run dev

Add integrations as needed:

npx astro add tailwind        # Tailwind CSS
npx astro add react           # React component support
npx astro add mdx             # MDX support
npx astro add sitemap         # Auto sitemap.xml
npx astro add vercel          # Vercel SSR adapter

Project structure:

src/
  pages/          ← File-based routing (.astro, .md, .mdx)
  layouts/        ← Reusable page shells
  components/     ← UI components (.astro, .tsx, .vue, etc.)
  content/        ← Type-safe content collections (Markdown/MDX)
  styles/         ← Global CSS
public/           ← Static assets (copied as-is)
astro.config.mjs  ← Framework config

Step 2: Astro Component Syntax

.astro files have a code fence at the top (server-only) and a template below:

---
// src/components/Card.astro
// This block runs on the server ONLY — never in the browser
interface Props {
  title: string;
  href: string;
  description: string;
}

const { title, href, description } = Astro.props;
---

<article class="card">
  <h2><a href={href}>{title}</a></h2>
  <p>{description}</p>
</article>

<style>
  /* Scoped to this component automatically */
  .card { border: 1px solid #eee; padding: 1rem; }
</style>

Step 3: File-Based Pages and Routing

src/pages/index.astro          → /
src/pages/about.astro          → /about
src/pages/blog/[slug].astro    → /blog/:slug (dynamic)
src/pages/blog/[...path].astro → /blog/* (catch-all)

Dynamic route with getStaticPaths:

---
// src/pages/blog/[slug].astro
export async function getStaticPaths() {
  const posts = await getCollection('blog');
  return posts.map(post => ({
    params: { slug: post.slug },
    props: { post },
  }));
}

const { post } = Astro.props;
const { Content } = await post.render();
---

<h1>{post.data.title}</h1>
<Content />

Step 4: Content Collections

Content collections give you type-safe access to Markdown and MDX files:

// src/content/config.ts
import { z, defineCollection } from 'astro:content';

const blog = defineCollection({
  type: 'content',
  schema: z.object({
    title: z.string(),
    date: z.coerce.date(),
    tags: z.array(z.string()).default([]),
    draft: z.boolean().default(false),
  }),
});

export const collections = { blog };
---
// src/pages/blog/index.astro
import { getCollection } from 'astro:content';

const posts = (await getCollection('blog'))
  .filter(p => !p.data.draft)
  .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf());
---

<ul>
  {posts.map(post => (
    <li>
      <a href={`/blog/${post.slug}`}>{post.data.title}</a>
      <time>{post.data.date.toLocaleDateString()}</time>
    </li>
  ))}
</ul>

Step 5: Islands — Selective Hydration

By default, UI framework components render to static HTML with no JS. Use client: directives to hydrate:

---
import Counter from '../components/Counter.tsx';  // React component
import VideoPlayer from '../components/VideoPlayer.svelte';
---

<!-- Static HTML — no JavaScript sent to browser -->
<Counter initialCount={0} />

<!-- Hydrate immediately on page load -->
<Counter initialCount={0} client:load />

<!-- Hydrate when the component scrolls into view -->
<VideoPlayer src="/demo.mp4" client:visible />

<!-- Hydrate only when browser is idle -->
<Analytics client:idle />

<!-- Hydrate only on a specific media query -->
<MobileMenu client:media="(max-width: 768px)" />

…

FAQ

What are 'islands' in Astro?

Islands are interactive components that load their JavaScript independently, without affecting the rest of the page. This helps keep the site fast.

Can I use React or Vue with Astro?

Yes, Astro allows you to use components from different libraries like React, Vue, and Svelte within the same project.

How does Astro handle content?

Astro has a system called 'Content Collections' that organizes and validates your content files (like Markdown and MDX) securely.

Details

Original description by the author

Build content-focused websites with Astro — zero JS by default, islands architecture, multi-framework components, and Markdown/MDX support.

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#2214
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills