Product tour

Every screen your customers see, in one place

Marketing site, dashboard, mobile app - all of it wired to the same components, so nothing drifts out of sync as you grow.

4.9

Avg. rating

12k

Teams

99.98%

Uptime

Marketing site preview
Dashboard preview
Mobile app preview

See it move before you buy it

Drop in a film, a product loop or a screen recording. The frame fades into the page instead of sitting on top of it.

Product film

Now playing

How Meridian rebuilt checkout in 6 weeks

▶ Play 2:14

-42%

Faster time to first paint

+2.7x

More demo requests

0

Layout shifts shipped

Swipe sideways through the work

A snap gallery keeps six projects inside one screen height instead of six scrolls.

Drag or scroll →

Edge to edge, one gesture

Full-bleed cards break the grid so a long page still has a rhythm.

01 - 04

Three promises, stacked

Each card pins under the header as the next one arrives, so the list stays short however much there is to say.

01 · Speed

Publish in minutes

Pick a section, drop it in, edit the copy. The preview is the page - there is no second build step waiting to surprise you.

02 · Consistency

One source for every page

Headers, footers and buttons live in globals, so a change lands everywhere at once instead of in forty places.

03 · Confidence

Accessible without the effort

Contrast, focus states and reduced-motion behaviour ship with the components. Your audit gets shorter, not longer.

The zoom follows your scroll

A scroll-linked scale is CSS-only, so it costs no JavaScript and stops the moment a visitor asks for less motion.

Product detail

Frame by frame

Every component is checked at four breakpoints before release

A great homepage answers three questions before the visitor scrolls once: what is this, who is it for, and what happens if I click.

Everything else on the page exists to support those three answers. Sections that do not earn their place get cut, which is why our own landing pages run to six blocks and not twenty.

Borders that quietly move

An animated conic border marks a card as interactive without adding noise to the copy.

01

Design tokens

Spacing, colour and type set once, then applied by every block on the site.

02

Shared globals

One header, one footer, edited once and merged into every page.

03

Version history

Every save is a restore point, so a bad afternoon stays reversible.

Point at the product, not at a catalogue

Hotspots turn one styled photograph into a shop. Hover or tab to each pin for the detail.

Styled interior scene

Oak lounge chair

$420 · in stock

View product

Linen floor lamp

$180 · three finishes

View product

Woven wool rug

$260 · four sizes

View product

A backdrop that never sits still

One decorative layer, one slow sweep. It reads as depth rather than decoration, and it stops for reduced-motion visitors.

Use this background
Backdrop

Grid, spotlight, grain - the studio trio

The grid fades at the edges, the spotlight breathes above the fold, and the grain stops everything looking too clean.

A wall of proof that keeps moving

Two lanes, opposite directions, paused the instant anyone hits the button.

"Two weeks from kickoff to a site our sales team actually links to." - Dana W.

"The blocks look like an agency built them. Nobody believes it was us." - Marcus L.

"Our audit went from 200 issues to 6. That paid for the year." - Priya R.

"Two weeks from kickoff to a site our sales team actually links to." - Dana W.

"The blocks look like an agency built them. Nobody believes it was us." - Marcus L.

"Our audit went from 200 issues to 6. That paid for the year." - Priya R.

"+31% completed orders after the checkout rebuild." - Sofia A.

"Support answered with a working example in the same thread." - Tom B.

"We finally stopped maintaining two design languages." - Amara O.

"+31% completed orders after the checkout rebuild." - Sofia A.

"Support answered with a working example in the same thread." - Tom B.

"We finally stopped maintaining two design languages." - Amara O.

Ready to build something remarkable?

Start free today. No credit card, no setup calls, no waiting for a sales rep.

Trusted by 48,000+ teams worldwide

Fetch a page list — four languages, one endpoint

The same request in four languages. Pick the one your team actually runs.

curl https://api.buildhub.co/v1/pages -H "Authorization: Bearer $BUILDHUB_TOKEN" -H "Accept: application/json"
const res = await fetch('https://api.buildhub.co/v1/pages', { headers: { Authorization: 'Bearer ' + process.env.BUILDHUB_TOKEN } }); const pages = await res.json();
$pages = Http::withToken(env('BUILDHUB_TOKEN')) ->get('https://api.buildhub.co/v1/pages') ->json();
import os, requests pages = requests.get( "https://api.buildhub.co/v1/pages", headers={"Authorization": f"Bearer {os.environ['BUILDHUB_TOKEN']}"}, ).json()

Rate limits

600 requests per minute per token, with a 429 and a Retry-After header when you exceed it.