Agency One-Page Landing

Polaris Studio

One page, because you
already know what an agency site says.

Who we are, four projects, the numbers they moved, and how to reach us. There is a longer version, but nobody has ever asked for it.

Designer arranging color swatches on a studio desk
Recent clients
Halden PressMeridian LabsFold QuarterlyKestrel GroupAmbitNordwell
The studio

Fourteen people in Lisbon, four projects at a time.

Motion-blur fashion portrait in warm light
Creative studio portrait with movement

2016

Founded in Lisbon

148

Brands shipped since

4

Projects at a time, never five

9

Weeks, kickoff to handover

Work

Four projects, and what each one was actually for.

Every one of these had a number attached before we started. The ones underneath are the numbers afterwards.

Analytics dashboard with charts and metrics on screen

Halden Press

A packaging system for a press that sells in shops it has never visited. The brief was shelf legibility at three metres; the answer was one ink and a much larger fold.

IdentityPackagingPrint
Marketing website analytics displayed on a laptop

Meridian Labs

A product identity built with the engineering team in the room from week one, so nothing was drawn that could not ship in the same quarter.

ProductDesign systemWeb
Mobile application interface shown on a smartphone

Fold Quarterly

An editorial grid handed over as rules rather than files. Six editors have used it since and none of them have called us.

EditorialTypeGuidelines
Code and components rendered on a developer screen

Kestrel Group

Eleven companies under one masthead without an internal war. Most of the work was the argument, and the drawing took three weeks.

ArchitectureNamingRollout
Results

The numbers our clients report, not the ones we counted.

Collected six to eighteen months after launch, from the people who signed the invoice rather than from our own analytics.

31%

Average lift in shelf pickup, Halden's own count

2×

Trial signups at Meridian, quarter on quarter

6

Editors who have run the Fold grid without asking us

0

Rebrands walked back since 2016

Contact

March is the next opening.

Tell us what the work has to do rather than what you want it to look like. A partner answers within two working days, and the noes come with reasons.

No pitch deck, no discovery invoice. A price and a date by the end of the week.

Polaris studio desk with design work in progress
About this page

Agency One-Page LandingPRO

A whole agency on one page: a floating card navbar anchored to the sections below it, an editorial split hero closing on a client strip, a stats-led studio band, four projects with what each was for, an inverted band of client-reported numbers, an inline contact form and a mega footer repeating the anchors.

Composed from 7 blocks. Installing this page installs all of them, plus the pieces and primitives they use.

Built in the Polaris collection.

Landing4: Agency One-Page Landing

A whole agency on one page: a floating card navbar anchored to the sections below it, an editorial split hero that closes on a client strip, a stats-led studio band, four projects with what each one was for, an inverted band of client-reported numbers, an inline contact panel, and a mega footer repeating the anchors. Seven blocks, one install, one page.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

bash
npx shadcn add "https://ui.beste.co/page/r/landing4?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the page to components/beste/page/landing4.tsx and everything behind it: the seven blocks it composes (navbar50, hero112, about34, showcase37, stats57, cta65, footer102), the button1 and badge6 components they use, and the shadcn/ui button primitive. Ten files, no follow-up installs.

Quick start

The installed file exports landing4Demo alongside the page: the exact props behind the preview above. Spread it to get a working page in one line.

tsx
import { Landing4, landing4Demo } from "@/components/beste/page/landing4";

export default function Page() {
  return <Landing4 {...landing4Demo} />;
}

Each section is a separate prop, so the usual next step is to keep the demo and replace one section at a time. Keep the navbar's href values pointing at the anchors, or the page stops navigating itself.

tsx
import { Landing4, landing4Demo } from "@/components/beste/page/landing4";

export default function Page() {
  return (
    <Landing4
      {...landing4Demo}
      results={{
        label: "Results",
        heading: "Numbers our clients reported, not ones we measured.",
        stats: [
          { value: "2.4x", label: "Repeat orders, first year after relaunch" },
          { value: "31%", label: "Lower cost per acquisition" },
          { value: "9 days", label: "From brief to first press check" },
        ],
      }}
    />
  );
}

Props

Every prop is the full prop object of the block that renders that section, so anything the block accepts is accepted here.

PropTypeDefaultDescription
navbarComponentProps<typeof Navbar50>Floating card navbar; its links are the anchors below
heroComponentProps<typeof Hero112>Editorial split hero, closing on the client strip
studioComponentProps<typeof About34>Stats-led studio band
workComponentProps<typeof Showcase37>Four projects, with what each was for
resultsComponentProps<typeof Stats57>Client-reported numbers
ctaComponentProps<typeof Cta65>Contact panel
footerComponentProps<typeof Footer102>Mega footer, repeating the anchors
classNamestringExtra classes for the page's outer wrapper

Sections

SectionAnchorBlockNotes
Studio#studioabout34Given bg-muted/50; figures before adjectives
Work#workshowcase37Four projects; each says what it was for, not what it looked like
Results#resultsstats57Rendered on the inverted band
Contact#contactcta65The page's only ask

Behavior notes

  • Every section is conditional on its own prop, so omitting results removes that section entirely rather than rendering an empty one. On a one-page site that also removes the target of a navbar link, so drop the matching link too.
  • The anchors belong to the page, not to the blocks: each section is wrapped in a div carrying the id and a scroll-mt offset, so no block is modified to be linkable.
  • Smooth scrolling is set by a page-level style element that targets html, with a prefers-reduced-motion guard. Element selectors only, so class obfuscation cannot detach it.
  • The navbar is sticky and floats as a card, so it needs the space either side of it. It sits above the hero rather than over it, since the hero starts on type and a bar laid over it would cover the first line.
  • The hero's heading is rendered as HTML, so a <br /> sets the line break and the words inside <strong> are the ones that drop to the muted tone. It is the one string on the page that is not plain text.
  • The hero's client strip is the page's first piece of evidence, and it names the same studios the work section then shows. Passing an empty clients array removes the strip and the rule above it.
  • The results band sits inside a wrapper carrying the dark class, which swaps the theme tokens for that subtree rather than painting the section, so the block's own figures and labels follow.
  • showcase37 lays out four projects. Three leaves a hole in the grid, and the copy convention here is what each project was for, which is what makes the section read as evidence rather than as a gallery.
  • The whole page is a client component, since the blocks it composes are. It fetches nothing and holds no state above the blocks.

Blocks in this page

Browse all blocks
PRO

navbar50

Floating Card Navbar

Detached floating navbar card with a square-mark wordmark, uppercase links and a compact seal CTA — the mobile menu unfolds inside the card.

PRO

hero112

Editorial Split Hero

Two-column studio hero with a two-tone headline, dual CTAs, tall image and a client wordmark strip.

PRO

about34

About Stats Grid

About section: eyebrow label, two-tone heading, two portraits beside a 2x2 stats grid.

PRO

showcase37

Showcase Scroller

Horizontally scrollable row of wide product showcase frames with captions.

PRO

stats57

Stats Band

Four-up oversized stats band with dividers under a section header.

PRO

cta65

Newsletter CTA

Split card with a subscribe form beside an image.

PRO

footer102

Mega Footer

Complete studio mega footer with brand column, link columns, socials and legal bar.