Landing page
The home page sub-page — Hero, FeatureGrid, TestimonialCard, and CtaBand assembled into a marketing landing page.
The landing sub-page is the home page (/) of a company-site or full template. It’s pre-wired with @publier/shell marketing components so you can ship a complete landing page with minimal copy changes.
Enable / disable
pages: landing: true # false to suppress the / routeOverride
The company-site template scaffolds src/pages/index.astro as the default implementation. Edit it in place or replace it entirely:
---import { CtaBand, FeatureGrid, Hero, TestimonialCard } from '@publier/shell/components';import BaseLayout from '@publier/shell/layouts/base-layout.astro';---
<BaseLayout title="My Company — Infrastructure done right" description="We build the infrastructure your team relies on."> <Hero eyebrow="Launching v1" title="Infrastructure that gets out of your way" subtitle="The team behind the most reliable deploys on the internet." primaryCta={{ label: 'Start free', href: '/contact' }} secondaryCta={{ label: 'Read the story', href: '/about' }} />
<section class="max-w-6xl mx-auto my-16 px-6"> <FeatureGrid columns={3} items={[ { icon: '⚡', title: 'Fast', description: 'Sub-100ms cold starts. Deterministic builds that ship in seconds.' }, { icon: '🔐', title: 'Secure', description: 'Encrypted by default, audited quarterly, zero trust throughout.' }, { icon: '🌍', title: 'Global', description: 'Thirty edge regions. Your users are close to your code.' }, ]} /> </section>
<section class="max-w-3xl mx-auto my-16 px-6"> <TestimonialCard quote="The day we switched, our p99 dropped from 480ms to 72ms. We haven't looked back." author="Priya Shah" role="VP Engineering" company="Riverbank Logistics" /> </section>
<CtaBand title="Ready to try it?" description="Start a free trial in under five minutes. No credit card required." primaryCta={{ label: 'Start free trial', href: '/contact' }} secondaryCta={{ label: 'Talk to sales', href: '/contact' }} /></BaseLayout>BaseLayout from @publier/shell injects the theme CSS, fonts, top nav, footer, and <head> boilerplate — you don’t need to import any CSS directly.
Component reference
| Component | Purpose | Docs |
|---|---|---|
Hero | Full-width headline + CTAs + optional trailing slot | Hero |
FeatureGrid | Responsive feature-card grid | FeatureGrid |
TestimonialCard | Single customer testimonial | TestimonialCard |
CtaBand | Full-width call-to-action strip | CtaBand |