diff --git a/modules/rgov/landing.ts b/modules/rgov/landing.ts new file mode 100644 index 0000000..79de05f --- /dev/null +++ b/modules/rgov/landing.ts @@ -0,0 +1,385 @@ +/** + * rGov landing page — modular governance decision circuits. + * GovMods: do-ocratic circuit components for multiplayer collaboration. + */ +export function renderLanding(): string { + return ` + +
+ + Modular Governance for rSpace + +

+ GovMods +

+

+ Do-ocratic circuit components for multiplayer collaboration + around shared goals. Wire together governance primitives on a shared canvas — thresholds, + signoffs, tunable knobs, and amendable circuits. Decisions happen by doing, + not debating. +

+
+ + + + Try the Demo + + + Create a Space +
+
+ + +
+
+
+ MODULAR GOVERNANCE +

+ What are GovMods? +

+

+ GovMods are do-ocratic governance primitives — + drag-and-drop circuit components where decisions happen through action, + not deliberation. Contribute hours, pledge funds, sign off on requirements. When all gates + in a circuit are satisfied, the decision is made. No meetings required. +

+
+ +
+ +
+
+
+ +
+

Signoff Gate

+
+

+ The simplest GovMod. A binary yes/no checkpoint — assign someone to approve, + or leave it open for anyone who steps up. Green glow when satisfied. + Do-ocracy: whoever shows up, decides. +

+
+ + +
+
+
+ +
+

Threshold Gate

+
+

+ Accumulate contributions toward a target: hours, dollars, signatures, materials. + Progress bar fills as people contribute. Gate opens when the community has collectively + done enough. + Decisions backed by real resources. +

+
+ + +
+
+
+ 🎛️ +
+

Tunable Knob

+
+

+ Adjustable parameters that wire into other GovMods. Set a budget cap, quorum + percentage, or time limit. Optional temporal viscosity: + a cooldown that prevents rapid parameter flipping. + Governance that adapts, but deliberately. +

+
+
+
+
+ + +
+
+
+ + Do-ocracy in Action + +

+ Design → Wire → Do +

+

+ Three steps from blank canvas to living governance. No proposals, no quorum calls — + just wire up the conditions and let people act. +

+
+ +
+ +
+
+
+ 1 +
+
+ Design +

Place GovMods

+
+
+

+ Drag governance components onto the canvas: signoff gates, resource thresholds, + tunable knobs. Or tell MI: "create a governance circuit + for building a climbing wall" and watch the GovMods appear. +

+
+ + +
+
+
+ 2 +
+
+ Wire +

Connect the Circuit

+
+
+

+ Draw arrows from GovMod outputs to a Project aggregator. + Wire a knob's value to a threshold's target for dynamic parameters. + The circuit shows data flow and gate conditions in real time. +

+
+ + +
+
+
+ 3 +
+
+ Do +

Contribute & Complete

+
+
+

+ Community members do the work: contribute resources, sign off, adjust parameters. + The Project tracks "X of Y gates satisfied" + and auto-completes when all conditions are met through collective action. +

+
+
+
+
+ + +
+
+
+

+ Example: Build a Climbing Wall +

+

+ A community wants to build a climbing wall. Here's how GovMods make it happen + through do-ocratic action: +

+
+ + +
+ + + + Proprietor + Signoff + + + + + Labor + 50 hours + + + 30/50 hrs + + + + Capital + $3,000 + + + $2,700/$3,000 + + + + + + + + + Build Climbing Wall + 1 of 3 gates satisfied + + + 33% + + + + Budget Cap + $3,000 + + +
+ +
+
+

The GovMod Circuit

+
    +
  • Signoff: Proprietor approval
  • +
  • Threshold: 50 hours labor (people pledge hours)
  • +
  • Threshold: $3,000 capital (people contribute funds)
  • +
  • Knob: Budget Cap → wires to capital target
  • +
  • Project: aggregates all gates, tracks completion
  • +
+
+
+

The Amendment

+

+ Someone offers to donate climbing grips. They create an amendment GovMod + proposing to replace the $3,000 threshold with a simple signoff + ("Grips donated?"). The community votes on the amendment, and on approval the circuit + rewires automatically — all arrows stay connected. The governance system evolved + because someone did something. +

+
+
+
+
+ + +
+
+
+

+ Why Modular Governance? +

+

+ Traditional governance is monolithic: one system fits all. GovMods let each + community wire exactly the decision process they need. +

+
+ +
+ +
+
+ +

Monolithic Governance

+
+
    +
  • One-size-fits-all voting — everything needs a meeting
  • +
  • Decisions bottleneck on the few people who attend
  • +
  • Resource requirements invisible until someone asks
  • +
  • Governance structure is fixed — can't adapt to the situation
  • +
+
+ + +
+
+ +

GovMod Circuits

+
+
    +
  • Each decision gets exactly the governance it needs
  • +
  • Do-ocratic: contribute resources, don't just vote on them
  • +
  • Progress visible to everyone on a shared canvas
  • +
  • Amendments let governance evolve mid-process
  • +
+
+
+
+
+ + +
+
+
+

+ Built for Do-ocratic Communities +

+
+ +
+
+
+ 🔌 +
+

Modular

+

Mix and match GovMods to model any decision. Compose simple primitives into complex governance.

+
+ +
+
+ 👥 +
+

Multiplayer

+

Real-time CRDT sync. Multiple people contribute, sign off, and adjust knobs simultaneously.

+
+ +
+
+ 🎛️ +
+

Temporal Viscosity

+

Knob cooldowns prevent rapid parameter gaming. Change happens deliberately, not reactively.

+
+ +
+
+ 📝 +
+

Amendable

+

Governance that evolves. Propose circuit changes, vote inline, and the wiring adapts in place.

+
+
+
+
+ + +
+
+
+ + Join the rSpace Ecosystem + +

+ Ready to wire your community's governance? +

+

+ Create a Space and start building GovMod circuits. Drag gates onto the canvas, + wire them together, and let your community decide through action — + visually, collaboratively, and do-ocratically. +

+ +
+
+
+ +
+ ← Back to rSpace +
`; +} diff --git a/modules/rgov/mod.ts b/modules/rgov/mod.ts index 1ea9f6a..c91aacf 100644 --- a/modules/rgov/mod.ts +++ b/modules/rgov/mod.ts @@ -1,19 +1,21 @@ /** - * rGov module — Multiplayer governance decision circuits. + * rGov module — Modular governance decision circuits (GovMods). * - * Visual circuit builder where people assemble governance decision-making - * systems from drag-and-drop components: binary gates, thresholds, knobs, - * projects, and amendments. + * Do-ocratic circuit components for multiplayer collaboration around + * shared goals. Wire together governance primitives on a shared canvas: + * signoff gates, resource thresholds, tunable knobs, project aggregators, + * and amendable circuits. */ import { Hono } from "hono"; import { renderShell } from "../../server/shell"; import { getModuleInfoList } from "../../shared/module"; import type { RSpaceModule } from "../../shared/module"; +import { renderLanding } from "./landing"; const routes = new Hono(); -// ── Landing page ── +// ── Module page (within a space) ── routes.get("/", (c) => { const space = c.req.param("space") || "demo"; @@ -26,19 +28,19 @@ routes.get("/", (c) => { theme: "dark", body: `
-

⚖️ rGov

-

Multiplayer governance decision circuits

+

⚖️ rGov — GovMods

+

Do-ocratic circuit components for multiplayer collaboration

- Build decision-making systems by wiring together governance components on the canvas: + Build governance decision circuits by wiring GovMods together on the canvas:

- + Open Canvas →
@@ -49,10 +51,8 @@ routes.get("/", (c) => { // ── API: list gov shapes in a space ── routes.get("/api/shapes", (c) => { - // This is a lightweight endpoint — actual shape data lives in Automerge. - // Client-side code queries the shapes map directly. return c.json({ - info: "Gov shapes are stored in the space's Automerge document. Query the canvas shapes map for types: folk-gov-binary, folk-gov-threshold, folk-gov-knob, folk-gov-project, folk-gov-amendment.", + info: "Gov shapes are stored in the space's Automerge document. Query the canvas shapes map for types listed below.", types: [ "folk-gov-binary", "folk-gov-threshold", @@ -69,9 +69,10 @@ export const govModule: RSpaceModule = { id: "rgov", name: "rGov", icon: "⚖️", - description: "Multiplayer governance decision circuits", + description: "Modular governance decision circuits (GovMods)", routes, scoping: { defaultScope: "space", userConfigurable: false }, + landingPage: renderLanding, canvasShapes: [ "folk-gov-binary", "folk-gov-threshold", @@ -86,4 +87,7 @@ export const govModule: RSpaceModule = { "create_gov_project", "create_amendment", ], + onboardingActions: [ + { label: "Build a Circuit", icon: "⚖️", description: "Create a governance decision circuit on the canvas", type: 'create', href: '/rgov' }, + ], };