Complete billing UX. One import.
Planter is Garden’s plug-and-play billing drawer. Mount one component and every platform gets the same premium billing surface — invoices, payment methods, usage, crypto, plan management, and checkout — scoped to its context, themeable per tenant. Clerk did this for auth. Planter does it for money.
Hives
Atlas Labs · billing
Billing by Garden
Spend this period
$4,980.20
Projected invoice
$5,410.00
Next: Jul 1, 2026
Recent activity
Northstar API
Northstar API · billing
Powered by Garden
Spend this period
$1,290.00
Projected invoice
$2,140.00
Next: Jul 1, 2026
Recent activity
Powered by Garden
Every state, real.
These are the actual Planter components on fixtures — the same code that ships in the app.
Hives
Atlas Labs · billing
Billing by Garden
Spend this period
$3,120.44
Projected invoice
$4,213.55
Next: Jul 1, 2026
Recent activity
Atlas Labs
Garden billing account
Billing by Garden
Spend this period
$8,696.97
Projected invoice
$11,240.00
Next: Jul 1, 2026
Meters across all platforms
Flight invocations
hives.flight.invocation · Jun 2026
Overage — 284.5K calls beyond included
Cell storage
hives.cells.storage · Jun 2026
Egress
hives.egress.gb · Jun 2026
Output tokens
foundry.tokens.output · Jun 2026
Overage — 8.2M tokens beyond included
Input tokens
foundry.tokens.input · Jun 2026
Database storage
silos.storage.gb_month · Jun 2026
Overage — 140 GB·mo beyond included
Hives
Atlas Labs · billing
Billing by Garden
Spend this period
$4,980.20
Projected invoice
$5,410.00
Next: Jul 1, 2026
Invoices · account-global
sharedIssued Jun 1 · due Jun 8
$4,980.20
of $9,134.20 total
This invoice includes Hives — usage
Issued Jun 1 · due Jun 8
$4,213.55
of $8,697.87 total
This invoice includes Hives — usage
Issued May 1 · due May 8
$3,810.00
of $7,920.10 total
This invoice includes Hives — usage
Issued Apr 1 · due Apr 8
$3,600.00
of $7,444.00 total
This invoice includes Hives — usage
Pay GRD-2026-207
Prototype — no payment is processed.
Global and platform, never confused.
Global scope shows the tenant’s whole Garden billing account. Platform scope shows usage, meters, and line items for one app — while account-global objects (payment methods, address, tax IDs) are clearly marked shared, so the UI never misleads.
// Console / Garden Desktop — the whole billing account
<GardenPlanter scope="global" />
// Inside a platform — usage, invoices, plan scoped to it
<GardenPlanter scope="platform" platformId="hives" />Nine sections. One drawer.
Overview
Health, spend, projected invoice, recent activity, primary action.
Usage
Live meters with included/limit markers and overage risk.
Invoices
Account-global invoices with platform-attributed line items.
Payment methods
Cards, bank, crypto — shared across the billing account.
History
Payments, refunds, finalizations, crypto lifecycle, webhooks.
Address & tax
Billing address, business purchase, tax IDs.
Crypto
Awaiting → confirming → confirmed, with address + QR.
Plan
Account vs platform plans, included usage, overage, entitlements.
Any tenant. Any brand.
Token slots for accent, surface, border, radius, density, and attribution. The tenant accent drives primary actions; Garden green stays a trust accent. Works in light and dark.
<GardenPlanter
scope="platform"
platformId="hives"
theme={{
mode: "system",
accent: "tenant", // tenant accent drives primary actions
density: "compact",
attribution: "subtle" // "Billing by Garden" · or hidden
}}
/><GardenPlanterRoot>
<PlanterDock /> {/* closed: status bead + badges */}
<PlanterDrawer> {/* side drawer · bottom sheet */}
<PlanterHeader />
<PlanterScopeSwitch />
<PlanterHealthSummary />
<PlanterTabs> {/* rail on desktop, section menu on mobile */}
<PlanterOverview /> <PlanterUsage /> <PlanterInvoices />
<PlanterPaymentMethods /> <PlanterHistory /> <PlanterAddressTax />
<PlanterCrypto /> <PlanterPlan /> <PlanterDeveloperEvents />
</PlanterTabs>
</PlanterDrawer>
<PlanterCheckoutModal /> {/* embedded · hosted · redirect */}
</GardenPlanterRoot>Mount once. Never build billing screens again.
Keystone / Auth v4 auto-resolves organization, account, entity, role, platform, and tenant theme. Manual configuration is available for external Garden tenants.
import "@l1fe/garden/planter.css";
import { GardenPlanter } from "@l1fe/garden/planter";
export function AppShell() {
return (
<>
<PlatformRoutes />
{/* Mount once — org, account, role, platform, and theme
auto-resolve from Keystone / Auth v4. */}
<GardenPlanter scope="platform" platformId="hives" />
</>
);
}import { createGarden } from "@l1fe/garden";
import {
createGardenPlanterData,
createPlanterCheckoutSession,
} from "@l1fe/garden/planter/server";
// Resolve Auth v4 / Keystone context in your app, then let GardenKit
// fetch invoices, payment methods, usage meters, and checkout sessions.
const data = await createGardenPlanterData({
garden: createGarden({ platformId: "hives", headers }),
organizationId,
platformId: "hives",
platformName: "Hives",
scope: "platform",
});One import. Every platform.
Add Garden billing to any Auth v4 / Keystone platform in an afternoon.






