Customizing the Landing Page
The landing page is built from modular sections — each one is a separate component file. You can edit content, reorder sections, or remove ones you don’t need.How It’s Built
The landing page route is atapps/web/src/routes/index.tsx. It imports and renders each section in order:
Sections
Each section lives in its own file underapps/web/src/components/landing/:
| Section | File | What It Shows |
|---|---|---|
| Hero | hero.tsx | Main headline, subheading, CTA buttons |
| Social Proof | social-proof.tsx | Logos or trust indicators |
| Problem/Solution | problem-solution.tsx | Pain points and how BunShip solves them |
| Features | features.tsx | Feature grid with icons and descriptions |
| Code Preview | code-preview.tsx | Syntax-highlighted code example |
| Stats | stats.tsx | Key numbers (routes, components, etc.) |
| Testimonials | testimonials.tsx | Customer/user quotes |
| Pricing Preview | pricing-preview.tsx | Plan cards with pricing |
| FAQ | faq.tsx | Frequently asked questions accordion |
| CTA | cta.tsx | Final call-to-action with button |
Editing Content
Open the section file and change the text, links, or images. Each file is self-contained — the content is right there in the component. For example, to change the hero headline, editapps/web/src/components/landing/hero.tsx and find the heading text.
To update FAQ questions, edit apps/web/src/components/landing/faq.tsx and modify the questions array.
Reordering Sections
Change the order inapps/web/src/routes/index.tsx. Move components up or down:
Removing Sections
Delete the component fromindex.tsx and optionally remove the import. For example, to remove the social proof bar:
- Remove
<SocialProof />from the JSX - Remove
SocialProoffrom the import statement - Optionally delete
apps/web/src/components/landing/social-proof.tsx
Adding New Sections
- Create a new file in
apps/web/src/components/landing/, e.g.integrations.tsx - Export a component:
- Add it to the barrel export in
apps/web/src/components/landing/index.ts(if one exists) or import directly inindex.tsx - Place it where you want in the page
Header and Footer
The marketing header and footer are separate from the landing sections:- Header:
apps/web/src/components/marketing-header.tsx— Logo, navigation links, CTA button - Footer:
apps/web/src/components/marketing-footer.tsx— Links, social icons, copyright
Pricing Page
The dedicated pricing page is atapps/web/src/routes/_marketing/pricing.tsx. It shows detailed plan comparison and links to Stripe checkout. Update plan names, features, and prices there.
Next Steps
- Theming & Branding — Change the brand color and visual style
- Adding Pages — Add new marketing pages to the site

