Creative Agency Home

Booking from March
Polaris Studio

Launches that are still working a year after the launch.

An independent studio building identity, packaging and the campaigns that carry them. Four projects at a time, run by the people who pitched them.

See the reel

148

Brands shipped

4

Projects at a time

2016

Studio founded

Brand layout pinned on a studio desk
Brand identity moodboard with color swatches
Concepts taped across a studio wall
Designer sketching interface wireframes
Developer building a product interface
Studio team reviewing launch creative
How it runs

Four phases, and you are in the room for all of them.

01

Week one, the argument

We take the brief apart with whoever wrote it. Most projects change shape here, which is the cheapest place for that to happen.

02

Weeks two to four, the routes

Two directions, drawn far enough apart that choosing between them is a real decision rather than a preference about a typeface.

03

Weeks five to eight, the system

The chosen route becomes rules, files and the awkward cases: the small sizes, the bad photograph, the sponsor lockup nobody planned for.

04

Launch and the month after

We stay on for the first month of real use, because the gap between a guideline and a working team is always wider than the guideline admits.

Recent projects, and what they were for.

Selected work
Bold abstract creative composition in warm tonesHalden
(01)Halden PressIdentity and packaging
Colorful geometric design mockup on a deskMeridian
(02)Meridian LabsProduct identity
Vivid gradient digital artwork with flowing shapesFold
(03)Fold QuarterlyEditorial system
Retro tech workspace with vibrant lightingKestrel
(04)Kestrel GroupBrand architecture
Clients
They argued with us for a month and were right for four years. I would take that trade again tomorrow.
Ida Sundqvist smiling

Ida Sundqvist

Managing Director

Norrland Ferries

Next opening

March is the next slot. February is when to write.

Tell us what the work has to do, not what you want it to look like. We will tell you within two days whether we are the studio for it.

About this page

Creative Agency HomePRO

A high-contrast agency home page: masthead navbar with status and location, a hero with twin scrolling image reels, a four-phase process flow, a project showcase grid, a rotating client quote, a statement call to action, and a footer that opens with its own CTA.

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

Built in the Polaris collection.

Home3: Creative Agency Home

A high-contrast agency home page: a masthead navbar with status and location, a hero built from twin scrolling image reels, a four-phase process flow, a project showcase grid, a rotating client quote, a statement call to action, and a footer that opens with its own CTA. Seven blocks, one install.

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/home3?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the page to components/beste/page/home3.tsx and everything behind it: the seven blocks it composes (navbar41, hero116, workflow26, portfolio101, testimonial27, cta64, footer103), 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 home3Demo alongside the page: the exact props behind the preview above. Spread it to get a working page in one line.

tsx
import { Home3, home3Demo } from "@/components/beste/page/home3";

export default function Page() {
  return <Home3 {...home3Demo} />;
}

Each section is a separate prop, so the usual next step is to keep the demo and replace one section at a time.

tsx
import { Home3, home3Demo } from "@/components/beste/page/home3";

export default function Page() {
  return (
    <Home3
      {...home3Demo}
      process={{
        label: "Process",
        heading: "Four phases, and you see the work in all of them.",
        steps: [
          { title: "Read the room", description: "Two weeks with your team, your data and your customers." },
          { title: "Decide the argument", description: "One sentence the whole brand has to defend." },
          { title: "Make it", description: "Identity, packaging and the campaign that carries them." },
          { title: "Hand it over", description: "A system your team runs without calling us." },
        ],
      }}
    />
  );
}

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 Navbar41>Masthead with status and location
heroComponentProps<typeof Hero116>Twin scrolling image reels
processComponentProps<typeof Workflow26>Four-phase process flow
workComponentProps<typeof Portfolio101>Project showcase grid
testimonialComponentProps<typeof Testimonial27>Rotating client quote
ctaComponentProps<typeof Cta64>Statement call to action
footerComponentProps<typeof Footer103>Footer opening with its own CTA
classNamestringExtra classes for the page's outer wrapper

Sections

SectionBlockNotes
Navbarnavbar41Masthead layout; not sticky, since the hero reels run under it
Herohero116Two reels scrolling in opposite directions
Processworkflow26Given bg-muted/50 by the page
Workportfolio101Card grid, so item counts that fill the row read best
Quotetestimonial27Also given bg-muted/50, tying it to the process band
Closingcta64Dark inside the block already, so the page adds no wrapper
Footerfooter103Leads with a CTA of its own

Behavior notes

  • Every section is conditional on its own prop, so omitting process removes that section entirely rather than rendering an empty one.
  • The page sets className="bg-muted/50" on both the process and quote sections after spreading their props, so a className passed inside those props is overridden. Tint from the page, not through the prop.
  • There is no dark wrapper on this page: cta64 is already dark inside the block, so wrapping it would invert an inversion and hand back a light band.
  • The navbar is deliberately not sticky. The hero's reels move on their own, and a bar pinned over them competes with the only motion on the page.
  • Two adjacent tinted bands are intentional, with the project grid between them holding the page open; dropping the grid puts two identical surfaces next to each other.
  • The whole page is a client component, since the blocks it composes are. It fetches nothing and holds no state above the blocks.
  • The page is Pro because blocks inside it are, which is why the licence parameters are on the command above.

Blocks in this page

Browse all blocks
PRO

navbar41

Editorial Studio Navbar

Two-tier studio navbar with an availability utility strip, square-mark wordmark, index-numbered links and a seal CTA.

PRO

hero116

Studio Reel Hero

Editorial hero with twin vertical image marquees scrolling in opposite directions beside the headline.

PRO

workflow26

Process Flow

Horizontal connected process steps with numbered nodes on a continuous rail.

PRO

portfolio101

Project Showcase Grid

Portfolio grid of project cards with hover-zoom imagery, numbered titles, category tags and a seal arrow link.

PRO

testimonial27

Spotlight Quote

Single large spotlight testimonial with author block and prev/next navigation.

PRO

cta64

Statement CTA

Bold full-width call to action on a dark panel with dual buttons.

PRO

footer103

CTA Footer

Dark closing-CTA footer with a big statement, email and compact links.