company-site template
Marketing and company website with six toggleable sub-pages — landing, about, team, careers, press, and contact.
The company-site template scaffolds a marketing-focused company website. It ships six sub-pages, each pre-wired with @publier/shell components. Every page is overridable — edit src/pages/<name>.astro in place.
Scaffold
publier new my-site --template company-siteDirectory layout
my-site/ src/ pages/ index.astro # / — Hero + FeatureGrid + TestimonialCard + CtaBand about.astro # /about careers.astro # /careers — JobsList contact.astro # /contact press.astro # /press — PressGallery team.astro # /team — TeamGrid content/ press/ # MDX press releases — seed entry included publier.config.yaml theme.yaml astro.config.ts content.config.tsThe press/ directory ships with a seed press release. The team/ and careers/ content directories are registered in content.config.ts but are created when you add your first MDX entries.
astro.config.ts
import tailwind from '@tailwindcss/vite';import { defineConfig } from 'astro/config';import { docsShell } from '@publier/shell/integration';
export default defineConfig({ integrations: [docsShell()], vite: { plugins: [tailwind()] },});content.config.ts
import { defineCollection } from 'astro:content';import { contentLoader, pagesLoader } from '@publier/shell/loaders';import { blogSchema, pagesSchema } from '@publier/shell/schemas';
export const collections = { // Standalone MDX pages (landing, about, pricing). pages: defineCollection({ loader: pagesLoader(), schema: pagesSchema }), // Press releases. press: defineCollection({ loader: contentLoader({ base: './src/content/press' }), schema: blogSchema, }), // Team member profiles. team: defineCollection({ loader: contentLoader({ base: './src/content/team' }), schema: blogSchema, }), // Job postings. careers: defineCollection({ loader: contentLoader({ base: './src/content/careers' }), schema: blogSchema, }),};publier.config.yaml
name: My Companyurl: https://example.comfavicon: /favicon.svg
nav: title: My Company links: - label: About href: /about - label: Team href: /team - label: Careers href: /careers - label: Press href: /press - label: Contact href: /contact
search: enabled: false
theme: theme.yaml
pages: landing: true about: true team: true careers: true press: true contact: true changelog: false status: false knowledge-base: false docs: false blog: falseEnabling and disabling sub-pages
Set a sub-page key to false under pages: and remove (or keep) the matching file under src/pages/. Astro’s filesystem routing means the route only exists if the file exists — the pages: toggle tells Publier to omit the page from nav and sitemap regardless.
Customizing a sub-page
The scaffolded .astro files in src/pages/ are starter implementations. You have two options:
Edit the .astro file in place — update component props, add or remove sections, change copy.
Switch to MDX — delete src/pages/about.astro and add src/content/pages/about.mdx with pagesSchema frontmatter. The page is rendered through the standard pages collection.
See Pages reference for full per-page documentation and override patterns.