Fast, content-driven websites with selective JavaScript hydration and hybrid rendering strategies.
Works with
Islands architecture with fine-grained hydration control via client:load , client:idle , client:visible , and server:defer for deferred server rendering
Content Layer API with glob/file loaders and live loaders for managing collections; type-safe schemas with Zod validation
Hybrid output mode supporting static pages, on-demand SSR, server islands for personalized content, and adapters f
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionastro-frameworkExecute the skills CLI command in your project's root directory to begin installation:
Fetches astro-framework from delineas/astro-framework-agents and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate astro-framework. Access via /astro-framework in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
0
total installs
0
this week
16
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
16
stars
Senior Astro specialist with deep expertise in islands architecture, content-driven websites, and hybrid rendering strategies.
You are a senior frontend engineer with extensive Astro experience. You specialize in building fast, content-focused websites using Astro's islands architecture, content collections, and hybrid rendering. You understand when to ship JavaScript and when to keep things static.
Activate this skill when:
server:defer) for deferred server renderingastro:envastro.config.mjsstatic (default)
├── Blog, docs, landing pages, portfolios
├── Content changes per-deploy, not per-request
├── <500 pages and builds under 5 min
└── No user-specific content needed
hybrid (80% of real-world projects)
├── Mostly static + login/dashboard/API routes
├── E-commerce: static catalog + dynamic cart/checkout
├── Use server islands to avoid making whole pages SSR
└── Best balance of performance + flexibility
server (rarely needed)
├── >80% of pages need request data (cookies, headers, DB)
├── Full SaaS/dashboard behind auth
└── Warning: you lose edge HTML caching on all pages
Signs you picked wrong:
getStaticPaths → switch to hybridprerender = false on >50% of pages → switch to serverserver but only 2 pages read cookies → switch to hybridclient:visible on hero/header → It's already in viewport at load time, so it hydrates immediately anyway. Use client:load directly and skip the IntersectionObserver overhead.client:idle on mobile → requestIdleCallback on low-RAM devices can take 10+ seconds. For anything the user might interact with in the first 5 seconds, use client:load.client:load → If bundle >50KB, consider splitting: render the static shell in Astro, hydrate only the interactive part. Or use client:idle if it's below the fold.<script> tag instead of hydrating an entire React component.Does the component need data from the server on EACH request?
(cookies, user session, DB query, personalization)
│
├── Yes → server:defer (Server Island)
│ ├── User avatars, greeting bars, cart counts
│ ├── Personalized recommendations on product pages
│ └── A/B test variants resolved server-side
│
└── No → Does it need browser interactivity?
│
├── Yes → client:* directive (Client Island)
│ ├── Search boxes, forms with validation
│ ├── Image carousels, interactive charts
│ └── Anything needing onClick/onChange/state
│
└── No → No directive (Static HTML, zero JS)
├── Navigation, footers, content sections
├── Cards, lists, formatted text
└── This should be ~90% of most sites
The e-commerce pattern: Product page is static (title, images, description) + server:defer for price/stock (changes often) + client:load for add-to-cart button (needs interactivity). Three rendering strategies on one page.
Astro excels at content-heavy sites with islands of interactivity. Consider other frameworks when:
Local markdown/MDX files → glob() loader
Single JSON/YAML data file → file() loader
Remote API/CMS data at build time → Custom async loader function
Remote data that must be fresh per-request → Live Loader (Astro 6+)
Performance tip: For sites with >1000 content entries, use glob() with retainBody: false if you don't need raw markdown body — significantly reduces data store size.
Load detailed guidance based on your current task:
| Topic | Reference | When to Load |
|---|---|---|
| Components | references/components.md | Writing Astro components, Props, slots, expressions |
| Client Directives | references/client-directives.md | Hydration strategies, client:load, client:visible, client:idle |
| Content Collections | references/content-collections.md | Content Layer API, loaders, schemas, getCollection, getEntry, live loaders |
| Routing | references/routing.md | Pages, dynamic routes, endpoints, redirects |
| SSR & Adapters | references/ssr-adapters.md | On-demand rendering, adapters, server islands, sessions |
| Server Islands | references/server-islands.md | server:defer, fallback content, deferred rendering |
| Sessions | references/sessions.md | Astro.session, server-side state, shopping carts |
| View Transitions | references/view-transitions.md | ClientRouter, animations, transition directives |
| Actions | references/actions.md | Form handling, defineAction, validation |
| Middleware | references/middleware.md | onRequest, sequence, context.locals |
| Styling | references/styling.md | Scoped CSS, global styles, class:list |
| Images | references/images.md | <Image />, <Picture />, optimization |
| Configuration | references/configuration.md | astro.config.mjs, TypeScript, env variables |
| Environment Variables | references/environment-variables.md | astro:env, envField, type-safe env schema |
| i18n Routing | references/i18n-routing.md | Multilingual sites, locales, astro:i18n helpers |
Context-specific rules are available in the rules/ directory:
rules/astro-components.rule.md → Component structure patternsrules/client-hydration.rule.md → Hydration strategy decisionsrules/content-collections.rule.md → Collection schema best practices (Content Layer API)rules/astro-routing.rule.md → Routing patterns and dynamic routesrules/astro-ssr.rule.md → SSR configuration and adaptersrules/astro-images.rule.md → Image optimization patternsrules/astro-typescript.rule.md → TypeScript configurationrules/server-islands.rule.md → Server island patterns and server:deferrules/sessions.rule.md → Server-side session managementserver:defer for personalized/dynamic content on static pagesglob, file) in src/content.config.tsastro/zod and render from astro:content (Astro 5+)<Image /> and <Picture /> for optimized imagesAstro.props for component data passingastro:env schema for type-safe environment variablesAstro.session for server-side state managementclient: only when necessary)client:only without specifying the frameworkserver and hybrid output modes incorrectlyAstro.request in prerendered pagesserver:defer components (not serializable)Astro.session in prerendered pages (requires on-demand rendering)src/content/config.ts for new projects (use src/content.config.ts with loaders)---
// Component Script (runs on server)
interface Props {
title: string;
count?: number;
}
const { title, count = 0 } = Astro.props;
const data = await fetch('https://api.example.com/data');
---
<!-- Component Template -->
<div>
<h1>{title}</h1>
<p>Count: {count}</p>
</div>
<style>
/* Scoped by default */
h1 { color: navy; }
</style>
server:defer → Deferred server rendering (server island)client:load → Hydrate immediately on page loadclient:idle → Hydrate when browser is idleclient:visible → Hydrate when component enters viewportclient:media → Hydrate when media query matchesclient:only → Skip SSR, render only on client// src/content.config.ts
import { defineCollection } from 'astro:content';
import { glob } from 'astro/loaders';
import { z } from 'astro/zod';
const blog = defineCollection({
loader: glob({ base: './src/content/blog', pattern: '**/*.{md,mdx}' }),
schema: z.object({
title: z.string(),
date: z.coerce.date(),
draft: z.boolean().default(false),
tags: z.array(z.string()).optional(),
}),
});
export const collections = { blog };
---
import UserAvatar from '../components/UserAvatar.astro';
---
<UserAvatar server:defer>
<img slot="fallback" src="/generic-avatar.svg" alt="Loading..." />
</UserAvatar>
When implementing Astro features, provide:
.astro with frontmatter and template)astro.config.mjs if needed)Astro 5+/6+, Islands Architecture, Content Layer API (glob/file loaders, live loaders), Zod Schemas, View Transitions API, Server Islands (server:defer), Sessions, Actions, Middleware, astro:env (type-safe environment variables), i18n Routing, Adapters (Node, Vercel, Netlify, Cloudflare, Deno), React/Vue/Svelte/Solid integrations, Image Optimization, MDX, Markdoc, TypeScript, Scoped CSS, Tailwind CSS
Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
mattpocock/skills
parcadei/continuous-claude-v3
cursor/plugins
ailabs-393/ai-labs-claude-skills
ailabs-393/ai-labs-claude-skills
pproenca/dot-skills
astro-framework fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
I recommend astro-framework for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Useful defaults in astro-framework — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
astro-framework fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
I recommend astro-framework for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Keeps context tight: astro-framework is the kind of skill you can hand to a new teammate without a long onboarding doc.
We added astro-framework from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
astro-framework is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Solid pick for teams standardizing on skills: astro-framework is focused, and the summary matches what you get after install.
astro-framework has been reliable in day-to-day use. Documentation quality is above average for community skills.
showing 1-10 of 70