From parts to proposal — assembled, versioned, sent.
bundleaf turns your parts catalog into reusable, nestable bundles — and those bundles into versioned quotes you can price per-deal without ever touching your catalog. The quote that used to take three days takes an afternoon.
- English & Hungarian
- Light & dark
- Cancel any time
Catalog bundles versioned quotes
Model the structure once. Every layer reuses the one below it.

Build your catalog once
Categories, custom attributes, and as many supplier offers per part as you actually have — with supplier, SKU, source link, and purchase-date FX rate. Import from CSV to start.

Assemble bundles you can reuse
Put products into bundles. Put bundles into bundles. bundleaf flattens the whole tree into a live part-by-part roll-up, so you always know exactly what's in the box.

Send a versioned quote
Rename or re-price any line for that deal only, set your margin, then export a PDF or send a link your partner can accept or reject — no account needed.
Bundles inside bundles. Totals that keep up.
Add 2× Pump A directly, then drop in your Circulation Unit bundle that contains 5× Pump A and 3× Valve B. The roll-up reads 7 A, 3 B — instantly. Pull the Circulation Unit back out and its contribution is subtracted, leaving your 2 A exactly where you left them.
- Nest as deep as your product actually is — a bundle can never contain itself
- Live flattened roll-up to every individual leaf part
- Summable attributes totalled across the whole assembly — kW, kg, metres
- Tags, notes, and a separate public name for customer-facing documents
Every version is a real version.
v1 was rejected. v2 is out for review. v3 is a draft on your screen. Each version carries its own status, its own dates, and its own prices — and the diff shows exactly what changed between them.
- Independent status per version: Draft → Sent → Accepted / Rejected
- Version-to-version diff: added, removed, and re-priced lines
- Prices snapshot when a line is added — a March quote still reads as March
- PDF export, or a link your partner accepts or rejects without an account
Cost, buffer, margin — three numbers, never confused.
Buffer % covers what it really costs to get the part in the door, and cascades down your category tree. Margin % is your profit, set per quote and overridable per line.
Default supplier offer — Circulation Pump 1.5kW A7K2
Freight, handling, procurement overhead. Inherited from the category tree.
Your profit, set on this quote version. Overridable on any single line.
The one number your customer sees. You see every layer beneath it.
Change a line's price on a quote and it changes on that quote. Your catalog is untouched, always — and every override reverts in one click.
The rest of the system
Category tree
Unlimited depth, drag to re-nest, clone a whole branch with the products you choose.
Custom attributes
Number, text, date, or option — per category, inheritable, overridable per product.
Supplier offers
Many prices per part, one default. Supplier, SKU, source link, spec sheet, purchase date.
Multi-currency
Manual rates or one-click MNB sync, per-currency decimals, converted roll-ups.
PDF & share link
Export a PDF, or send a link your partner opens, accepts, or rejects without signing up.
CSV import
Bring your catalog in as-is — missing categories are created for you, with per-row errors reported.
Team & workspaces
Invite colleagues, transfer ownership, belong to several companies at once.
Two-factor auth
TOTP with recovery codes, on top of Google and Microsoft sign-in.
Full audit trail
Every change to every record, with a diff. Your data is isolated at the database layer.
Priced for an engineering team, not a sales org.
One subscription per company. Every plan includes unlimited bundles, unlimited nesting depth, and unlimited quote versions.
Sprout
For the solo engineer who quotes on the side of the job.
- 1 user
- Up to 500 products
- Unlimited bundles & nesting depth
- Unlimited quote versions
- PDF export & CSV import
- 1 currency
- Email support
Grove
Most popularFor the team that quotes every week.
- Up to 10 users
- Unlimited products
- Everything in Sprout, plus:
- Public accept / reject share links
- Multi-currency + MNB rate sync
- Custom attributes with roll-up totals
- Quote version diff
- Two-factor authentication
- Priority support
Canopy
For firms running several quoting teams.
- Unlimited users
- Multiple company workspaces
- Everything in Grove, plus:
- Full audit log access
- Onboarding & catalog migration help
- Dedicated support contact
All plans are billed through Stripe. Have a coupon? Enter it at checkout. Cancel any time — you keep access until the end of the period, and your data stays readable afterwards in read-only mode.
Questions engineers actually ask
Can a bundle contain another bundle?
Yes — to any depth. A bundle can hold products, other bundles, or both, and Bundleaf flattens the whole tree into a single part-by-part roll-up. It also prevents a bundle from ever containing itself.
If I change a price on a quote, does it change my catalog?
No. Quote-level renames, price overrides, and margin overrides live on that quote version only. Your catalog is never modified, and every override is revertible in one click.
What happens to old quotes when my catalog changes?
Nothing. Each line snapshots its name and price when you add it, so a quote reads exactly as it was sent — regardless of what the catalog does afterwards.
Can my customer accept a quote without an account?
Yes. Once a version is Sent, you can generate a share link (optionally emailed to them) that lets them view the quote and accept or reject it directly. No sign-up on their side.
Can I import my existing catalog?
Yes — CSV import handles product name, category, parent category, price, currency, supplier, and supplier SKU, and creates any missing categories for you. It reports exactly which rows failed and why.
How does bundleaf handle multiple currencies?
Set a default display currency for your company, maintain FX rates by hand or sync official MNB rates in one click, and set decimal rules per currency. Roll-ups and quote totals convert into the target currency — and if a rate is missing, Bundleaf tells you instead of quietly getting it wrong.
What's the difference between buffer % and margin %?
Buffer % is the uplift on your acquisition cost — freight, handling, procurement — and it cascades down your category tree. Margin % is your profit, set per quote with per-line overrides. Cost → buffered price → customer price, visible at every level.
What happens if I cancel?
You keep full access until the end of your billing period. After that, your workspace switches to read-only: everything stays visible and exportable, you just can't create or edit until you subscribe again. Nothing is deleted.
Is my data isolated from other companies?
Yes. Tenant isolation is enforced at the database layer on every record, not left to application code, and every change is written to an audit trail.
What languages does bundleaf support?
The app is fully available in English and Hungarian, in light and dark themes.
Your next quote doesn't have to take three days.
Build the catalog once. Reuse it forever.