Skip to content

What is included in this template?

The Astro Performance Starter gives you a production-ready foundation focused on performance, accessibility, and DX. Phase 5 (“UI Component Library - MVP”) is now complete, delivering essential UI components alongside the foundational site structure.

FeaturePathNotes
Base layoutsrc/layouts/BaseLayout.astroSEO props, OG/Twitter tags, font pre-loading, <ClientRouter /> view transitions, Header, Footer, SkipLink slots.
Headersrc/components/structural/Header.astroSticky, responsive shell with placeholder nav & logo.
Footersrc/components/structural/Footer.astroDynamic copyright year.
Skip linksrc/components/a11y/SkipLink.astroKeyboard-friendly “skip to content”.
Error pagessrc/pages/404.astro, src/pages/500.astroCustom, accessible error templates.
Showcase pagesrc/pages/showcase.astroShows basic component usage.
Global font setupAstro Fonts API (fontProviders.local() in astro.config.mjs)Vendored WOFF2 files in src/assets/fonts/ with preloading and metric-adjusted fallbacks.
Security headerspublic/_headersCSP, HSTS, referrer-policy, etc.
Robots rulessrc/pages/robots.txt.tsGenerated at build time; default allow + sitemap reference.
Faviconpublic/favicon.svg, public/favicon.ico, public/apple-touch-icon.pngReplace with your own brand assets.
Preact islandssrc/components/islands/SignalsCounter.tsx (client:visible) and MotionLab.tsx (client:idle) demo islands; the mobile menu is CSS-only in Header.astro.
TypeScript typessrc/types/Navigation types and auto-generated content types.
Project assetssrc/assets/logo.svgOptimized logo asset for branding.

Essential UI primitives following atomic design patterns:

ComponentPathPurpose
Buttonsrc/components/atoms/Button.astroVersatile button with size/variant props. Primary foundation for interactions.
Badgesrc/components/atoms/Badge.astroNon-interactive labels for status, metrics, or categories.
Imagesrc/components/atoms/Image.astroWrapper around Astro’s Image with project defaults (AVIF, optimized sizing).
Cardsrc/components/molecules/Card.astroFlexible content container with consistent spacing and styling.
Containersrc/components/structural/Container.astroManages horizontal width and centers content across breakpoints.
Sectionsrc/components/structural/Section.astroControls vertical rhythm and spacing for page sections.
Gridsrc/components/structural/Grid.astroResponsive CSS Grid with consistent gaps and breakpoint behavior.

Beyond these primitives, the template ships a full component set (30+ components):

CategoryComponents
Atoms (src/components/atoms/)Icon, ThemeToggle, Tooltip, SocialLink, CounterBadge, AnimatedGradientText, CursorSpotlight, ReadingProgress, ScrollReveal, SheenEyebrow
Molecules (src/components/molecules/)ContactForm, Dialog, Tabs, Head, PostCard, ProjectCard, ScrollSpy, SectionSeparator, ShowcaseExample, ExpandableFeatureCard, ColorTokenSwatch, PaletteBand, TypeSpecimen
Structural (src/components/structural/)ParallaxSection (plus Header, Footer, Container, Section, Grid listed above)
MDX components (src/components/mdx/)Figure, Grid, Callout, Blockquote, CodeFromFile, Link
Layouts & pagesBlogLayout.astro and ProjectLayout.astro plus blog and projects pages wired to content collections

Link styling: Global link styles ship active in src/styles/global.css — an a rule applies the link color token with a visible focus ring, and prose links are themed via the Typography plugin (--tw-prose-links). Customize there or create a Link component as needed.

ToolPath/ConfigPurpose
Design tokenstokens/base.json, tokens/semantic.jsonComplete design system with build script.
Token builderscripts/src/build-tokens.tsConverts JSON tokens to CSS variables and Tailwind config.
Performance baselinescripts/src/baseline-performance.tsLighthouse score tracking and budgets.
Contrast validatorscripts/src/validate-contrast.tsWCAG AA accessibility validation.
Budget trackingscripts/src/track-performance-budgets.tsPerformance budget enforcement.
Biome lintingbiome.jsonFast linting and formatting (replaces ESLint + Prettier).
Git hooks.husky/pre-commitPre-configured commit hooks with lint-staged.
Vitest testingvitest.config.tsTesting framework configuration.
FeaturePathPurpose
Layered AI constitutionCLAUDE.md, AGENTS.mdHalt-on-violation rules and generated agent instructions.
Comprehensive docsdocs/Complete implementation guides, patterns, and ADRs for AI context.
ConfigPurpose
.editorconfigConsistent editor settings across team.
.commitlintrc.cjsEnforces conventional commit messages.
.lintstagedignoreFiles to skip during pre-commit linting.
tsconfig.jsonStrict TypeScript configuration.
.nvmrcNode.js version specification.
Terminal window
pnpm install # install dependencies
pnpm dev # start local dev server

• Docs home: the docs/ directory ships in the repo for local and AI-context reference; the same documentation is published at docs.clownware.org/astro/ • Demo homepage: http://localhost:4321/

  1. Branding: swap public/logo.svg and public/favicon.svg, and update the logo alt text in Header.astro.
  2. Navigation: edit links in src/content/navigation/header.json (the header and mobile menu read from it).
  3. Pages: start new pages under src/pages/ or copy the showcase page.
  4. SEO defaults: change siteMetadata inside src/config.ts.
ItemReason
.github/FUNDING.ymlFunding links vary; add your own if desired
Documentation-specific filesMarkdown linting configs, frontmatter validation scripts removed for general use

Phase 5 is complete! ✅ All MVP UI components are implemented and ready to use.

Up next: Phase 6 composes page sections — heroes, feature grids, and testimonials — from the component library. (Content collections for blog posts, projects, bio, and experience are already implemented and wired in.) Follow the implementation guides for step-by-step progress on remaining phases.