Seed
For a product with its first revenue.
$0forever
- To $2,500 MRR tracked
- 1 billing source
- Daily match runs
- MRR, movements and churn
- 2 seats
Design system
Every part Marquee ships, rendered once with real content: 15 sections, 9 primitives, 48 tokens per mode.
src/components · src/components/ui · src/theme.css · src/fonts.ts
48 variables per mode in src/theme.css: 19 colour, 25 type, four shape, weight and motion. These chips read them live.
--background
--foreground
--card
--card-foreground
--primary
--primary-foreground
--secondary
--secondary-foreground
--muted
--muted-foreground
--accent
--accent-foreground
--primary
--primary-hover
--primary-active
--surface-tint
--font-display · Bricolage Grotesque
Aa Bb Cc 0123
--font-text · Schibsted Grotesk
Aa Bb Cc 0123
--font-mono · Spline Sans Mono
Aa Bb Cc 0123
--radius 0.875rem · --radius-inner 0.625rem
--border · hairlines never carry structure alone
--duration-ticker 90s · the one moving part
The marquee drift. Everything else is placed.
Each section rendered once, at the width and with the content it ships with.
Sticky nav: wordmark, three links, the mode toggle and the primary action. Below md it collapses into a JS-free details menu.
The centered manuscript and the reconciliation surface: MRR at display size, twelve months of bars, the wire, and the match verdict.
Subscription analytics
Recur reads your billing feeds, matches every invoice to the ledger, and publishes metrics your accountant will sign.
No card · free to $2,500 MRR · export everything, any time
recur · the close · March
Δ $0.00Monthly recurring revenue
$128,410
+6.1% vs February
The wire
2,412 of 2,412 invoices matched
Δ $0.00THE SIGNATURE — a full-bleed strip of timestamped events drifting past. Three feeds: wire, match, wins. Pauses on hover; static under reduced motion. Shown here on the wire feed.
The wire
Eight billing sources on a hairline grid — the works-with-my-stack answer.
Sources
Connect what already bills you money; Recur normalizes currencies, credit notes and refunds on the way in.
Stripe
billing + invoices
Paddle
MoR checkout
Chargebee
subscriptions
Lemon Squeezy
MoR checkout
App Store
in-app renewals
Play Billing
in-app renewals
Braintree
cards + PayPal
Manual invoices
CSV or email-in
Six metric cards, each opening with a real sample figure; the delta card carries the chip.
The close
Every number below is computed from matched invoices, so the board pack and the books agree.
MRR + movements
$128,410
New, expansion, contraction and churn split out, month by month.
Net revenue retention
114%
Cohort-weighted, with the customers driving it named.
Churn
2.1%
Logo and revenue churn separately; early-warning flags on usage cliffs.
Cohorts
36 mo
Retention tables to three years, exportable as CSV.
Forecast
$1.54M ARR
A twelve-month run-rate from matched invoices, not from optimism.
The delta
Δ $0.00Every metric ties to the ledger; anything that will not match gets flagged.
Wire, match, close as a ruled 7/5: the three steps beside a match run with one flagged row.
How it works
Three steps between a charge landing and a statement you can sign.
Every charge, refund and credit note arrives from your billing feeds within minutes.
Each event is paired with its invoice and its ledger entry. Anything that will not pair gets flagged, not smoothed over.
When the delta reads zero, the month's statement publishes itself. Your accountant gets a trail, not a spreadsheet.
Match run 442
3m 41s
| Invoice | Amount | Delta |
|---|---|---|
| 8839 | $1,240.00 | Δ $0.00 |
| 8840 | $88.00 | Δ $0.00 |
| 8841 | $429.00 | Δ $0.00 |
| 8842 | $1,188.00 | Δ $0.00 |
| 8843 | $536.00 | Δ $84.00 |
1 flagged · assigned to you · nothing smoothed over
Named outcome quotes: the lead quote at display size, two supporting, each beside the figure it claims.
Customers
Three teams, three closes, outcomes they put their names on.
“Our close was nine days of spreadsheet archaeology. With Recur it is one afternoon, and the auditors take the statement as-is.”
9 days → 1 afternoon
monthly close
Maren Ilves
Finance lead, Standfirst
“Recur flagged a cohort going quiet 41 days before the cancellations landed. We called them; most stayed.”
Dele Akande
Founder, Loam
41 days
earlier churn warning
“The board pack is now an export of the close. Nobody re-derives MRR in a slide the night before.”
Sofia Brandt
COO, Tidemark
0
hand-built board slides
Three surfaces in alternating 7/5 splits, wire to match to close, ending in the Δ $0.00 band. Shown without its page lead; /product hands one in.
01 · The wire
Charges, refunds, upgrades and credit notes land within minutes of the processor, normalized across eight sources and fourteen currencies.
The wire · today
02 · The match
Every event pairs with its invoice and ledger entry. A row that will not pair is flagged and assigned, so exceptions get owners instead of burial.
Match run 442
Δ $0.002,412 of 2,412 invoices matched
03 · The close
When the delta reads zero the statement publishes: MRR movements, retention, cohorts and forecast, each figure tied to matched invoices.
The close · March statement
Δ $0.00
The state your month ends in. Anything else is a flag with an owner.
A client island: the billing switch does the monthly/annual arithmetic. One meter, three plans, risk reversal at the price.
For a product with its first revenue.
$0forever
For a team that closes every month.
$49/month
For finance teams with auditors.
$199/month
30 days of Growth free, no card · cancel any month · export everything, any time
MRR tracked is the meter. Seats never are.
Six pricing objections as native details disclosures on a 5/7 split. The +/− swap is instant and shape-based.
Questions
The six questions every finance lead asks; answers a salesperson would give you anyway.
The closing MRR of your last published statement. Cross a plan boundary and Recur asks before it upgrades you; nothing changes silently.
No. Seed is free to $2,500 MRR tracked, one billing source, daily match runs. No card and no time limit.
Every new account gets Growth free for 30 days, no card. When it ends you pick a plan or drop to Seed. Your data stays either way.
You pay ten months for twelve. Cancel any month on monthly billing; annual refunds the unused whole months.
Eight: Stripe, Paddle, Chargebee, Lemon Squeezy, App Store, Play Billing, Braintree and manual invoices by CSV or email-in.
No. It hands them a matched trail instead of a spreadsheet. Every figure in a statement links to the invoices behind it.
One close told in full at prose measure, figures in a narrow rail, the pull quote signed. Shown without its page lead.
Case study
Standfirst sells newsroom analytics to regional publishers. Sixty-one people, London and Tallinn, and revenue arriving three ways: Stripe for self-serve, Chargebee for the annual contracts, and invoices the sales team still sends by hand.
The close took nine days. Finance exported each source to its own spreadsheet, matched rows by eye, and every board pack carried an MRR figure somebody had re-derived the night before. Two of those figures disagreed in the same quarter. The auditors noticed.
Recur read all three feeds on a Tuesday. The first match run finished in 54 minutes and surfaced 17 rows that would not pair; twelve were credit notes booked against the wrong month, five were duplicate manual invoices nobody had caught. Finance cleared the queue by Thursday.
Since then the statement publishes when the delta reads zero. The board pack is an export of the close, the auditors take the trail as-is, and the March figure everyone quotes is the March figure the ledger holds.
“Our close was nine days of spreadsheet archaeology. With Recur it is one afternoon, and the auditors take the statement as-is.”
Maren Ilves
Finance lead, Standfirst
The go-live wall: the five companies the wins rail announces, plus the action cell.
Go-lives
What each team runs, and what changed after the first clean match.
Standfirst
newsroom analytics
close now one afternoon
Loam
sensor platform for growers
churn flagged 41 days early
Tidemark
marina bookings
board pack from the close
Bellwether Labs
clinical trial software
3 sources, one ledger
Quartermaster
fleet maintenance
first clean close in 2 years
Your close next
30 days of Growth free, no card
Start the matchA client island: validation on submit and as fields are fixed, focus moved to the first bad field, a designed success state, and the what-happens-next rail. Renders its h1 because that is what it does on /signup.
Start free
30 days of Growth free, no card. Free to $2,500 MRR after that.
The closing band: one primary action, cost, risk and effort answered beneath it.
Connect a billing source and watch the first match run before the coffee is done.
The ui/ parts every section is built from, in one frame.
ui/button · variant + size
ui/badge · ui/delta · ui/mode-toggle
ui/logo · ui/section-heading
Recur
The close
Every number computed from matched invoices, so the board pack and the books agree.
ui/field · ui/input · ui/select
The invite goes here
Pick the source that bills most of your revenue. More can follow.
ui/eyebrow · ui/type
Subscription analytics
Sizes come from ui/type.ts only: caption 12 · small 14 · body 16 · lead 18 · d1 24 · d2 32 · d3 42.7 · d4 56.9. There is no size between the rungs.
Brand block, three link columns and the legal row. Every link resolves to a page or an anchor the theme ships. Rendered in place as the page shell.