Product screenshot
The first moment
First moment
Copy under its picture.
Text linkDerive
Everything on this page is drawn from src/styles/tokens.css and the primitives
in site.css. Change a token and it changes here and on every page.
Resize the window to see the type steps shrink at 1200, 900 and 480px.
Text
--ink --ink-muted --ink-faint --ink-sage --ink-quiet --ink-statement-from --ink-statement-to --ink-statement-em Greens
--green-950 --green-900 --green-800 --green-700 --green-600 --green-icon --green-tint Grounds and rules
--surface --surface-soft --surface-hover --surface-soft-hover --surface-sage --surface-sage-hover --line --line-sage Accents
--accent --accent-bright --agent-blue --error On dark
--on-dark --on-dark-muted --on-dark-faint --on-dark-line --on-dark-card --glass Figtree. Headings at 500 with tight tracking; body at 400.
One sentence, the width of the page.
Invoice work that’s ready.
Run your group’s spend like one company.
Built for groups from day one
One set of rules across the group
24 Xero files. One Derive inbox.
Catch duplicates across the group
Accounts payable
What does Derive do?
Derive brings purchasing, contracts, budgets and accounts payable together across your group.
Spend control for multi-entity companies
Derive gives every entity the same path:
A 4px base. Sections run --section-top / --section-bottom;
a title sits --head-gap above its body and --head-to-content
above what it introduces.
--space-1 --space-2 --space-3 --space-4 --space-5 --space-6 --space-7 --space-8 --space-9 --space-10 --space-11 --space-12 --space-13 --space-14 --space-15 --radius-sm --radius-md --radius-lg --radius-pill .button with a ground modifier, then a size. Text links take a trailing arrow. Form fields are .field: label, optional hint, .field-input.
.field — --field-h
.section-head.is-centred
A centred head over the content beneath it. Max 720px wide.
.section-head.is-split: title left, body right, on the page’s two columns. Stacks below 900px.
A soft panel at --radius-md. On a soft section it turns white.
Cards hold their own padding; the grid between them is --space-4.
.section is white; .is-soft and .is-dark change the ground and recolour the type on it.
.card on .is-soft
Cards turn white here.
.is-dark
Body copy at --on-dark-muted, strong at full white.
Page components
Each lives in src/components/ and takes its copy as props. Shown here with
sample content. The homepage’s own sections (Integrations, AP Agent, Proof, Who it’s for,
FAQ, closing CTA) take props too and are best seen on the pages that use them.
PageHero — every page but the homepage; the slot takes the picture, and the eyebrow pins to its top; eyebrow={{ lead, rest }} picks out the lead in ink; logos adds a marquee across the foot (see /procurement); the next section takes continued
Eyebrow for multi-entity companies
One or two sentences on what the page answers, at body size.
See Derive in actionProduct image
The page’s picture, or a placeholder naming it
PageHero dark — the dark-section green with a Beam behind: one wide shader light beam across the lower third; the pointer warms it (no page uses it at present); the next section drops continued
Eyebrow
One or two sentences on what the page answers, at body size.
See Derive in actionProduct image
The page’s picture, or a placeholder naming it
PageHero stacked tag — copy full width over the picture, title left, body over button right; tag boxes the eyebrow in mono with the agent star; title={{ lead, rest }} sets the rest in --ink-quiet; cta={{ label, href }} swaps the button. Here the picture is a PhotoFrame: a wide photo with the slotted picture inset on it (see /ap-agent)
Eyebrow
One or two sentences on what the page answers, at body size.
Get a demo
Illustration
The picture set on the photo
FeatureRow — copy and a picture; reverse, ground, list, numbered, link, eyebrow, id
Optional eyebrow
Paragraphs come in as an array. The list sits under them.
Media placeholder
Names the picture the wireframe calls for, until it exists
Alternate reverse down a page so pictures zig-zag.
Product UI
On a soft section the placeholder turns white
StepsCard — a numbered path that leads its section, on a bordered card in a feature row’s picture slot. Shown in a FeatureRow boxed small: the row on a card, the title a step down
The copy runs on the left; the steps sit on a card where the picture would be.
An eyebrow for the path:
CompareTable — a question, then Derive’s answer
A split head, then the table. Rows stack below 767px.
| The question | The answer |
|---|---|
| Which entity? | Supplier and entity matched. |
| Who approves? | Routed by entity, amount or category. |
| Not confirmed yet | Copy needed A null answer shows the wireframe’s note. |
FeatureTabs — vertical tabs, the open one’s picture beside them
The open tab shows its copy and its picture.
Arrow keys move between tabs.
Text linkOne open at a time.
Feature graphic
First capability
Feature graphic
Second capability
Feature graphic
Third capability
ProblemPicker — grouped, numbered problems; the open one with what changes
Pick a problem; Next walks through them in order.
First group
Second group
Where it comes from.
With Derive
What changes with Derive.
Product image
First problem
Arrow keys move between problems.
With Derive
What changes with Derive.
Product image
Second problem
A null fix is a gap.
With Derive
Copy needed The wireframe’s note.
Product image
Third problem
ModuleGrid — the four modules as icon cards
One inbox for every entity’s bills, prepared for review.
Learn moreRequests, approvals and purchase orders across the group.
Learn moreAgreements, variations and renewal dates in view.
Learn moreEntity and GL account budgets at the request and the bill.
Learn moreStatement — a centred head on its own
A short paragraph under it, centred, at most 720px wide.
ScrollStatement — one sentence across the page, fading up whole as it comes on screen; emphasis picks out a phrase, \n forces a break, ground="dark" for the dark green; body adds a line of body copy under it
An eyebrow
An optional line of body copy under the sentence.
LatticeGround — a run of sections on one dark ground over the breathing lattice; pictures inside keep their own panels, so they read as cards (see /procurement); pinned holds the lattice to the screen as the run scrolls over it, as on the homepage (see /ap-agent)
Each keeps its own props and rhythm; the ground and the type colour come from the wrapper.
ProofStrip — a quote and a few logos, straight under a hero
24 Xero files. One Derive inbox.


LogoMarquee — logos drifting on a loop; the foot of a white PageHero (logos)
Join the best finance teams running groups
IconCards — cards led by an icon or step; head left, split or centred
One or two lines under it.
Columns follow the card count, up to five.
Optional link below.
Text linkSegmentCards — who it’s for, with a picture each
A split head, then a card per segment.
Photo
A photo of the segment
An optional line.
Photo
A photo of the segment
Photo
A photo of the segment
RoleToggle — before and after per role, on a pill switch
How it is today.
How it is with Derive.
How it is today.
How it is with Derive.
How it is today.
How it is with Derive.
TwoUp — two moments of one idea, picture over copy
Product screenshot
The first moment
Copy under its picture.
Text linkProduct screenshot
The second moment
Copy under its picture.
Bento + BentoCard — several features in one section, two cards to a row, copy over picture; eyebrow, list, link, id per card; wide dark leads the bento, side by side on the lattice; split spans the row, copy left and the picture filling the right half (Procurement); dots lays the dotted grid across the card’s lower half (Contracts); links sets several links in a row; fix calls out what changes “With Derive” on a white panel (the solutions pages); title on the Bento heads the section
Spans the row, picture left, copy right.
Text linkIllustration
Its own panel reads as a card on the dark
Copy on top. The picture sits at the card’s foot, so pictures in a row line up.
Text linkIllustration
Pictures in a row share a shape
Problem
Shorter copy: the problem.
What changes with Derive, picked out on its own panel.
Illustration
Its picture
StatGrid — verified outcomes; value: null marks one still needed
2x
A label
An optional line on what it means.
$25M
A label
Copy needed A verified outcome.
QuoteBlock — one quote, centred, with a portrait
“A customer’s own words, as published.”
Name SurnameRole, Company StoryCards — customer stories, from src/data/customers.ts
Purchasing decisions and AP in one process. Spend requests, supplier management, contracts and accounts payable connected to Xero. Read Metro’s story
Control and confidence over growing spend. Purchasing, vendor reviews, contracts and AP under one finance-owned process, across NA, EMEA and APAC. Read RecordPoint’s story StoryCards stacked — one column, photo left; a story with no page is a quiet tile (Customers)
Purchasing decisions and AP in one process. Spend requests, supplier management, contracts and accounts payable connected to Xero. Read Metro’s story
StoryHero, StoryVideo, StoryBody + StorySection + StoryQuote — a customer story's long read (Metro Finance)
2x
A label
$25M
A label
4 weeks
A label
An eyebrow
A paragraph of the story.
Name SurnameRole, Company “A customer’s own words, as published.”
PeopleGrid — the team; portraits are placeholders until photos exist
Photo
Name Surname
Role
One plain line on relevant experience.