Nine Lives

Template gallery

Every section of the site template, drawn live with a sample client (Harbor Light Plumbing, a made-up plumber). Pick where it should go, copy the prompt and paste it into Claude Code in the client's site repo.

Template core v1.2.0. For the team only: no search engine indexes it, nothing here counts visitors or sends a form.

Optional blocks of the sample client

Each switch is one setting in site.config.ts that a client can turn on. The previews that read it change as you switch.

Core sections

Built into every site from @site/ui and @site/seo. Each prompt says whether to place the section or just turn on its setting.

Notice bar

core v1.2.0 NoticeBar

A slim bar above the header for holiday hours, "Now hiring" or storm service.

Changes with: Notice bar.

Open on its own

Hero

core v1.2.0 Hero

The big opening section with the page heading, a photo and the call button.

Open on its own

Service grid

core v1.2.0 ServiceGrid

One card per service, each linking to that service’s page.

Open on its own

Reviews

core v1.2.0 Reviews

Customer reviews with star ratings.

Open on its own

Areas served

core v1.2.0 AreaList

The towns the business covers, each linking to its own page.

Open on its own

FAQ

core v1.2.0 Faq

Questions that open and close. Works with a keyboard and without JavaScript.

Open on its own

Trust badges

core v1.2.0 TrustBadges

"Licensed · Insured · Bonded" and each license number, exactly as the client gave them.

Changes with: Licenses and insurance.

Open on its own

Call-to-action band

core v1.2.0 CtaBand

A coloured strip near the bottom of a page asking the visitor to call.

Open on its own

Quote form

core v1.2.0 ContactFormShell

The fields of the quote form. In the gallery it sends nothing.

Open on its own

24/7 emergency service

core v1.2.0 EmergencyBadge, EmergencyLine

The emergency badge (header and sticky bar) and the emergency line on the contact page.

Changes with: 24/7 emergency badge.

Open on its own

"Open now" status

core v1.2.0 OpenStatus

"Open now until 5 PM" or "Closed, opens Mon 7 AM", worked out in the visitor’s browser.

Changes with: "Open now" status, 24/7 emergency badge.

Open on its own

Call and text buttons

core v1.2.0 CallButton, TextButton

Tap-to-call and tap-to-text buttons in the three looks the sections use.

Changes with: "Text us" button.

Open on its own

Sticky call bar

core v1.2.0 StickyCallBar

The call button pinned to the bottom of the screen on phones, with optional text and schedule buttons.

Changes with: "Text us" button, "Schedule service" button, 24/7 emergency badge.

Open on its own

Search-engine tags

core v1.2.0 Seo (@site/seo)

The tab title, description, share preview and structured data every page gets.

Open on its own

Packages

Large optional features added with pnpm nl add, each at its tagged version.

Not in this build, because nl-packages couldn't be read here (it is private): sign in with gh auth login and gh auth setup-git, then build again.

  • before-after: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • blog: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • careers: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • commercial: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • espanol: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • estimate: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • financing: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • offers: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • pricing: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • projects: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • rebates: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • team: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • warranty: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  • water-quality: Couldn't reach https://github.com/Nine-Lives-Dev/nl-packages.git: fatal: could not read Username for 'https://github.com': terminal prompts disabled