diff --git a/frontend/src/pages/index.astro b/frontend/src/pages/index.astro index 1249c2d..e3c3cf1 100644 --- a/frontend/src/pages/index.astro +++ b/frontend/src/pages/index.astro @@ -113,8 +113,8 @@ import PublicLayout from '../layouts/PublicLayout.astro';

Every moderation action is logged with reasons. Cryptographic audit trail ensures accountability.

-

Privacy-Preserving Voting

-

Separate civic and voting identities. Participate publicly while voting privately.

+

Permissioned Results

+

Configure who can view voting results details while keeping participation accessible.

Federation Ready

@@ -129,13 +129,29 @@ import PublicLayout from '../layouts/PublicLayout.astro';

Modular governance, explained

- Likwid is built from composable modules. Communities enable what they need: voting methods, delegation rules, moderation tools, and integrations. + Likwid is built from composable governance modules. Communities assemble what they need: voting methods, delegation rules, deliberation structure, moderation policy, federation, and more.

+
+
+

Governance plugins

+

+ Governance is not a single flowchart. In Likwid, the core platform provides identities, communities, proposals, and data integrity. + Plugins define how decisions move, how moderation is logged, what voting method is used, and what integrations run. +

+
+
+

Per-community configuration

+

+ One community can enable liquid delegation and Schulze voting, another can use quadratic voting with a stricter deliberation lifecycle. + The platform stays consistent; behavior is configured by enabled modules. +

+
+

Liquid delegation

-

Delegate by trust network. Vote directly anytime to override your delegation.

+

Delegate through a trust network. Vote directly anytime to override your delegation.

@@ -191,29 +207,268 @@ import PublicLayout from '../layouts/PublicLayout.astro'; Core platform users • proposals • data - - Voting plugins + + Voting + + + Deliberation Delegation - - Moderation + + Moderation + + + Workflows - Integrations + Federation - + + - + + Per-community configuration decides what is enabled.
+ +
+
+

Voting systems as plugins

+

Select the tally that matches the decision. The method is a module—swap it without changing the rest of the platform.

+
+ + + + + + + + + + + Proposal + options • deadline + + + Voting plugin + tally method + validation + + + Results + winner • breakdown + + + + + + delegation resolved before tally + + Methods: Approval • Ranked Choice • Schulze • STAR • Quadratic + + +
+
+ +
+
+

Built-in governance plugin catalog

+

+ These modules ship with Likwid. Some are core/global, others can be enabled per community. +

+
+
+
+ proposal_lifecycle +
+ Core + Global +
+
+

Proposal lifecycle with versioning, diffs, and forks

+
+ +
+
+ decision_workflows +
+ Core + Global +
+
+

Composable decision-making workflows with configurable phases

+
+ +
+
+ moderation_ledger +
+ Core + Global +
+
+

Immutable, cryptographically-chained log of all moderation decisions

+
+ +
+
+ structured_deliberation +
+ Community + Default +
+
+

Pro/con arguments and collaborative summaries

+
+ +
+
+ self_moderation_rules +
+ Community + Default +
+
+

Community-configurable moderation rules with escalation

+
+ +
+
+ conflict_resolution +
+ Community + Default +
+
+

Structured conflict resolution with mediation

+
+ +
+
+ comment_notifications +
+ Community + Default +
+
+

Sends proposal authors a notification when someone comments

+
+ +
+
+ public_data_export +
+ Community + Default +
+
+

Privacy-aware CSV/JSON data exports

+
+ +
+
+ governance_analytics +
+ Community + Default +
+
+

Aggregate governance analytics and health metrics

+
+ +
+
+ federation +
+ Global + Optional +
+
+

Multi-community federation and cross-instance collaboration

+
+
+ +
+ +
+

Voting methods at a glance

+

Voting is a plugin: choose the tally that fits the decision.

+
+
+

Schulze

+

Consensus-seeking elections with many candidates (Condorcet).

+
+
+

STAR

+

Score + runoff: captures intensity and broad support.

+
+
+

Quadratic

+

Prioritization and budgeting: reveals preference intensity.

+
+
+

Ranked choice

+

Simple single-winner elections with transfers.

+
+
+

Approval

+

Fast, robust decisions: choose all acceptable options.

+
+
+ +
+ +
+

Example module bundles

+

Different organizations enable different governance “stacks”.

+
+
+

Open source project

+
+ structured_deliberation + comment_notifications + conflict_resolution + schulze +
+

Strong deliberation + consensus elections for maintainers and roadmap decisions.

+
+
+

Member association / NGO

+
+ decision_workflows + public_data_export + approval + ranked_choice +
+

Clear phases, exports for record-keeping, and simple member-friendly voting.

+
+
+

Federated network

+
+ federation + governance_analytics + moderation_ledger + quadratic +
+

Cross-community coordination, visibility into governance health, and prioritization across chapters.

+
+
+
@@ -451,15 +706,39 @@ import PublicLayout from '../layouts/PublicLayout.astro'; } /* Process Flow Section */ - .diagram-grid { + .modularity-notes { display: grid; grid-template-columns: repeat(2, 1fr); + gap: 1.5rem; + margin: 2rem 0; + } + + @media (max-width: 900px) { + .modularity-notes { + grid-template-columns: 1fr; + } + } + + .modularity-note h4 { + margin: 0 0 0.5rem; + font-size: 1.125rem; + } + + .modularity-note p { + margin: 0; + color: var(--color-text-muted); + line-height: 1.6; + } + + .diagram-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; } @media (max-width: 900px) { .diagram-grid { - grid-template-columns: 1fr; + gap: 1.5rem; } } @@ -492,6 +771,150 @@ import PublicLayout from '../layouts/PublicLayout.astro'; font-weight: 500; } + .modularity-panels { + display: grid; + gap: 1.5rem; + margin-top: 2rem; + } + + .modularity-panel h3 { + margin: 0 0 0.75rem; + font-size: 1.25rem; + } + + .panel-intro { + margin: 0 0 1.25rem; + color: var(--color-text-muted); + line-height: 1.6; + } + + .panel-footer { + margin-top: 1.25rem; + } + + .plugin-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1rem; + } + + @media (max-width: 900px) { + .plugin-grid { + grid-template-columns: 1fr; + } + } + + .plugin-item { + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + padding: 1rem; + background: rgba(255, 255, 255, 0.02); + } + + .plugin-head { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 0.75rem; + margin-bottom: 0.5rem; + } + + .plugin-code { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 0.875rem; + color: var(--color-text); + } + + .plugin-badges { + display: flex; + gap: 0.35rem; + flex-wrap: wrap; + justify-content: flex-end; + } + + .plugin-item p { + margin: 0; + color: var(--color-text-muted); + font-size: 0.9375rem; + line-height: 1.5; + } + + .methods-grid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 1rem; + } + + @media (max-width: 900px) { + .methods-grid { + grid-template-columns: repeat(2, 1fr); + } + } + + @media (max-width: 520px) { + .methods-grid { + grid-template-columns: 1fr; + } + } + + .method-mini { + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + padding: 1rem; + background: rgba(255, 255, 255, 0.02); + } + + .method-mini h4 { + margin: 0 0 0.5rem; + font-size: 1rem; + color: var(--color-primary); + } + + .method-mini p { + margin: 0; + color: var(--color-text-muted); + font-size: 0.875rem; + line-height: 1.5; + } + + .bundle-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + } + + @media (max-width: 900px) { + .bundle-grid { + grid-template-columns: 1fr; + } + } + + .bundle-item { + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + padding: 1rem; + background: rgba(255, 255, 255, 0.02); + } + + .bundle-item h4 { + margin: 0 0 0.75rem; + font-size: 1rem; + } + + .bundle-pills { + display: flex; + gap: 0.35rem; + flex-wrap: wrap; + margin-bottom: 0.75rem; + } + + .bundle-item p { + margin: 0; + color: var(--color-text-muted); + font-size: 0.9375rem; + line-height: 1.5; + } + /* Technical Section */ .tech-grid { display: grid;