/** * rFlows — rich landing page body. * Returned by landingPage() in the module export; * the shell wraps it with header, CSS, and analytics. */ export function renderLanding(): string { return `
rFlows

Design Funding Flows
That Respond to Reality

Model how money moves through your organization with threshold-based funnels, automatic overflow routing, and proportional flow visualization — then save it to your space.

Try the Demo → Save Flow to Space

Build your flow in the demo, then sign in to save it to your own space.

What rFlows Does

🌊

Funnel Budgets

Each funding pool is a funnel with three zones — overflow, healthy, and critical — defined by min/max thresholds you set by dragging.

🔄

Overflow Routing

When a funnel exceeds its max threshold, excess funds automatically redistribute to connected pools — no manual intervention needed.

📈

Proportional Edges

Flow edges scale in width proportionally to their allocation percentage. See at a glance where the most capital is moving.

🌎

River View

Switch to the Sankey river visualization to see how all funds flow through your system from source to outcome in one view.

How It Works

1

Define Funnels

Create funding pools and set their min/max thresholds. Drag the threshold handles to define when a funnel is healthy, overflowing, or critically low.

2

Wire Connections

Connect funnels with overflow edges (sideways) so excess funds route to other pools. Add spending edges (downward) to fund outcomes and deliverables.

3

Simulate & Save

Watch funds flow through your system in real-time. Adjust allocations with +/- controls on each edge. Save the flow to your space when you're happy with it.

Who Uses Flow-Based Funding?

When budgets need to respond dynamically to changing conditions, threshold-based flows replace static spreadsheets.

DAO Treasuries

Multi-pool treasuries where governance votes set thresholds and overflow routes funds between working groups automatically.

Grant Programs

Funding rounds where excess from one grant pool overflows to the next priority — no capital sits idle when other pools need it.

Revenue Sharing

Revenue enters a source funnel and splits proportionally to downstream recipients. Adjust percentages and see the river update live.

Community Funds

Public goods funding where contributions flow through conviction-based allocation curves. Min thresholds protect critical infrastructure.

Emergency Reserves

Critical-zone protection: when a pool drops below its minimum, outflow is automatically restricted to preserve essential reserves.

Budget Modeling

Prototype budget structures visually before committing capital. Simulate deposit/withdrawal scenarios and see cascading effects.

The Funnel Model

Every funding pool is a funnel with three zones. Thresholds trigger automatic behavior.

OVERFLOW
Above max — excess redistributes to connected funnels
MAX THRESHOLD
HEALTHY
Full flow rate — balanced operations, normal outflow
MIN THRESHOLD
CRITICAL
Below min — outflow restricted, conservation mode

Connects to Your Stack

rFlows plugs into other rSpace modules for end-to-end treasury governance.

💰

rWallet

On-chain balances feed into funnels as real-time deposits. Multi-sig wallets as funding sources.

🗳

rVote

Governance decisions set flow thresholds and allocation percentages through formal proposals.

📊

rData

Analytics dashboards pull from flow events — track deposits, withdrawals, and allocation history.

Under the Hood

🌊

Flow Engine

Custom allocation engine computes overflow cascades, spending splits, and threshold responses in real-time.

🔒

EncryptID

Passkey-based auth — no passwords, no seed phrases. Sign in with biometrics to save flows to your space.

🔄

Automerge CRDT

Real-time sync across collaborators. Multiple people can edit flows simultaneously with automatic conflict resolution.

🌐

Local-First

Works offline. Changes sync when you reconnect. Your data lives on your device first, server second.

Ready to model your funding flows?

Build a flow in the demo, then save it to your own space with one click.

← Back to rSpace
`; }