Planter

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.

Platform scope · Hives
H

Hives

Atlas Labs · billing

Past due

Billing by Garden

HivesPlatform scope

Spend this period

$4,980.20

Projected invoice

$5,410.00

Next: Jul 1, 2026

Recent activity

Jun 9, 02:14Payment failed · Amex 1005 · insufficient funds
$9,134.20
Jun 8, 09:00Invoice GRD-2026-207 finalized
$9,134.20
Jun 7, 18:30Usage threshold 100% · Foundry output tokens
May 8, 09:10Payment succeeded · Visa 4242
$7,920.10
May 2, 11:22Payment method added · ACH Mercury
External tenant · custom brand
N

Northstar API

Northstar API · billing

Trialing

Powered by Garden

Northstar APIPlatform scope

Spend this period

$1,290.00

Projected invoice

$2,140.00

Next: Jul 1, 2026

Recent activity

Jun 12, 10:02Usage threshold 90% · Compute
Jun 1, 00:04Invoice NS-2026-012 finalized
$2,140.00

Powered by Garden

Live states

Every state, real.

These are the actual Planter components on fixtures — the same code that ships in the app.

Platform scope · healthy
H

Hives

Atlas Labs · billing

Current

Billing by Garden

HivesPlatform scope

Spend this period

$3,120.44

Projected invoice

$4,213.55

Next: Jul 1, 2026

Recent activity

Jun 8, 09:12Payment succeeded · Visa 4242
$8,697.87
Jun 1, 00:03Invoice GRD-2026-206 finalized
$8,697.87
May 28, 14:40Usage threshold 80% · Foundry output tokens
May 8, 09:10Payment succeeded · Visa 4242
$7,920.10
May 2, 11:22Payment method added · ACH Mercury
Global Console scope
A

Atlas Labs

Garden billing account

Current

Billing by Garden

All platformsConsole scope

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

+12.4%
1.3M calls1M incl.
region:us-eastflight:buzz-workerclass:standard

Overage — 284.5K calls beyond included

Cell storage

hives.cells.storage · Jun 2026

+3.1%
212 GB250 incl.
region:us-eastresource:cells

Egress

hives.egress.gb · Jun 2026

-6.8%
94.2 GB100 incl.
region:us-east

Output tokens

foundry.tokens.output · Jun 2026

+22%
48.2M tokens40M incl.
model:claude-opus-4-8project:atlas-core

Overage — 8.2M tokens beyond included

Input tokens

foundry.tokens.input · Jun 2026

+8.4%
191M tokens200M incl.
model:claude-opus-4-8project:atlas-core

Database storage

silos.storage.gb_month · Jun 2026

+15.2%
640 GB·mo500 incl.
region:eu-westresource:primary

Overage — 140 GB·mo beyond included

Embedded checkout
H

Hives

Atlas Labs · billing

Past due

Billing by Garden

HivesPlatform scope

Spend this period

$4,980.20

Projected invoice

$5,410.00

Next: Jul 1, 2026

Invoices · account-global

shared
GRD-2026-207past due

Issued Jun 1 · due Jun 8

$4,980.20

of $9,134.20 total

This invoice includes Hives — usage

GRD-2026-206paid

Issued Jun 1 · due Jun 8

$4,213.55

of $8,697.87 total

This invoice includes Hives — usage

GRD-2026-205paid

Issued May 1 · due May 8

$3,810.00

of $7,920.10 total

This invoice includes Hives — usage

GRD-2026-204paid

Issued Apr 1 · due Apr 8

$3,600.00

of $7,444.00 total

This invoice includes Hives — usage

Two scopes

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" />
Information architecture

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.

Theming

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>
Install

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",
});
Ship billing today

One import. Every platform.

Add Garden billing to any Auth v4 / Keystone platform in an afternoon.