✨ Publier v1 is live — a polished docs platform built for the open web.
Skip to content

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

publier.config.yaml
pages:
landing: true # false to suppress the / route

Override

The company-site template scaffolds src/pages/index.astro as the default implementation. Edit it in place or replace it entirely:

src/pages/index.astro
---
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

ComponentPurposeDocs
HeroFull-width headline + CTAs + optional trailing slotHero
FeatureGridResponsive feature-card gridFeatureGrid
TestimonialCardSingle customer testimonialTestimonialCard
CtaBandFull-width call-to-action stripCtaBand