Skip to content

Local Service Landing Page

A booking widget above the fold, every price published including the awkward ones, and a footer carrying the registrations a regulated trade must show.

9 blocks353 lineslucide-reactAdded 2 Sept 2026

What's included

  • app/local-service-landing-page.tsx
  • 9 blocks it is built from, installed with it
  • Needs lucide-react

Works with

  • React
  • Next.js
  • Tailwind CSS
  • TypeScript

npx hoverlab add local-service-landing-page

Or over MCP, from your editor's agent — no account needed.

License

Free to read, copy and install, for personal and non-commercial projects. Shipping it in client work or a paid product needs Pro ($79 once). The source lands in your repo and stops being ours — no attribution, nothing to upgrade.

Was this useful?

Preview

Stockbridge, Edinburgh — NHS and private

A dentist you can get into this week

Same dentist every visit, prices on the wall, and an appointment that starts when it says it does. Taking new NHS patients as of this month.

Average wait for a first appointment: 2 days

Pick a day

Free to cancel up to 24 hours before.

2004
practising on this street since
Same building, third generation
4.9
from 612 Google reviews
We answer the bad ones too
48 hrs
typical wait for a check-up
Same day for anything painful
Yes
taking NHS patients
Checked and updated every Monday

What are you coming in for?

Most people arrive for one of these four. Prices are on the next section, in full, including the ones nobody likes quoting.

A check-up

You are overdue and slightly embarrassed about it

  • Nobody will comment on how long it has been
  • Examination, X-rays if needed, and a written plan
  • From £29 on the NHS band 1
Book a check-up

Something hurts

You need to be seen today, not in a fortnight

  • Emergency slots held back every morning and afternoon
  • Ring before 9am and you will be seen the same day
  • Registered or not — we will not turn you away in pain
Call the practice

You are nervous

The last time went badly and you have avoided it since

  • A first appointment where nothing happens but talking
  • Sedation available, and a stop signal that we actually stop for
  • Two of our dentists are specifically trained for this
Read how it works

Straightening or whitening

You have been looking at this for a while

  • Clear aligners, veneers and whitening, quoted before we start
  • A free 15-minute consultation with no obligation
  • Finance over 12 months at 0%
See prices

What people round here say

Pulled from our Google reviews, with permission and without editing.

“I had not been to a dentist in eleven years and had worked myself into a state about it. They gave me an appointment where they just talked me through it and did nothing else. Went back a fortnight later and got it all done.”
Alison M.Comely Bank
“Rang at 8:40 with a broken filling and was in the chair by 11. No fuss about not being registered, and the price was what they said on the phone.”
Tomasz K.Stockbridge
“Third generation of my family to use them. My gran went to the current dentist’s grandfather. They are not the cheapest and they have never once tried to sell me something I did not need.”
Fiona R.Dean Village
“The aligners came in about £400 over the first estimate because I needed extra refinements. They flagged it before doing the work rather than on the invoice, which is the only reason this is still five stars.”
Dan H.New Town
“Parking is genuinely a nightmare and they tell you so on the phone rather than letting you find out. Use the Raeburn Place car park.”
Priya S.Inverleith
“They ran 25 minutes late once in four years and the receptionist rang me before I left the house.”
George W.Canonmills

Every price, on the page

Including the ones practices normally make you ring for. NHS bands are set nationally and change each April; the private column is ours.

Every price, on the page — features by plan
FeatureNHS Band 1NHS Band 2PopularPrivate
Examination and diagnosis£29.00IncludedFrom £95
X-rays, where clinically neededIncludedIncludedIncluded
Scale and polishIf requiredIncludedFrom £75
FillingsNot included£78.00From £145
Root canal treatmentNot included£78.00From £420
ExtractionNot included£78.00From £180
Emergency appointment£29.00£29.00£110
WhiteningNot includedNot includedFrom £320
Veneers, per toothNot includedNot includedFrom £480
Clear aligners, full courseNot includedNot included£1,900–£3,400
Written quote before treatment startsIncludedIncludedIncluded
0% finance over 12 months, above £500Not includedNot includedIncluded
Free if under 18, pregnant, or on qualifying benefitsIncludedIncludedNot included

Visiting us

The things people ring up to ask

Getting here

Where do I park?

Honestly: not easily. Raeburn Place has a pay-and-display two minutes away and is your best bet. There is no practice car park and the residents’ bays are enforced. Give yourself ten minutes more than you think.

Is the practice accessible?

Ground floor, step-free from the street, and one surgery with a wheelchair-accessible chair. The upstairs surgeries have no lift — tell us when booking and we will put you downstairs.

Cost and payment

Am I entitled to free NHS treatment?

Under 18, under 19 and in full-time education, pregnant or having had a baby in the last 12 months, or on qualifying benefits. Bring the evidence to the first appointment — claiming without it and being checked later means paying the full charge plus a penalty.

Will I be told the price before you start?

Always, in writing, and we do not begin until you have said yes to it. If something changes mid-treatment we stop and tell you rather than adding it to the bill.

If you are nervous

Can I come in without having anything done?

Yes, and a fair number of people do. Fifteen minutes, sitting up, nothing in your mouth. Two of our dentists have specific training in dental anxiety and it is not treated as an unusual request.

What sedation do you offer?

Inhalation sedation for most anxious patients and intravenous sedation for longer or more difficult work. Both need a chat first, and IV sedation needs someone to take you home.

Out of hours

What do I do at the weekend?

Ring the practice number and the message gives you the NHS 24 dental line. For anything involving facial swelling, difficulty swallowing or uncontrolled bleeding, go to A&E rather than waiting for Monday.

Or just ask us something

A real person reads these during practice hours and answers the same day. If it is urgent, ring instead — we will always pick up faster than we type.

Weekdays 8am–6pm, Saturdays 9am–1pm. Closed Sundays and bank holidays.

The real page, rendered in your current theme — every section below is a live block, not a screenshot.

Built from

All blocks
  1. Responsive NavbarBrand, links and CTAs with a mobile panel that unmounts when closed — so its links are never tabbable while invisible — plus escape-to-close and focus return.
  2. Appointment Booking HeroA day strip built as a radio group rather than buttons, so arrow keys move between dates and sold-out days disable properly — the fold for anything sold by the appointment.
  3. Hairline Stats BandA four-up metrics strip with 1px hairline dividers, built from a single gap-px grid so the rules stay crisp on any display.
  4. Audience Persona CardsA "who this is for" grid: four cards naming an audience, the outcome they want and the bullets that get them there.
  5. Masonry Testimonial WallQuotes packed by height using CSS multi-column, with star ratings, initial avatars and no ragged bottom edge.
  6. Plan Comparison MatrixA real table with scoped headers, a sticky first column and screen-reader text behind every check and dash.
  7. FAQ Grouped by TopicAnchor-linked topic pills over per-topic details groups with the first answer open — for the FAQ that outgrew a single list, working with JavaScript disabled.
  8. Split Contact FormA contact form beside the channels that bypass it — a real address, a support link and a response-time promise, which is what makes a form people cannot see into feel worth filling.
  9. Regulated Seller FooterLegal entity, company number, registered address, VAT and the consumer links an EU or UK seller has to publish — with a region control that changes the terms, not just the currency.

Only want one section? Open it and copy that block instead — browse Navigation.

Shipped in these templates

Want the whole project rather than this one screen? A template ships every route, the theme tokens and the layout.

Source

app/local-service-landing-page.tsx
/**
 * A local-service landing page, assembled from blocks.
 *
 * The visitor is on a phone, two streets away, and comparing three
 * practices with the same five-star average. Almost nothing that works on a
 * SaaS page works here, and the running order says why:
 *
 *   navbar          the phone number is the CTA, not "start free"
 *   hero            an actual booking widget — pick a day, not "get in touch"
 *   stats           the four facts a local business is chosen on
 *   personas        which of these visits is yours, priced from
 *   testimonials    named locals, because that is who they trust
 *   prices          a price list for real treatments, not "plans"
 *   faq             parking, insurance, nervous patients, out of hours
 *   contact         a form and a map, because half of them will not book online
 *   footer          the registration numbers a regulated trade must publish
 *
 * THE BOOKING WIDGET IS THE PAGE. `<HeroBooking>` puts real days and slot
 * counts above the fold, which is the whole conversion. A "Contact us"
 * button in that position sends the visitor to whichever competitor let
 * them pick Thursday.
 *
 * WHY PRICES ARE ON IT. Local services habitually hide prices behind a
 * consultation, and the visitor reads that as expensive. Publishing the
 * list is the single highest-leverage difference between this page and the
 * one it replaces — including the numbers nobody likes quoting, because a
 * list with the awkward rows missing is read as a list with something to
 * hide.
 *
 * That section is a `<ComparisonTable>` rather than `<PricingTiers>`, which
 * was the obvious block and is the wrong one: its monthly/yearly toggle is
 * not optional, and "save 20% by paying annually" on a filling is nonsense.
 * A price list is a table.
 *
 * WHY THE FOOTER IS THE COMPLIANCE ONE. A regulated trade has to publish
 * its registration, its regulator and its complaints route. `<FooterMega>`
 * would look better and be missing the things an inspector asks for.
 *
 * Every section takes props, so this file is a running order rather than a
 * wall of copy — swap the content without touching the layout.
 */

import * as React from 'react'

import { NavbarSimple } from '@/components/navbar-simple'
import { HeroBooking } from '@/components/hero-booking'
import { StatsBand } from '@/components/stats-band'
import { PersonaCards } from '@/components/persona-cards'
import { TestimonialGrid } from '@/components/testimonial-grid'
import { ComparisonTable } from '@/components/comparison-table'
import { FaqCategorized } from '@/components/faq-categorized'
import { ContactFormSplit } from '@/components/contact-form-split'
import { FooterCompliance } from '@/components/footer-compliance'

export default function LocalServiceLandingPage() {
  return (
    <div className="min-h-screen bg-background text-foreground">
      <NavbarSimple
        brand="Kirkwood Dental"
        links={[
          { label: 'Treatments', href: '#treatments' },
          { label: 'Prices', href: '#prices' },
          { label: 'Visiting', href: '#visiting' },
        ]}
        activeLabel="Treatments"
        // The phone number, not a sign-in. Nobody has an account here, and a
        // fair share of this traffic would rather ring than type.
        signInLabel="0131 496 0000"
        signInHref="tel:+441314960000"
        ctaLabel="Book online"
        ctaHref="#book"
      />

      <main>
        <div id="book">
          <HeroBooking
            eyebrow="Stockbridge, Edinburgh — NHS and private"
            heading="A dentist you can get into this week"
            subheading="Same dentist every visit, prices on the wall, and an appointment that starts when it says it does. Taking new NHS patients as of this month."
            submitLabel="Book this slot"
          />
        </div>

        <StatsBand
          stats={[
            {
              value: '2004',
              label: 'practising on this street since',
              caption: 'Same building, third generation',
            },
            {
              value: '4.9',
              label: 'from 612 Google reviews',
              caption: 'We answer the bad ones too',
            },
            {
              value: '48 hrs',
              label: 'typical wait for a check-up',
              caption: 'Same day for anything painful',
            },
            {
              value: 'Yes',
              label: 'taking NHS patients',
              caption: 'Checked and updated every Monday',
            },
          ]}
        />

        <div id="treatments">
          <PersonaCards
            heading="What are you coming in for?"
            subheading="Most people arrive for one of these four. Prices are on the next section, in full, including the ones nobody likes quoting."
            personas={[
              {
                name: 'A check-up',
                headline: 'You are overdue and slightly embarrassed about it',
                bullets: [
                  'Nobody will comment on how long it has been',
                  'Examination, X-rays if needed, and a written plan',
                  'From £29 on the NHS band 1',
                ],
                ctaLabel: 'Book a check-up',
                href: '#book',
              },
              {
                name: 'Something hurts',
                headline: 'You need to be seen today, not in a fortnight',
                bullets: [
                  'Emergency slots held back every morning and afternoon',
                  'Ring before 9am and you will be seen the same day',
                  'Registered or not — we will not turn you away in pain',
                ],
                ctaLabel: 'Call the practice',
                href: 'tel:+441314960000',
              },
              {
                name: 'You are nervous',
                headline: 'The last time went badly and you have avoided it since',
                bullets: [
                  'A first appointment where nothing happens but talking',
                  'Sedation available, and a stop signal that we actually stop for',
                  'Two of our dentists are specifically trained for this',
                ],
                ctaLabel: 'Read how it works',
                href: '#visiting',
              },
              {
                name: 'Straightening or whitening',
                headline: 'You have been looking at this for a while',
                bullets: [
                  'Clear aligners, veneers and whitening, quoted before we start',
                  'A free 15-minute consultation with no obligation',
                  'Finance over 12 months at 0%',
                ],
                ctaLabel: 'See prices',
                href: '#prices',
              },
            ]}
          />
        </div>

        {/* Named locals with the treatment attached. A wall of anonymous
            five-star quotes is what every competing practice already has. */}
        <TestimonialGrid
          heading="What people round here say"
          subheading="Pulled from our Google reviews, with permission and without editing."
          testimonials={[
            {
              quote:
                'I had not been to a dentist in eleven years and had worked myself into a state about it. They gave me an appointment where they just talked me through it and did nothing else. Went back a fortnight later and got it all done.',
              name: 'Alison M.',
              role: 'Comely Bank',
              rating: 5,
            },
            {
              quote:
                'Rang at 8:40 with a broken filling and was in the chair by 11. No fuss about not being registered, and the price was what they said on the phone.',
              name: 'Tomasz K.',
              role: 'Stockbridge',
              rating: 5,
            },
            {
              quote:
                'Third generation of my family to use them. My gran went to the current dentist’s grandfather. They are not the cheapest and they have never once tried to sell me something I did not need.',
              name: 'Fiona R.',
              role: 'Dean Village',
              rating: 5,
            },
            {
              quote:
                'The aligners came in about £400 over the first estimate because I needed extra refinements. They flagged it before doing the work rather than on the invoice, which is the only reason this is still five stars.',
              name: 'Dan H.',
              role: 'New Town',
              rating: 5,
            },
            {
              quote:
                'Parking is genuinely a nightmare and they tell you so on the phone rather than letting you find out. Use the Raeburn Place car park.',
              name: 'Priya S.',
              role: 'Inverleith',
              rating: 4,
            },
            {
              quote:
                'They ran 25 minutes late once in four years and the receptionist rang me before I left the house.',
              name: 'George W.',
              role: 'Canonmills',
              rating: 5,
            },
          ]}
        />

        {/* A price LIST, not pricing tiers.
            `<PricingTiers>` was the obvious block and is the wrong one: its
            monthly/yearly toggle is not optional, and "save 20% by paying
            annually" on a filling is nonsense. A comparison table is what a
            price list actually is — treatments down the side, what each one
            costs under each arrangement across the top. */}
        <div id="prices">
          <ComparisonTable
            heading="Every price, on the page"
            subheading="Including the ones practices normally make you ring for. NHS bands are set nationally and change each April; the private column is ours."
            columns={['NHS Band 1', 'NHS Band 2', 'Private']}
            highlightColumn={1}
            rows={[
              { feature: 'Examination and diagnosis', values: ['£29.00', 'Included', 'From £95'] },
              { feature: 'X-rays, where clinically needed', values: ['Included', 'Included', 'Included'] },
              { feature: 'Scale and polish', values: ['If required', 'Included', 'From £75'] },
              { feature: 'Fillings', values: [false, '£78.00', 'From £145'] },
              { feature: 'Root canal treatment', values: [false, '£78.00', 'From £420'] },
              { feature: 'Extraction', values: [false, '£78.00', 'From £180'] },
              { feature: 'Emergency appointment', values: ['£29.00', '£29.00', '£110'] },
              { feature: 'Whitening', values: [false, false, 'From £320'] },
              { feature: 'Veneers, per tooth', values: [false, false, 'From £480'] },
              { feature: 'Clear aligners, full course', values: [false, false, '£1,900–£3,400'] },
              { feature: 'Written quote before treatment starts', values: [true, true, true] },
              { feature: '0% finance over 12 months, above £500', values: [false, false, true] },
              {
                feature: 'Free if under 18, pregnant, or on qualifying benefits',
                values: [true, true, false],
              },
            ]}
          />
        </div>

        <div id="visiting">
          <FaqCategorized
            eyebrow="Visiting us"
            heading="The things people ring up to ask"
            topics={[
              {
                name: 'Getting here',
                questions: [
                  {
                    question: 'Where do I park?',
                    answer:
                      'Honestly: not easily. Raeburn Place has a pay-and-display two minutes away and is your best bet. There is no practice car park and the residents’ bays are enforced. Give yourself ten minutes more than you think.',
                  },
                  {
                    question: 'Is the practice accessible?',
                    answer:
                      'Ground floor, step-free from the street, and one surgery with a wheelchair-accessible chair. The upstairs surgeries have no lift — tell us when booking and we will put you downstairs.',
                  },
                ],
              },
              {
                name: 'Cost and payment',
                questions: [
                  {
                    question: 'Am I entitled to free NHS treatment?',
                    answer:
                      'Under 18, under 19 and in full-time education, pregnant or having had a baby in the last 12 months, or on qualifying benefits. Bring the evidence to the first appointment — claiming without it and being checked later means paying the full charge plus a penalty.',
                  },
                  {
                    question: 'Will I be told the price before you start?',
                    answer:
                      'Always, in writing, and we do not begin until you have said yes to it. If something changes mid-treatment we stop and tell you rather than adding it to the bill.',
                  },
                ],
              },
              {
                name: 'If you are nervous',
                questions: [
                  {
                    question: 'Can I come in without having anything done?',
                    answer:
                      'Yes, and a fair number of people do. Fifteen minutes, sitting up, nothing in your mouth. Two of our dentists have specific training in dental anxiety and it is not treated as an unusual request.',
                  },
                  {
                    question: 'What sedation do you offer?',
                    answer:
                      'Inhalation sedation for most anxious patients and intravenous sedation for longer or more difficult work. Both need a chat first, and IV sedation needs someone to take you home.',
                  },
                ],
              },
              {
                name: 'Out of hours',
                questions: [
                  {
                    question: 'What do I do at the weekend?',
                    answer:
                      'Ring the practice number and the message gives you the NHS 24 dental line. For anything involving facial swelling, difficulty swallowing or uncontrolled bleeding, go to A&E rather than waiting for Monday.',
                  },
                ],
              },
            ]}
          />
        </div>

        {/* Roughly half of this traffic will not book online no matter how
            good the widget is. The form and the phone number are for them. */}
        <ContactFormSplit
          heading="Or just ask us something"
          subheading="A real person reads these during practice hours and answers the same day. If it is urgent, ring instead — we will always pick up faster than we type."
          channels={[
            { icon: 'chat', label: 'Reception', value: '0131 496 0000', href: 'tel:+441314960000' },
            { icon: 'mail', label: 'Email', value: 'hello@kirkwood.example', href: 'mailto:hello@kirkwood.example' },
            { icon: 'map', label: 'Find us', value: '14 Raeburn Place, Edinburgh EH4 1HN' },
          ]}
          responseNote="Weekdays 8am–6pm, Saturdays 9am–1pm. Closed Sundays and bank holidays."
          submitLabel="Send the message"
          successMessage="Thanks — we have got it and will come back to you today."
        />
      </main>

      {/* One region, not the block's default three. A single-site practice
          that renders a UK/EU/US switcher is claiming to be a multinational,
          and the regulator line is the part that has to be right. */}
      <FooterCompliance
        brand="Kirkwood Dental"
        paymentMethods={['Visa', 'Mastercard', 'Apple Pay', 'Cash']}
        regions={[
          {
            id: 'uk',
            label: 'United Kingdom',
            entity: 'Kirkwood Dental Care Ltd',
            registration:
              'Registered in Scotland, company no. SC418902. Regulated by the General Dental Council; practice registration no. 214880.',
            address: ['14 Raeburn Place', 'Edinburgh EH4 1HN', 'United Kingdom'],
            taxLine:
              'VAT registration GB 341 8802 17. Most dental treatment is VAT-exempt; cosmetic work may not be.',
            extraLinks: [
              { label: 'Complaints procedure', href: '#complaints' },
              { label: 'GDC register', href: '#gdc' },
              { label: 'Practice inspection reports', href: '#inspections' },
            ],
          },
        ]}
      />
    </div>
  )
}

How to use it

  1. 1. Copy each of the 9 blocks above into components/ — each block page has its own copy button.
  2. 2. Drop this file at app/local-service-landing-page.tsx. The imports already point at @/components/…, so they resolve with no edits.
  3. 3. Delete the sections you do not want. Every block takes props, so the copy changes without the layout moving.

For AI

The component, its props, the design tokens it expects and the command that installs it — as one prompt. Paste it into Claude, Cursor, v0 or ChatGPT and what they build around it will match the rest of the catalog instead of inventing its own system.

See the prompt

More Marketing Pages

Open the full page for this page

SaaS Landing Page

A complete marketing page in the order that actually converts — hook, proof, substance, price, objections, exit. Twelve blocks, navbar and footer included.

Marketing Pages12 blocks89 lines
Open the full page for this page

Pricing Page

Plans, a feature matrix and a pricing-specific FAQ written to remove the last purchase objection rather than answer general questions.

Marketing Pages3 blocks94 lines
Open the full page for this page

Waitlist Landing Page

A pre-launch page for a product you cannot buy yet: one email field, scarcity instead of adoption, and no pricing section to be held to later.

Marketing Pages9 blocks206 lines
Open the full page for this page

Developer Tool Landing Page

Install command first, real code before any prose, and a usage calculator instead of tiers — the order a developer actually scans in.

Marketing Pages9 blocks254 lines
Open the full page for this page

Mobile App Landing Page

Store badges above the fold, the App Store rating as the first proof, and a single price — a page with one job, which is the install.

Marketing Pages9 blocks231 lines
Open the full page for this page

Agency Landing Page

A studio site: full-bleed hero, client list, engagements described as engagements, and the actual team — with no pricing, on purpose.

Marketing Pages9 blocks216 lines
Open the full page for this page

Marketplace Landing Page

Two audiences, one page: a search field and real listings for buyers up top, the seller economics below, and a searchable FAQ because they ask different things.

Marketing Pages9 blocks354 lines
Open the full page for this page

Enterprise Landing Page

Built for a champion assembling an internal case: numbers in the hero, a comparison that concedes two rows, video references, and published prices instead of a sales wall.

Marketing Pages10 blocks336 lines
Open the full page for this page

Integration Platform Landing Page

The connector names in the hero, a catalogue with honest live/beta/planned status, four SDK languages, credit pricing, and a dated roadmap for everyone who is not on the list.

Marketing Pages9 blocks377 lines
Open the full page for this page

Creator Course Landing Page

One person selling one course: a student testimonial as the hero because a course cannot demo, a long instructor section, one price and a refund policy on the page.

Marketing Pages10 blocks243 lines

Blog Index

The post grid, a subscribe ask that comes after the proof, and a minimal footer — no hero, because the featured post already is one.

Marketing Pages4 blocks39 lines
Open the full page for this page

Article Page

A single post: header, byline and opening prose in one reading column, with the subscribe form after the article — at the only moment it converts.

Marketing Pages4 blocks39 lines
Open the full page for this page

Careers Page

Team first, openings second, then the questions candidates only ask after an offer — answered while they can still change who applies.

Marketing Pages6 blocks72 lines
Open the full page for this page

Documentation Page

The site navbar over the three-column docs frame. In your project this is one catch-all route — the slug picks the article, the frame never changes.

Marketing Pages2 blocks30 lines
Open the full page for this page

Help Centre

Search first, the six answers that absorb the most contact volume under it, and the ticket form in plain sight rather than behind a modal — a support page measured in tickets not filed.

Marketing Pages7 blocks162 lines
Open the full page for this page

Changelog Page

The release timeline with the site chrome kept on, and the one subscribe form on the site that is not a detour — "tell me when this page changes" is exactly what it promises.

Marketing Pages4 blocks39 lines
Open the full page for this page

Security & Trust

The page a security questionnaire arrives from, written to be forwarded rather than to persuade: certifications early, benchmarks with a denominator, objections in a reviewer’s own words, and a route to a human.

Marketing Pages8 blocks60 lines
Open the full page for this page

Switching & Migration

The landing page for a reader whose current tool already works: the migration mechanism second rather than buried, integrations stated at depth, and deliberately no pricing section.

Marketing Pages8 blocks57 lines
Open the full page for this page

Launch Note

A product announcement shaped as writing rather than a landing page — serif headline, real byline, three pieces of evidence, and an endpoint card that doubles as documentation for the week before the docs exist.

Marketing Pages6 blocks53 lines
Open the full page for this page

Single Offer

One thing, one price, named above the fold — for a course, a consultation or a one-time licence, where there is nothing to compare against and hiding the number answers the only question last.

Marketing Pages7 blocks57 lines
Take 1 of 2
Open the full page for this page

About Page

No hero — a reader who clicked "About" has already read the pitch and is checking whether the company is real, so the page opens with numbers and a timeline instead of a headline.

Marketing Pages7 blocks110 lines
Take 1 of 2
Open the full page for this page

Contact Page

The form first, then the four questions that cause most of the messages — answered here, because that is faster for the sender than a reply and leaves the inbox for what needs a person.

Marketing Pages4 blocks77 lines
Take 1 of 2
Open the full page for this page

Team Page

Who we are, as distinct from who we are hiring: faces, the shape of the company in four numbers, and three working commitments that could actually be falsified.

Marketing Pages6 blocks91 lines
Take 1 of 2
Open the full page for this page

FAQ Page

Search and browse, in that order, because the two halves serve opposite visitors — one arrives from a search engine with a phrase, the other from the navbar with none.

Marketing Pages5 blocks170 lines
Take 1 of 2
Open the full page for this page

Case Study

The numbers above the story, which is the opposite of how these are usually written: the colleague this link gets forwarded to needs the result in the first screen.

Marketing Pages7 blocks116 lines
Take 1 of 2
Open the full page for this page

Case Study Index

Excerpts that lead with the outcome rather than the customer’s biography, filterable by industry — because the reader is scanning for a problem that resembles their own.

Marketing Pages6 blocks134 lines
Take 1 of 2
Open the full page for this page

Services Page

For a business that sells work rather than licences: three engagements named by situation, and prices in a comparison table rather than a pricing card with a monthly toggle that does not apply.

Marketing Pages7 blocks173 lines
Take 1 of 2
Open the full page for this page

Integrations Directory

Every connection with its real status on the card — live, beta or planned — because a directory that hides which is which is discovered at exactly the wrong moment.

Marketing Pages6 blocks153 lines
Take 1 of 2
Open the full page for this page

Integration Detail

One connection, answering the four questions an integration page usually leaves to a support ticket: which records move, which way, how often, and what happens on conflict.

Marketing Pages8 blocks189 lines
Take 1 of 2
Open the full page for this page

Comparison / Alternatives

The competitor-name landing page, with a section naming where each rival is the better buy — which is what makes the other forty rows believable.

Marketing Pages7 blocks143 lines
Take 1 of 2
Open the full page for this page

Public Roadmap

Board plus changelog, because a roadmap alone is a promise — the last three releases underneath are what turn the shipped column into something with dates attached.

Marketing Pages6 blocks143 lines
Take 1 of 2
Open the full page for this page

Webinar / Event

Registration at the top and again at the bottom, with an agenda timed by the minute — so the reader knows what they are getting before handing over an address.

Marketing Pages7 blocks139 lines
Take 1 of 2
Open the full page for this page

Coming Soon

The shortest page in the catalog, and it still says what the product does — including what it will not do at launch. No countdown, because a clock at zero is worse than no clock.

Marketing Pages4 blocks88 lines
Take 1 of 2
Open the full page for this page

Community Page

Member counts and reply times on every door, because "join our community" with no number reads as an invitation into an empty room — plus a digest for people who will not install another chat app.

Marketing Pages7 blocks101 lines
Take 1 of 2
Open the full page for this page

Affiliate Programme

Terms before the application, and a calculator so the reader sees a number rather than doing arithmetic with an ARPU they do not know.

Marketing Pages7 blocks128 lines
Take 1 of 2
Open the full page for this page

Testimonials Wall

Third-party scores first, because they are the only part of the page the company does not control — and the four-star quotes stay in, because a wall of nothing but fives reads as filtered.

Marketing Pages7 blocks174 lines
Take 1 of 2
Open the full page for this page

Gallery / Showcase

A switcher rather than an infinite grid: four named views, one visible at a time, so the page weighs one image on load instead of forty.

Marketing Pages7 blocks111 lines
Take 1 of 2
Open the full page for this page

Portfolio Index

A studio’s list of work, with excerpts that name the outcome and the constraint rather than the aesthetic — a contents page, not a landing page.

Marketing Pages7 blocks144 lines
Open the full page for this page

Developer Portfolio

An engineer’s portfolio that opens on a terminal rather than a gradient, and puts thirty legible lines of real code on the page — because a portfolio that only links to repositories asks the reader to go and judge for themselves, and almost nobody does.

Marketing Pages9 blocks304 lines
Open the full page for this page

Résumé

A personal site whose home page is the CV itself, printable, so the document that decides whether you get a reply is the one that is actually maintained. Four blocks, and the restraint is the design.

Marketing Pages4 blocks91 lines
Open the full page for this page

Crypto Exchange Landing

A regulated exchange’s front door: a moving price rail before a word of copy, custody and reserves above the feature grid, and the risk warning as a section rather than as small print.

Marketing Pages10 blocks307 lines
Open the full page for this page

Markets

The public price screen — sparklines instead of a percentage column, because two assets both up 4% got there differently, and that shape is what a trader is scanning for.

Marketing Pages7 blocks200 lines
Open the full page for this page

Conference Landing

A conference home page built around a deadline: the price step-up above the hero, the programme extract above the speakers, and tickets as a comparison rather than a plan picker.

Marketing Pages10 blocks294 lines
Open the full page for this page

Conference Programme

Both days in full, as two grids rather than a day switcher — because this is the page people print, and a tab hides half of it from find-in-page.

Marketing Pages4 blocks263 lines
Open the full page for this page

Restaurant Landing

Hours, address and phone as a first-class section directly under the hero, then the menu — the two jobs a restaurant site has, in the order visitors actually need them.

Marketing Pages9 blocks236 lines
Open the full page for this page

Menu

The full bill of fare, typeset with leaders and dietary marks, split into food and drink because a diner reads the two differently. No photography, deliberately.

Marketing Pages5 blocks335 lines
Open the full page for this page

Table Reservation

Two booking blocks on purpose: four nights with free-slot counts to answer “is there any point”, then the real grid. The cancellation policy is stated before the button, not in the confirmation email.

Marketing Pages6 blocks183 lines
Open the full page for this page

Property Search

An estate agency home page where search owns the first screen and results are already populated, plus the achieved-against-asking figure most agents will not publish.

Marketing Pages7 blocks183 lines
Open the full page for this page

Property Detail

A product detail page with different stakes: tenure, council tax, EPC and chain position above the prose, and a description that names a flaw so the rest is believed.

Marketing Pages8 blocks214 lines
Open the full page for this page

Job Board

A two-sided marketplace where only one side is reading — candidates get the whole page, employers get one section. Every listing carries a real salary range, which is the entire differentiator.

Marketing Pages8 blocks248 lines
Open the full page for this page

Job Listing

One role, with the four facts a candidate needs before the mission statement and the whole interview process published — stages, hours, and whether the take-home is paid.

Marketing Pages8 blocks229 lines
Open the full page for this page

Newsletter Landing

The archive is the argument, so it sits above the testimonials, and the three worries about handing over an address are answered as content rather than as small print.

Marketing Pages8 blocks268 lines
Open the full page for this page

Open Source Project

The install command above the hero, the API in twenty lines, and who funds it said plainly — because “what happens if the sponsors stop” is the question that decides whether a team takes the dependency.

Marketing Pages9 blocks295 lines
Open the full page for this page

Directory Index

Faceted by pricing model and hosting rather than by category, because the reader already knows the category. Publishes its own removal rate, which is a claim that can be checked.

Marketing Pages8 blocks333 lines
Open the full page for this page

Directory Listing

One entry, compared against the two obvious alternatives — against the vendor’s interest and exactly in the reader’s. No buy button and no affiliate link, which is what makes the comparison credible.

Marketing Pages9 blocks251 lines
Open the full page for this page

Streaming Service Landing

The catalogue sells itself: rails second, features far down as objection handling, and a real watch screen on the marketing page instead of a device montage.

Marketing Pages8 blocks257 lines
Open the full page for this page

Watch

The one page in the catalog whose job is to get out of the way — player, chapters, a searchable transcript, and no comments section, because a thread is a moderation commitment rather than a component.

Marketing Pages5 blocks182 lines
Take 2 of 2
Open the full page for this page

About Page 02

The founder’s letter instead of the evidence wall: a byline and a dateline, for a company whose best asset is still conviction rather than a six-year record — and it ends on the job board, because /team is linked from job posts more often than from sales decks.

Marketing Pages7 blocks170 lines
Take 2 of 2
Open the full page for this page

Contact Page 02

Route before you write — three doors, each with the form its sender actually needs: a calendar for a buyer, a structured ticket for a broken import. One textarea costs a round trip.

Marketing Pages6 blocks147 lines
Take 2 of 2
Open the full page for this page

Team Page 02

The team page that is really a recruiting page: it opens on the trade rather than the faces, and puts a salary band on every role — a board with three bands and one “competitive” teaches the reader which is the bad one.

Marketing Pages7 blocks154 lines
Take 2 of 2
Open the full page for this page

FAQ Page 02

Objection-ordered and search-free: the questions that lose deals first, hardest at the top, because a search box over eighteen questions implies a list long enough to get lost in — and its empty state reads as “no refund policy”.

Marketing Pages6 blocks215 lines
Take 2 of 2
Open the full page for this page

Case Study 02

The narrative take, for a study found by search rather than forwarded by a champion: the customer’s sentence first, the numbers last, and the six weeks in the middle where the software was losing to a spreadsheet.

Marketing Pages7 blocks153 lines
Take 2 of 2
Open the full page for this page

Case Study Index 02

A results directory rather than a reading list: search the situation, facet by entity count and ledger, and the aggregate claim sits at the bottom underneath the thirty-four rows it was computed from.

Marketing Pages7 blocks205 lines
Take 2 of 2
Open the full page for this page

Services Page 02

One productised engagement with the price in the first screen and no mandatory call — a fixed price behind a scoping call is consulting with extra steps. Includes the paragraph naming when it is the wrong shape.

Marketing Pages8 blocks185 lines
Take 2 of 2
Open the full page for this page

Integrations Index 02

Search-first, with facet counts including the zeroes — nobody browses an integration directory, and “Payroll (0)” answers the question inside the list the reader is already looking at.

Marketing Pages7 blocks193 lines
Take 2 of 2
Open the full page for this page

Integration Detail 02

The setup guide, not the pitch: what moves and which way, then a five-step wizard — written for the person turning the connector on rather than the one deciding to buy it.

Marketing Pages7 blocks309 lines
Take 2 of 2
Open the full page for this page

Alternatives Page 02

One rival, head to head, for a reader who already owns the competitor — so the argument is what a migration costs, and the page opens by telling roughly a third of its readers to stay where they are.

Marketing Pages8 blocks219 lines
Take 2 of 2
Open the full page for this page

Roadmap Page 02

Themes and refusals, no quarters — four problems stated as problems, plus the four things we have decided never to build, which is the section that takes nerve and the one customers actually need.

Marketing Pages7 blocks180 lines
Take 2 of 2
Open the full page for this page

Webinar Page 02

The replay, ungated, for the traffic that arrives months after the event — the gate moves to the transcript and the template, where it is a trade rather than a toll.

Marketing Pages7 blocks192 lines
Take 2 of 2
Open the full page for this page

Coming Soon 02

A referral queue with a real position: three places per invite, forty admitted a week, and the admission ceiling on the page rather than in the confirmation email — otherwise it is a dark pattern with a progress bar.

Marketing Pages5 blocks116 lines
Take 2 of 2
Open the full page for this page

Community Page 02

The calendar is the community: the next session bookable in the first screen, the month underneath, and the chat links demoted to a strip — an idle Slack is a worse first impression than a half-full calendar.

Marketing Pages6 blocks137 lines
Take 2 of 2
Open the full page for this page

Affiliate Page 02

Proof before arithmetic — what four named partners actually earned last quarter, including the one for whom it is not working, and no calculator anywhere. A slider shows what you could earn from numbers you picked yourself.

Marketing Pages7 blocks212 lines
Take 2 of 2
Open the full page for this page

Testimonials Wall 02

Segmented by who is talking rather than sorted by score, because a wall of forty quotes is uniformly impressive and uniformly irrelevant — with the full rating spread underneath, ones included.

Marketing Pages8 blocks229 lines
Take 2 of 2
Open the full page for this page

Gallery Page 02

The whole catalogue at once, filterable, with the total stated up front — the opposite trade to the switcher, and it honestly costs ninety images on load rather than one.

Marketing Pages7 blocks209 lines
Take 2 of 2
Open the full page for this page

Portfolio Index 02

One project per screen, four in total, each naming the constraint it worked around — nobody reads four case studies, and the constraint is the only sentence a competitor cannot copy.

Marketing Pages7 blocks169 lines