Hero 1
Build Astro pages from reusable content sections
Production-ready hero blocks, feature grids, and pricing layouts that drop into any Astro project.
---
import Hero1Block from "@/components/blocks/hero-1.astro"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero1Block
title="Build Astro pages from reusable content sections"
description="Production-ready hero blocks, feature grids, and pricing layouts that drop into any Astro project."
badge={{ label: "New in v0.9", href: "/docs/" }}
buttons={[
{ label: "Browse docs", href: "/docs/", variant: "default" },
{
label: "See components",
href: "/components/",
variant: "secondary",
},
]}
image={{ src: placeholderImage, alt: "Product screenshot" }}
/>Hero 2
Trusted by teams shipping with Astro every day
A hero with social proof at the top — avatars, rating, and a trust line — followed by a clear message and full-width image.
---
import Hero2Block from "@/components/blocks/hero-2.astro"
import avatarSil from "@/assets/avatar-sil-veltman.webp"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero2Block
title="Trusted by teams shipping with Astro every day"
description="A hero with social proof at the top — avatars, rating, and a trust line — followed by a clear message and full-width image."
socialProof={{
avatars: [
{ image: avatarSil, initials: "AM", name: "Sil Veltman" },
{ image: avatarSil, initials: "KL", name: "Sil Veltman" },
{ image: avatarSil, initials: "SV", name: "Sil Veltman" },
],
rating: 5,
text: "4.9 from 2,400+ developers",
}}
buttons={[
{ label: "Get started", href: "/docs/", variant: "default" },
{ label: "View blocks", href: "/blocks/", variant: "secondary" },
]}
image={{ src: placeholderImage, alt: "Product screenshot" }}
/>Hero 3
Ship landing pages in hours, not weeks
A bold hero with text centered over a full background image. Ideal for launches, events, and product announcements.
---
import Hero3Block from "@/components/blocks/hero-3.astro"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero3Block
title="Ship landing pages in hours, not weeks"
description="A bold hero with text centered over a full background image. Ideal for launches, events, and product announcements."
buttons={[
{ label: "Start building", href: "/docs/", variant: "default" },
{ label: "See examples", href: "/blocks/", variant: "secondary" },
]}
image={{ src: placeholderImage, alt: "Abstract background" }}
/>Hero 4
Full-screen impact for product launches and events
A taller version of the background image hero that fills the viewport. Includes a feature checklist for quick scanning.
- Zero-JS components by default
- Astro-first primitives
- Dark mode included
---
import Hero4Block from "@/components/blocks/hero-4.astro"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero4Block
title="Full-screen impact for product launches and events"
description="A taller version of the background image hero that fills the viewport. Includes a feature checklist for quick scanning."
features={[
"Zero-JS components by default",
"Astro-first primitives",
"Dark mode included",
]}
buttons={[
{ label: "Learn more", href: "/docs/", variant: "default" },
{ label: "Contact sales", href: "#", variant: "secondary" },
]}
image={{ src: placeholderImage, alt: "Abstract background" }}
/>Hero 5
Everything you need to build with Astro
A split hero with a feature checklist, action buttons, and social proof on the left — and a product image on the right.
- Zero-JS components by default
- shadcn-compatible installation
- Astro-first primitives
- Fully accessible and keyboard-navigable
---
import Hero5Block from "@/components/blocks/hero-5.astro"
import avatarSil from "@/assets/avatar-sil-veltman.webp"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero5Block
title="Everything you need to build with Astro"
description="A split hero with a feature checklist, action buttons, and social proof on the left — and a product image on the right."
features={[
"Zero-JS components by default",
"shadcn-compatible installation",
"Astro-first primitives",
"Fully accessible and keyboard-navigable",
]}
buttons={[
{ label: "Get started", href: "/docs/", variant: "default" },
{ label: "Components", href: "/components/", variant: "secondary" },
]}
socialProof={{
avatars: [
{ image: avatarSil, initials: "AM", name: "Sil Veltman" },
{ image: avatarSil, initials: "KL", name: "Sil Veltman" },
{ image: avatarSil, initials: "SV", name: "Sil Veltman" },
],
rating: 5,
text: "4.9 from product teams",
}}
image={{ src: placeholderImage, alt: "Product screenshot" }}
/>Hero 6
Components and blocks built for Astro
Split layout with features, social proof, and a side-by-side image. Works for product pages and SaaS landing pages.
- Ship pages faster with blocks
- Consistent design system tokens
- Dark mode included
---
import Hero6Block from "@/components/blocks/hero-6.astro"
import avatarSil from "@/assets/avatar-sil-veltman.webp"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero6Block
title="Components and blocks built for Astro"
description="Split layout with features, social proof, and a side-by-side image. Works for product pages and SaaS landing pages."
features={[
"Ship pages faster with blocks",
"Consistent design system tokens",
"Dark mode included",
]}
buttons={[
{ label: "Browse blocks", href: "/blocks/", variant: "default" },
{ label: "Documentation", href: "/docs/", variant: "secondary" },
]}
socialProof={{
avatars: [
{ image: avatarSil, initials: "FD", name: "Sil Veltman" },
{ image: avatarSil, initials: "AV", name: "Sil Veltman" },
{ image: avatarSil, initials: "UI", name: "Sil Veltman" },
],
rating: 5,
text: "Loved by Astro developers",
}}
image={{ src: placeholderImage, alt: "Product screenshot" }}
/>Hero 7
A wider image for visual-heavy products
2:3 split with a larger image area that bleeds to the right edge. Ideal for showcasing dashboards, apps, or creative work.
- Large image area for product screenshots
- Content stays readable at all sizes
- Image bleeds to the edge on desktop
---
import Hero7Block from "@/components/blocks/hero-7.astro"
import avatarSil from "@/assets/avatar-sil-veltman.webp"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero7Block
title="A wider image for visual-heavy products"
description="2:3 split with a larger image area that bleeds to the right edge. Ideal for showcasing dashboards, apps, or creative work."
features={[
"Large image area for product screenshots",
"Content stays readable at all sizes",
"Image bleeds to the edge on desktop",
]}
buttons={[
{ label: "View demo", href: "#", variant: "default" },
{ label: "Documentation", href: "/docs/", variant: "secondary" },
]}
socialProof={{
avatars: [
{ image: avatarSil, initials: "AM", name: "Sil Veltman" },
{ image: avatarSil, initials: "KL", name: "Sil Veltman" },
{ image: avatarSil, initials: "SV", name: "Sil Veltman" },
],
rating: 5,
text: "Used by design teams",
}}
image={{ src: placeholderImage, alt: "Dashboard preview" }}
/>Hero 8
Let the image do the talking
Minimal text with maximum image. A 1:3 split where the product screenshot dominates and the message stays compact.
---
import Hero8Block from "@/components/blocks/hero-8.astro"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero8Block
title="Let the image do the talking"
description="Minimal text with maximum image. A 1:3 split where the product screenshot dominates and the message stays compact."
buttons={[
{ label: "Get started", href: "/docs/", variant: "default" },
{ label: "Learn more", href: "#", variant: "secondary" },
]}
image={{ src: placeholderImage, alt: "App screenshot" }}
/>Hero 9
Content over a masked background image
A split hero where text and features sit on the left, with a background image fading in from the right using a gradient mask.
- Background image with gradient mask
- Content stays fully readable
- Works in both light and dark mode
- Ideal for atmospheric pages
---
import Hero9Block from "@/components/blocks/hero-9.astro"
import avatarSil from "@/assets/avatar-sil-veltman.webp"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero9Block
title="Content over a masked background image"
description="A split hero where text and features sit on the left, with a background image fading in from the right using a gradient mask."
features={[
"Background image with gradient mask",
"Content stays fully readable",
"Works in both light and dark mode",
"Ideal for atmospheric pages",
]}
buttons={[
{ label: "Explore", href: "/docs/", variant: "default" },
{ label: "View source", href: "#", variant: "secondary" },
]}
socialProof={{
avatars: [
{ image: avatarSil, initials: "AM", name: "Sil Veltman" },
{ image: avatarSil, initials: "KL", name: "Sil Veltman" },
{ image: avatarSil, initials: "SV", name: "Sil Veltman" },
],
rating: 5,
text: "4.9 from product teams",
}}
image={{ src: placeholderImage, alt: "Atmospheric background" }}
/>Hero 10
A full-bleed background image hero with overlaid content
Content and actions spread across the top, with a full background image visible underneath through gradient masks.
---
import Hero10Block from "@/components/blocks/hero-10.astro"
import avatarSil from "@/assets/avatar-sil-veltman.webp"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero10Block
title="A full-bleed background image hero with overlaid content"
description="Content and actions spread across the top, with a full background image visible underneath through gradient masks."
buttons={[
{ label: "Start free", href: "/docs/", variant: "default" },
{ label: "Book a demo", href: "#", variant: "secondary" },
]}
socialProof={{
avatars: [
{ image: avatarSil, initials: "FD", name: "Sil Veltman" },
{ image: avatarSil, initials: "AV", name: "Sil Veltman" },
{ image: avatarSil, initials: "UI", name: "Sil Veltman" },
],
rating: 5,
text: "Trusted by 2,400+ teams",
}}
image={{ src: placeholderImage, alt: "Full background" }}
/>Hero 11
Centered content over a full background image
Content, buttons, and social proof centered vertically over a full-bleed background image with gradient masks.
---
import Hero11Block from "@/components/blocks/hero-11.astro"
import avatarSil from "@/assets/avatar-sil-veltman.webp"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero11Block
title="Centered content over a full background image"
description="Content, buttons, and social proof centered vertically over a full-bleed background image with gradient masks."
buttons={[
{ label: "Get started", href: "/docs/", variant: "default" },
{ label: "View pricing", href: "#", variant: "secondary" },
]}
socialProof={{
avatars: [
{ image: avatarSil, initials: "AM", name: "Sil Veltman" },
{ image: avatarSil, initials: "KL", name: "Sil Veltman" },
{ image: avatarSil, initials: "SV", name: "Sil Veltman" },
],
rating: 5,
text: "Loved by developers",
}}
image={{ src: placeholderImage, alt: "Full background" }}
/>Hero 12
A minimal editorial hero with a border bar and full-width image
Title, description, and actions spread across a bordered bar, followed by a large image below.
---
import Hero12Block from "@/components/blocks/hero-12.astro"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero12Block
title="A minimal editorial hero with a border bar and full-width image"
description="Title, description, and actions spread across a bordered bar, followed by a large image below."
buttons={[{ label: "Read the story", href: "#" }]}
image={{ src: placeholderImage, alt: "Editorial image" }}
/>Hero 13
Small text, large image
A 1:3 split where the content stays compact on the left and the image takes the dominant position on the right.
---
import Hero13Block from "@/components/blocks/hero-13.astro"
import placeholderImage from "@/assets/placeholder.webp"
---
<Hero13Block
title="Small text, large image"
description="A 1:3 split where the content stays compact on the left and the image takes the dominant position on the right."
buttons={[{ label: "View products", href: "/blocks/products/" }]}
image={{ src: placeholderImage, alt: "Product showcase" }}
/>