From c3deb18df812bdf4d6afebd85f696d591343c727 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Sat, 28 Feb 2026 04:09:23 +0000 Subject: [PATCH] feat: port module landing pages from standalone Next.js sites Replace template landing pages for 10 modules with unique designs ported from their original standalone Next.js/Tailwind sites. Each page now has distinctive visuals, SVG icons, and content matching the original: - rfunds: funnel metaphor diagram, amber/emerald/blue theme - rtube: video streaming workflow, red/pink/orange theme - rtrips: travel planning with teal/cyan SVG icons - rforum: Discourse pricing tiers, indigo/violet theme - rcal: temporal zoom visualization, blue gradient bars - rvote: quadratic voting calculator, indigo/purple theme - rpubs: group buy tiers, cross-title batching diagram - rchoices: spider plot SVG, ranking mockup, live voting bars - rwork: kanban board workflow, blue/teal/green theme - rinbox: encrypted chat features, blue/teal gradient All pages use dark mode and the shared rl-* CSS utility classes. Co-Authored-By: Claude Opus 4.6 --- modules/cal/landing.ts | 411 +++++++++++++++++-------------- modules/choices/landing.ts | 253 ++++++++++--------- modules/forum/landing.ts | 116 +++++---- modules/funds/landing.ts | 138 +++++++---- modules/inbox/landing.ts | 283 ++++++++++----------- modules/pubs/landing.ts | 489 +++++++++++++++++++++---------------- modules/trips/landing.ts | 178 +++++++++++--- modules/tube/landing.ts | 312 ++++++++++++----------- modules/vote/landing.ts | 486 +++++++++++++++++++++++------------- modules/work/landing.ts | 223 ++++++++++------- 10 files changed, 1709 insertions(+), 1180 deletions(-) diff --git a/modules/cal/landing.ts b/modules/cal/landing.ts index 64b75de..de793e2 100644 --- a/modules/cal/landing.ts +++ b/modules/cal/landing.ts @@ -1,152 +1,202 @@ /** * rCal landing page — relational calendar. + * Ported from rcal-online Next.js page.tsx (318 lines). */ export function renderLanding(): string { return `
- rCal -

(You)rCal, your rhythm.

-

Time is shared. Your calendar should be too.

+ + Relational Calendar + +

+ Time is shared. Your calendar should be too. +

+

+ A collaborative calendar for communities, cooperatives, and coordinated groups. +

- A spatiotemporal calendar that couples where and when, supports natural cycles, - and zooms from 30-second moments to geological epochs. + rCal rethinks the calendar as a shared, spatial, and cyclical tool. + See events across time and place, overlay lunar cycles, zoom from a single hour to a whole decade, + and keep everyone on the same page — without the back-and-forth.

- -
+ +
-

What rCal Handles

-
-
🔭
-

Temporal Zoom

-

Ten zoom levels from 30-second moments to cosmic time. Year, month, week, day — and beyond.

+
+
+ 🤝 +
+

Shared by Default

+

One calendar for the whole group. Everyone sees the same context — no more fragmented schedules.

-
-
📅
-

Shared Events

-

Calendars belong to spaces, not individuals. Everyone sees the same schedule by default.

+
+
+ 🗺 +
+

Spatiotemporal

+

Events have a where, not just a when. See your schedule on a map and a timeline simultaneously.

-
-
🌙
-

Lunar Phases

-

Moon phases, solstices, and seasonal rhythms overlaid on the Gregorian grid. Plan with natural cycles.

+
+
+ 🌙 +
+

Natural Cycles

+

Lunar phases, eclipses, and solstices built in. Reconnect your planning to the rhythms of the natural world.

-
-
🗺
-

Location-Aware

-

Events have places, not just times. Spatial and temporal zoom are coupled at every level.

+
+
+ 🔭 +
+

Multi-Scale Zoom

+

Ten levels of time — from a 30-second moment to a cosmic era. See today or plan a decade ahead.

- -
+ +
-

How It Works

-
-
- 1 -

Create events

-

Add events with time, location, and source context. Pull from ICS feeds, CalDAV, or other r* modules.

+ + Why rCal? + +

+ Calendars were never meant to be personal silos +

+

+ Mainstream calendars treat time as private property. rCal treats it as a commons — + something groups navigate together. Here’s what makes it different. +

+
+
+
📍
+

Where + When, Together

+

Every event lives on both a timeline and a map. rCal’s split view lets you see where everyone is meeting and when — with nine spatial zoom levels from planet to street address.

-
- 2 -

Zoom and explore

-

Navigate across ten temporal zoom levels. Spatial and temporal zoom are coupled — zoom out in time and the map zooms out too.

+
+
🔗
+

Coupled Zoom

+

Lock temporal and spatial zoom together: zoom out in time and the map zooms out to match. Planning a week? See the city. Planning a decade? See the continent.

-
- 3 -

Share with your space

-

Space members see the same calendar. rWork sprints, rVote deadlines, rTrips itineraries — all in one view.

+
+
📡
+

Multi-Source Sync

+

Import from Google, Outlook, Apple, CalDAV, ICS feeds, and Obsidian. Layer multiple sources with per-source color coding and visibility controls.

+
+
+
🌑
+

Lunar Overlay

+

Eight moon phases rendered on every calendar view with illumination percentages and eclipse detection. Plan gatherings, gardens, and ceremonies around natural cycles.

+
+
+
🧩
+

r* Ecosystem Embeds

+

rTrips, rMaps, rNetwork, rCart, and rNotes can all embed a calendar view through the context API. One calendar, surfaced everywhere it’s needed.

+
+
+
🏠
+

Self-Hosted & Sovereign

+

Open source and Dockerized. Your events live on your infrastructure — not in a corporate cloud. Full data sovereignty with rIDs authentication.

- +
-

Temporal zoom

-

Ten levels of time — from the blink of an eye to deep time.

-
-
+ + Temporal Navigation + +

+ Ten levels of time +

+

+ Most calendars show you a month. rCal lets you zoom from a single moment to a cosmic era — + each level revealing a different kind of pattern. +

+
+
0 -
+
Moment
- 30 s + 30 seconds
1 -
- Minute +
+ Hour
- 1–10 min + 60 minutes
2 -
- Hour +
+ Day
- 1–6 hrs + 24 hours
3 -
- Day -
- 24 hrs -
-
- 4 -
+
Week
7 days
- 5 -
- Lunar + 4 +
+ Month
- 29.5 days + ~30 days +
+
+ 5 +
+ Season +
+ ~3 months
6 -
- Season -
- ~90 days -
-
- 7 -
+
Year
365 days
- 8 -
- Epoch + 7 +
+ Decade
- decades–centuries + 10 years +
+
+ 8 +
+ Century +
+ 100 years
9 -
+
Cosmic
- geological + Geological
@@ -156,31 +206,63 @@ export function renderLanding(): string {
-

Four views

-
-
-
📅
-

Temporal

-

Classic calendar grid — day, week, month. The view you know.

-

T to switch

+ + Four Views + +

+ One calendar, four perspectives +

+

+ Switch between views with keyboard shortcuts (1–4) to see your events from the angle that matters most right now. +

+
+
+
+
+ 📅 +
+
+

Temporal

+ Press 1 +
+
+

The classic calendar view — month, week, day, year, and season — enhanced with multi-granularity zoom and event indicators.

-
-
🗺
-

Spatial

-

Map view with events pinned to locations. Zoom couples time and space.

-

S to switch

+
+
+
+ 🗺 +
+
+

Spatial

+ Press 2 +
+
+

Interactive map powered by Leaflet. Events cluster by location with nine spatial granularity levels from planet to GPS coordinates.

-
-
🌙
-

Lunar

-

Moon-phase overlay with illumination percentages. Plan with natural rhythms.

-

L to switch

+
+
+
+ 🌙 +
+
+

Lunar

+ Press 3 +
+
+

Moon phase overlay with illumination percentages, eclipse detection, and phase-colored day cells. Plan around the eight phases of the lunar cycle.

-
-
🧩
-

Context

-

Events grouped by r* source module. See your rWork sprints next to rVote deadlines.

-

C to switch

+
+
+
+ 🧩 +
+
+

Context

+ Press 4 +
+
+

When embedded inside another r* tool, this view shows calendar data filtered for that tool’s entity — a trip, a network, a map layer.

@@ -189,115 +271,78 @@ export function renderLanding(): string {
-

Ecosystem integration

-

rCal pulls events from across the r* ecosystem automatically.

+ + Ecosystem + +

+ Part of the r* stack +

+

+ rCal connects to the full suite of community tools. Any r* app can display or create calendar events through the shared context API. +

-
-
✈️
-
-

rTrips

-

Travel itineraries appear as multi-day calendar events with location pins.

-
-
-
+
🗺
-

rMaps

-

Location-tagged events render on the spatial view map layer.

+

rTrips

+

Trip itineraries auto-populate with calendar events for departure, accommodation, and activities.

-
+
+
📍
+
+

rMaps

+

Location-tagged events appear on shared community maps with time-filtered layers.

+
+
+
👥
-

rNetwork

-

Meeting events auto-link to participant profiles and relationship context.

+

rNetwork

+

See when your community members are available and schedule group meetings.

-
+
🛒
-

rCart

-

Group-buy deadlines and fulfillment ETAs show up as calendar milestones.

+

rCart

+

Product launches, market days, and delivery windows sync to your calendar.

-
+
📝
-

rNotes

-

Meeting notes link back to the calendar event that spawned them.

+

rNotes

+

Meeting notes link back to calendar events. Transcriptions attach to the moment they happened.

-
+
🌐
-

rSpace

-

Space-level milestones and deadlines aggregate across all modules into one timeline.

+

rSpace

+

Each space gets its own calendar. Subdomain routing means each community has a dedicated view.

- -
-
-

Built on Open Source

-

The libraries and tools that power rCal.

-
-
-
🗃
-

PostgreSQL

-

Rock-solid relational database for events, sources, locations, and calendar metadata.

-
-
-
🚗
-

OSRM

-

Open-source routing engine for location-based scheduling, travel times, and spatial queries.

-
-
-
🔥
-

Hono

-

Ultrafast web framework for the API layer. Lightweight, edge-ready, and built for speed.

-
-
-
-
- - -
-
-

Your Data, Protected

-

How rCal keeps your information safe.

-
-
-
🔒
-

End-to-End Encryption

- Coming Soon -

All content encrypted before it leaves your device. Not even the server can read it.

-
-
-
🕵
-

Zero-Knowledge Architecture

- Coming Soon -

The server processes your requests without ever seeing your data in the clear.

-
-
-
🏠
-

Self-Hosted

-

Run on your own infrastructure. Your server, your rules, your data.

-
-
-
-
-
-

(You)rCal, your rhythm.

-

Try the demo or create a space to get started.

+

+ See time differently +

+

+ Try the spatiotemporal calendar with lunar overlays, multi-source sync, and community sharing. + No account needed for the demo. +

diff --git a/modules/choices/landing.ts b/modules/choices/landing.ts index e96f14c..fde8f8a 100644 --- a/modules/choices/landing.ts +++ b/modules/choices/landing.ts @@ -1,165 +1,198 @@ /** - * rChoices — rich landing page body. - * Returned by landingPage() in the module export; - * the shell wraps it with header, CSS, and analytics. + * rChoices landing page — quick collaborative decisions. + * Ported from the Next.js page.tsx. Interactive React demos (SpiderDemo, + * RankingDemo, VotingDemo) replaced with text descriptions. */ export function renderLanding(): string { - return ` + return `
- rChoices -

(You)rChoices, your voice.

-

Decide Together, Fairly

+ Quick collaborative decisions +

What should 5 friends
do tonight?

- Quadratic voting, ranked choice, and multi-criteria scoring — all as - interactive shapes on your canvas. Drop a choice, let members vote, - watch results emerge in real time. + Spider plots to weigh trade-offs. Rankings to sort preferences. + Live voting to decide fast. Powered by rSpace real-time sync.

- +
-

What rChoices Handles

-
-
-
-

Quadratic Voting

-

Express intensity of preference. The cost of additional votes grows exponentially, balancing passion with fairness.

+

Three decision tools

+
+ +
+
+ Compare +
+

Spider Plots

+

Everyone rates options on multiple criteria. See where preferences + overlap — and where they don’t.

+
+ + + + + + + + + + + + + + + Price + Vibe + Menu + Distance + Speed + Reviews + +

Multi-criteria comparison at a glance

+
-
-
📋
-

Ranked Choice Voting

-

Order preferences from first to last. Instant-runoff tabulation finds the option with the broadest support.

+ + +
+
+ Rank +
+

Rankings

+

Drag to order your top picks. Borda count or instant-runoff finds + the group’s true consensus.

+
+
+
+ 1st + Thai place on 5th +
+
+ 2nd + New pizza spot +
+
+ 3rd + Taco truck +
+
+ 4th + Sushi bar +
+
+

Drag to reorder — consensus emerges

+
-
-
🔄
-

CRDT-Based Shared State

-

Automerge CRDTs keep all participants in sync — no conflicts, no lost votes, even offline.

-
-
-
-

Real-Time Collaboration

-

Tallies, rankings, and spider charts update live as members vote. Results emerge instantly.

+ + +
+
+ Vote +
+

Live Voting

+

Cast your vote and watch results shift in real time. Perfect for + quick polls and tiebreakers.

+
+
+
+
+ Hike + 45% +
+
+
+
+
+
+
+ Beach + 35% +
+
+
+
+
+
+
+ Stay in + 20% +
+
+
+
+
+
+

Results update live — 9 votes in

+
- +
-

How It Works

+

How it works

1
-

Create a Decision

-

Pick a voting method, name it, and add options. The choice shape appears on the canvas.

+

Create

+

Name your choice room. It comes pre-loaded with vote, rank, and spider tools.

2
-

Add Options & Invite Voters

-

Space members interact with the shape to cast votes, rank preferences, or score criteria.

+

Share

+

Send the link. Everyone joins the same real-time canvas — add options, cast votes.

3
-

Results Calculated Fairly in Real Time

-

Live tallies update as votes arrive. View charts, rankings, and spider diagrams instantly.

+

Decide

+

Results aggregate live. The group sees consensus emerge in seconds.

- +
-

Voting Methods

+

Decisions, not debates

- Three powerful mechanisms, each designed for different decision contexts. + Built for the everyday choices that stall group chats

-
-
-
-

Quadratic Voting

-

Express intensity of preference. The cost of additional votes on one option grows exponentially, balancing passion with fairness.

+
+
+

Where to eat?

+

Rate restaurants on price, distance, vibe. The spider plot finds the sweet spot.

-
-
📋
-

Ranked Choice

-

Order your preferences from first to last. Instant-runoff tabulation finds the option with the broadest support.

+
+

What to watch?

+

Everyone ranks their top 3 movies. Instant-runoff picks the winner.

-
-
🕸
-

Multi-Criteria Scoring

-

Score options across weighted attributes. Spider diagrams reveal trade-offs at a glance.

+
+

Weekend plans?

+

Quick poll: hike, beach, or stay in? Results in 30 seconds.

-
-
-
- - -
-
-

Built on Open Source

-

The libraries and tools that power rChoices.

-
-
-
🔄
-

Automerge

-

Conflict-free replicated data types for shared state — real-time sync without merge conflicts.

-
-
-
🗃
-

PostgreSQL

-

Reliable relational storage for decisions, vote records, and result history.

-
-
-
-

Hono

-

Ultrafast web framework for the API layer — lightweight, typed, and edge-ready.

-
-
-
-
- - -
-
-

Your Data, Protected

-

How rChoices keeps your information safe.

-
-
-
🔒
-

End-to-End Encryption

- Coming Soon -

All content encrypted before it leaves your device. Not even the server can read it.

-
-
-
🕵
-

Zero-Knowledge Architecture

- Coming Soon -

The server processes your requests without ever seeing your data in the clear.

-
-
-
🏠
-

Self-Hosted

-

Run on your own infrastructure. Your server, your rules, your data.

+
+

Team retro priorities?

+

Rank improvement ideas by impact. Borda count surfaces what the team really wants.

-
+
-

(You)rChoices, your voice.

-

Try the demo or create a space to get started.

+

What should 5 friends do tonight?

+

Create a room and find out in 30 seconds.

diff --git a/modules/forum/landing.ts b/modules/forum/landing.ts index 5d6d670..9f40dc9 100644 --- a/modules/forum/landing.ts +++ b/modules/forum/landing.ts @@ -1,5 +1,6 @@ /** - * Forum module landing page — static HTML, no React. + * rForum landing page — Discourse forum provisioning. + * Ported from /opt/apps/rforum-online/src/app/page.tsx */ export function renderLanding(): string { return ` @@ -18,61 +19,41 @@ export function renderLanding(): string {
- -
-
-

What rForum Handles

-
-
-
-

Automated Provisioning

-

One-click Discourse deployment. Server creation, installation, and configuration handled automatically.

-
-
-
-

Cloud VPS Deployment

-

Deploy on Hetzner Cloud in Germany, Finland, or the US. Transparent pricing with no markup.

-
-
-
🌐
-

DNS Integration

-

Automatic DNS setup for your subdomain via Cloudflare. SSL certificates provisioned with Let's Encrypt.

-
-
-
🛠
-

No DevOps Required

-

No command line, no SSH — just fill in your settings and watch your forum come online.

-
-
-
-
- -
+

How It Works

-
-
1
-

Configure

-

Choose your subdomain, server region, and instance size. Add SMTP credentials for email delivery. Set your admin email.

+
+
+ +
+

1. Configure

+

Choose your subdomain, server region, and instance size. + Add SMTP credentials for email delivery. Set your admin email.

-
-
2
-

Provision

-

We create a cloud server on Hetzner, install Discourse, configure SSL via Let's Encrypt, and set up DNS. Takes about 10-15 minutes.

+
+
+ +
+

2. Provision

+

We create a cloud server on Hetzner, install Discourse, + configure SSL via Let's Encrypt, and set up DNS. Takes about 10-15 minutes.

-
-
3
-

Go Live

-

Your forum is ready. Log in as admin, customize your community, invite members, and start conversations. Full SSH access included.

+
+
+ +
+

3. Go Live

+

Your forum is ready. Log in as admin, customize your community, + invite members, and start conversations. Full SSH access included.

-
+

Transparent Pricing

@@ -132,31 +113,49 @@ export function renderLanding(): string {

-
+

What You Get

+
+ +

Automated SSL

Let's Encrypt certificates provisioned automatically during setup.

+
+ +

Multiple Regions

Deploy in Germany, Finland, or the US East/West Coast.

+
+ +

Full SSH Access

Your server, your rules. SSH in anytime for custom configuration.

+
+ +

One-Click Updates

Discourse's built-in admin panel handles version upgrades.

+
+ +

DNS Management

Automatic DNS setup for *.rforum.online subdomains.

+
+ +

Real-Time Logs

Watch your forum provision step-by-step in the dashboard.

@@ -165,24 +164,36 @@ export function renderLanding(): string {
-
+

Built on Open Source

The libraries and tools that power rForum.

+
+ +

Discourse

The world's most popular open-source forum platform.

+
+ +

Hetzner Cloud API

Automated VPS provisioning in multiple regions.

+
+ +

Cloudflare API

DNS management and SSL termination.

+
+ +

Hono

Ultra-fast, lightweight API framework powering the backend.

@@ -191,7 +202,7 @@ export function renderLanding(): string {
-
+

Your Data, Protected

How rForum keeps your information safe.

@@ -218,12 +229,12 @@ export function renderLanding(): string {
-
+
-

(You)rForum, your community.

-

Try the demo or create a space to get started.

+

Ready to launch your community?

+

Deploy a production Discourse forum in under 15 minutes. No DevOps experience needed.

@@ -231,6 +242,5 @@ export function renderLanding(): string { -`; +
`; } diff --git a/modules/funds/landing.ts b/modules/funds/landing.ts index 8789c8c..1894451 100644 --- a/modules/funds/landing.ts +++ b/modules/funds/landing.ts @@ -1,5 +1,6 @@ /** * rFunds — rich landing page body. + * Ported from rfunds-online/app/page.tsx (Next.js/Tailwind). * Returned by landingPage() in the module export; * the shell wraps it with header, CSS, and analytics. */ @@ -8,66 +9,107 @@ export function renderLanding(): string {
rFunds -

(You)rFunds, your flow.

-

Visualize Your Community's Money

-

- Budget flows, river visualization, and conviction funding. - Watch resources move through your community in real time. +

+ Threshold-Based Flow Funding +

+

+ Design continuous funding flows that respond dynamically to threshold conditions. + Connect funnels, set overflow rules, and track outcomes in real-time.

- +
-

What rFunds Handles

-
+

How It Works

+
-
🌊
-

Budget Flow Visualization

-

Animated flow diagram showing how funds move between pools, funnels, and outcomes in real time.

+
+ + + +
+

Create Funnels

+

Each funnel represents a funding pool with three zones: overflow (above max), + healthy (between thresholds), and critical (below min). Set thresholds by + dragging handles.

+
-
📊
-

Treasury Dashboards

-

Full overview of balances, inflows, outflows, and historical transaction data for your community.

+
+ + + +
+

Connect Flows

+

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

+
-
💡
-

Conviction-Based Funding

-

Continuous signaling lets community members express preferences that compound over time.

-
-
-
💨
-

River Metaphor

-

Named budget streams between funding pools with configurable rates, thresholds, and activation rules.

+
+ + + + +
+

Simulate & Share

+

Run simulations to see how funds flow through your system. Watch edge widths + scale proportionally. Save your space locally and share it with a link.

- +
-

How It Works

-
-
-
1
-

Connect Your Treasury

-

Link funding pools and define budget streams with rates, thresholds, and allocation rules.

-
-
-
2
-

Map Budget Flows Visually

-

The river visualization animates budget movement in real time — deposits, withdrawals, and funnels.

-
-
-
3
-

Decide Funding with Conviction

-

Community members signal preferences through conviction funding. Resources flow where attention goes.

+
+

The Funnel Metaphor

+
+ + +
+
+
OVERFLOW ZONE
+
Above MAX threshold
+
Excess funds redistribute to other funnels
+
+
+ + +
+ -- MAX THRESHOLD -- +
+ + +
+
+
HEALTHY ZONE
+
Normal operations
+
Full flow rate, balanced funding
+
+
+ + +
+ -- MIN THRESHOLD -- +
+ + +
+
+
CRITICAL ZONE
+
Below MIN threshold
+
Outflow restricted, conservation mode
+
+
+
@@ -100,7 +142,7 @@ export function renderLanding(): string {
-
+

Built on Open Source

The libraries and tools that power rFunds.

@@ -125,7 +167,7 @@ export function renderLanding(): string {
-
+

Your Data, Protected

How rFunds keeps your information safe.

@@ -152,13 +194,13 @@ export function renderLanding(): string {
-
+
-

(You)rFunds, your flow.

-

Try the demo or create a space to get started.

+

Ready to design your funding flows?

+

Start with the interactive demo or create your own space with custom funnels and connections.

diff --git a/modules/inbox/landing.ts b/modules/inbox/landing.ts index 8964f88..113f965 100644 --- a/modules/inbox/landing.ts +++ b/modules/inbox/landing.ts @@ -1,203 +1,188 @@ /** - * Inbox module landing page — static HTML, no React. + * rInbox (rChats) landing page — encrypted community chat. + * Ported from rchats-online Next.js page.tsx (shadcn/ui + Lucide). */ export function renderLanding(): string { - return ` + return `
- rInbox -

(You)rInbox, your team's voice.

-

Collaborative Multi-Sig Inbox

+ Part of the rSpace Ecosystem +

Encrypted
+ Community Chat +

- A shared email client where teams read, discuss, and approve messages - together — with cryptographic multi-signature workflows before anything gets sent. + Secure messaging powered by EncryptID passkeys. + No passwords, no seed phrases — just hardware-backed encryption and + full data ownership for your community.

- -
-
-

What rInbox Handles

-
-
-
📧
-

Shared Team Email

-

Your team shares one real email address. Every member sees every thread in real time — no forwarding, no BCC chains.

-
-
-
-

Multi-Signature Approval

-

Outbound emails require M-of-N cryptographic signatures before sending. Every approval is auditable — no rogue replies.

-
-
-
💬
-

Threaded Discussions

-

Comment on any thread privately before replying. Tag members, discuss strategy, and reach consensus alongside the original message.

-
-
-
🔑
-

Cryptographic Signing

-

Every outbound message is cryptographically signed. Full audit trail of approvals, rejections, and edits.

-
-
-
-
-
-

How It Works

+
+ How It Works +

Secure Chat in 30 Seconds

+

+ Create a passkey on your device, + join a community, and + chat with end-to-end encryption. +

+
+
-
-
1
-

Connect a Mailbox

-

Your team shares one real email address. Every member sees every thread in real time — no forwarding, no lost context.

+
+
+
+ +
+

1. Create a Passkey

+
+

+ Register with EncryptID using your device's biometrics or security key. + No passwords to remember or leak. + Your keys never leave your device. +

-
-
2
-

Discuss Messages as a Team

-

Comment on any thread privately before replying. Tag members, discuss strategy, and reach consensus alongside the original message.

+ +
+
+
+ +
+

2. Join a Community

+
+

+ Create or join a community chat space. Invite members with role-based + access: viewers, participants, moderators, and admins. + One identity across all r* apps. +

-
-
3
-

Approve and Send with Multi-Sig

-

Outbound emails require M-of-N cryptographic signatures before sending. Every approval is auditable — no rogue replies.

+ +
+
+
+ +
+

3. Chat Securely

+
+

+ Messages are encrypted with keys derived from your passkey. + Only community members can read them. + True end-to-end encryption. +

- +
-

Collaboration Features

-

Built for collective intelligence, not individual productivity.

-
-
-

Real-Time Collaboration

-
    -
  • Threaded Comments — discuss any email privately before replying
  • -
  • Draft Reviews — collaborative draft editing with inline suggestions
  • -
  • Forwarding Rules — route incoming messages by sender, subject, or tag
  • -
  • Inline Signatures — per-mailbox signature templates with merge fields
  • -
  • Read Receipts — see who has read each thread and when
  • -
-
-
-

Approval Workflows

-
    -
  • Multi-sig sending — outbound emails require M-of-N approval
  • -
  • Configurable thresholds — set approval requirements per mailbox
  • -
  • Audit trail — every approval, rejection, and edit is logged
  • -
  • Role-based access — Admin, Reviewer, Approver, Viewer, Bot
  • -
  • Deadline alerts — notifications when approvals are waiting
  • -
-
-
-
-
+

Built on Self-Sovereign Identity

+

Security without compromise, powered by EncryptID

- -
-
-

Team Roles

-

Fine-grained access control for every team member.

-
-
-

Admin

-

Full control, manage members

-
-
-

Reviewer

-

Read, comment, suggest edits

-
-
-

Approver

-

Sign outbound emails

-
-
-

Viewer

-

Read-only access

-
-
-

Bot

-

Automated integrations

-
-
-
-
- - -
-
-

Built on Open Source

-

The libraries and tools that power rInbox.

-

ImapFlow

-

High-performance IMAP client for real-time email synchronization.

+
+ +
+

End-to-End Encryption

+

AES-256-GCM encryption with keys derived from your passkey. Messages are unreadable to the server.

+
-

Mailparser

-

Email parsing and MIME handling for reliable message processing.

+
+ +
+

Passkey Authentication

+

WebAuthn passkeys backed by biometrics or hardware security keys. Phishing-resistant by design.

+
-

Gnosis Safe

-

Multisig approval protocol adapted for email signing workflows.

+
+ +
+

Community Spaces

+

Create isolated chat spaces with role-based access. Viewer, participant, moderator, and admin roles.

+
-

PostgreSQL

-

Threads, approvals, and audit trails stored in a reliable relational database.

+
+ +
+

Cross-App SSO

+

One identity across rSpace, rVote, rMaps, rWork, and the full r* ecosystem via EncryptID.

-
-
- -
-
-

Your Data, Protected

-

How rInbox keeps your information safe.

-
+ +
-
🔒
-

End-to-End Encryption

- Coming Soon -

All content encrypted before it leaves your device. Not even the server can read it.

+
+ +
+

Social Recovery

+

No seed phrases. Designate trusted guardians who can help you recover access to your account.

+
-
🕵
-

Zero-Knowledge Architecture

- Coming Soon -

The server processes your requests without ever seeing your data in the clear.

+
+ +
+

No Passwords

+

Passkeys replace passwords entirely. Nothing to leak, nothing to forget, nothing to phish.

+
-
🏠
-

Self-Hosted

-

Run on your own infrastructure. Your server, your rules, your data.

+
+ +
+

Self-Sovereign

+

You own your identity and encryption keys. No platform lock-in, no central authority.

+
+ +
+
+ +
+

rSpace Ecosystem

+

Chat integrates with rSpace canvas, rVote governance, rFunds treasury, and more.

-
-
-

(You)rInbox, your team's voice.

-

Try the demo or create a space to get started.

-
- Open Inbox - Create a Space +
+
+
+
+
+
+ Try EncryptID +

See it in action

+

+ Try the interactive EncryptID demo — register a passkey, derive encryption keys, + and test signing and encryption right in your browser. No account needed. +

+ +
-`; +
`; } diff --git a/modules/pubs/landing.ts b/modules/pubs/landing.ts index 41e9b68..9b8be75 100644 --- a/modules/pubs/landing.ts +++ b/modules/pubs/landing.ts @@ -1,109 +1,90 @@ /** * rPubs landing page — community pocket press. + * Ported from the Next.js page.tsx with all unique visual elements preserved. */ export function renderLanding(): string { return `
- rPubs -

(You)rPubs, your press.

-

Write it. Press it. Share it.

+ Community Pocket Press +

Write it. Press it.
Share it.

- Drop in a markdown document, pick a pocket format, and get a print-ready PDF in seconds. - Group up with other authors to unlock bulk pricing through collaborative print runs. + Instant local publishing for your writing. Paste in your text, pick a + pocket format, and get a print-ready book in seconds — then find a + local print shop or bind it yourself.

- -
-
-

What rPubs Handles

-
-
-
📄
-

Markdown → PDF

-

Drop in markdown or rich text. rPubs typesets it with Typst and produces a print-ready PDF in seconds.

-
-
-
📖
-

4 Pocket Formats

-

A7 Pocket, Quarter Letter, A6 Booklet, and Digest. All print-ready at 300 dpi with bleeds.

-
-
-
🤝
-

Collaborative Print Runs

-

Pool orders across titles and authors. The more copies in a run, the cheaper each one gets.

-
-
-
🛒
-

rCart Integration

-

Publish your artifact to the rCart catalog with one click. Group carts, revenue splits, and fulfillment built in.

-
-
-
-
- - +
-

How It Works

+

From draft to booklet in three steps

- 1 -

Write / paste

-

Drop in markdown or rich text. Headings, images, footnotes — it all just works.

+
+ +
+

Write or paste

+

Type directly, paste your markdown, or drop in a .md file. The editor handles the rest.

- 2 +
+ +

Press it

-

Pick a pocket format. rPubs typesets your document with Typst and generates a print-ready PDF.

+

Pick a pocket format — from A7 pocket to digest — and generate a typeset PDF in seconds.

- 3 +
+ +

Print locally

-

Print at home, at a local shop, or list it on rCart for cosmolocal fulfillment.

+

Find a community print shop nearby, or download an imposition PDF and bind it at home.

- +

Four pocket formats

-

From palm-sized zines to digest readers. All print-ready at 300 dpi with bleeds.

+

+ From tiny zines that fit in your back pocket to digest-sized readers for longer works. +

-
-
- -
-

A7 Pocket

-

74 × 105 mm — fits in a shirt pocket. Perfect for poems, manifestos, tiny zines.

+
+

A7 Pocket

+

74 × 105 mm

+

Fits in your pocket. Perfect for poems, manifestos, and quick reads.

+

8–32 pages

-
-
- -
-

Quarter Letter

-

4.25 × 5.5" — half a half-sheet. Great for chapbooks and field guides.

+
+

Quarter Letter

+

4.25 × 5.5"

+

Classic zine size. Great for essays, short stories, and pamphlets.

+

16–64 pages

-
-
- -
-

A6 Booklet

-

105 × 148 mm — postcard size. The workhorse format for essays and readers.

+
+

A6 Booklet

+

105 × 148 mm

+

Postcard-sized. Ideal for field guides, chapbooks, and handbooks.

+

24–96 pages

-
-
- -
-

Digest

-

5.5 × 8.5" — half-letter. Standard trade paperback for longer works.

+
+

Digest

+

5.5 × 8.5"

+

Standard indie publishing size. For novellas, collections, and readers.

+

32–200+ pages

@@ -112,117 +93,253 @@ export function renderLanding(): string {
-

Group buys — better together

-

Pool orders across titles. The more copies in a run, the cheaper each one gets.

+

Bulk orders, better prices

+

+ The more copies a community funds together, the cheaper each one gets. + Group buys unlock better binding and lower per-copy costs. +

+ +
-
-

25+ copies

-

Saddle-stitch binding

-

$8

-

per copy

+
+

25+

+

Saddle-stitch

+

Staple-bound booklet. Quick, lightweight, great for zines and short runs.

+

$8/copy

-
-

50+ copies

-

Perfect-bind

-

$6

- Save 25% -

per copy

+
+ save 25% +

50+

+

Perfect-bind

+

Glued spine with cover wrap. Professional feel, sits on a shelf like a real book.

+

$6/copy

-
-

100+ copies

-

Trade edition

-

$4.50

- Save 44% -

per copy

+
+ save 44% +

100+

+

Trade edition

+

Full trade paperback. Robust binding, printed cover, retail-ready quality.

+

$4.50/copy

-
-
- -
-
-

How collaborative print runs work

-
-
- 1 -

Authors list titles

-

Publish your print-ready artifact to the rCart catalog.

-
-
- 2 -

Readers pre-order

-

Buyers add copies to a shared cart. Orders accumulate toward tier thresholds.

-
-
- 3 -

Threshold met

-

When the combined order hits a tier, the print run triggers automatically.

-
-
- 4 -

Local fulfillment

-

The nearest cosmolocal provider prints and ships. Revenue splits to creator, community, and provider.

+ +
+

How collaborative print runs work

+
+
+
+ 1 +
+

+ A title gets funded by the community +

+
+
+
+ 2 +
+

+ Backers join the group buy as it hits each tier +

+
+
+
+ 3 +
+

+ Order is placed with the nearest print shop via rCart +

+
+
+
+ 4 +
+

+ Books are printed locally and distributed to backers +

+
-
+
-

Cross-title batching

+

Bundle across titles, not just within them

- Orders from different titles count toward the same tier. A community reading list - can hit trade-edition pricing even if no single title has 100 orders. + Printer discounts are based on total volume at the press, not copies of a single book. + When multiple titles route to the same local printer, everyone benefits from the combined run.

-
-

Example batch

-
-
- The Commons35 copies + + +
+

+ How cross-title batching unlocks tiers +

+
+
+

The Commons

+

J. Emmett

+

governance

+

35

+

pre-committed copies

-
- Mycelial Networks40 copies +
+

Mycelial Networks

+

M. Stamets

+

ecology

+

40

+

pre-committed copies

-
- Cosmolocal Reader30 copies +
+

Cosmolocal Reader

+

Collective

+

economics

+

30

+

pre-committed copies

-
combined
+
at the same local printer
- 105 copies - = Trade edition @ $4.50/copy +

105 copies

+

+ Trade edition tier unlocked — $4.50/copy for all three titles +

+

+ No single title hit 100 alone, but together they clear the threshold +

+
+
+ + +
+
+ +
+
+

Pre-commitments flow from rSpace

+

+ Every reading group, community, and network keeps a + CRDT ledger in their + {space}. + When members signal intent to buy, those pre-commitments sync across + clients — conflict-free, append-only, and auditable. +

+

+ As pre-commitments accumulate across titles, genres, and networks that share a + local printer, the combined volume triggers better pricing tiers. + A poetry collective and a tech reading group in the same city don’t need to know + each other — their orders batch automatically at the press. +

+ +
+
+ + +
+
+
+ 1 +
+

Signal

+

+ Communities pre-commit in their {space} CRDT ledger — “I want 3 copies” +

+
+
+
+ 2 +
+

Aggregate

+

+ Pre-commitments across titles and networks + flow into the fund, + batched by printer region +

+
+
+
+ 3 +
+

Release

+

+ When volume hits a tier threshold, the print run triggers — everyone gets the bulk rate +

-
+
-

rCart integration

-

- Group purchasing is built right into the shop. Every rPubs artifact can be listed, - batched, and fulfilled through rCart. +

+ rCt + rCart + × + rP + rPubs +
+

Group purchasing, built in

+

+ rCart handles the commerce side of group buys — collecting orders, + splitting payments, and coordinating delivery. When a title hits its + funding goal, rCart automatically batches the order to the best local + print shop.

    -
  • One-click listing — publish to the rCart catalog straight from the press
  • -
  • Group carts — space members pool orders automatically
  • -
  • Revenue splits — creator, community, and provider shares via rFunds
  • -
  • Cosmolocal fulfillment — nearest provider prints and ships
  • -
  • Order tracking — real-time status from press to doorstep
  • +
  • Shared carts — friends, reading groups, or whole communities pool orders for better rates
  • +
  • Automatic tier unlock — as more copies are ordered, the price drops for everyone
  • +
  • Local fulfillment — orders route to the nearest registered print shop, not a distant warehouse
  • +
  • Transparent pricing — 30% to the author, 10% to the community, 60% to print and delivery
-
-
-
- +
+

Example group buy

+ +
+
+ The Commons + by J. Emmett
-

Shop + Press

-

rPubs creates the artifact.
rCart sells and fulfills it.

+
+
+
+
+ 36 of 50 copies ordered + 72% +
+
+ +
+
+

25+

+

$8/copy

+
+
+

50+

+

$6/copy

+
+
+

100+

+

$4.50

+
+
+
+

Current tier: Saddle-stitch at $8/copy

+

14 more copies to unlock perfect-bind at $6/copy — everyone saves.

@@ -230,76 +347,38 @@ export function renderLanding(): string {
-
+
- rPubs × Cosmolocal

Design global, manufacture local

- Every print run is routed to the nearest capable provider. Reduce shipping emissions, - support local economies, and still benefit from shared design and pooled demand. + rPubs connects you to a cosmolocal network of independent print shops. + Your writing is typeset in the cloud and printed close to where it’s + needed — reducing shipping, supporting local makers, and keeping + publishing accessible.

-
-
- - -
-
-

Built on Open Source

-

The libraries and tools that power rPubs.

-
-
-
-

Typst

-

Document compilation engine. Transforms markdown into beautifully typeset, print-ready PDFs.

-
-
-
🔥
-

Hono

-

Ultrafast web framework for the API layer. Lightweight, edge-ready, and built for speed.

-
-
-
🗃
-

PostgreSQL

-

Rock-solid relational database for catalog storage, orders, and artifact metadata.

-
-
-
-
- - -
-
-

Your Data, Protected

-

How rPubs keeps your information safe.

-
-
-
🔒
-

End-to-End Encryption

- Coming Soon -

All content encrypted before it leaves your device. Not even the server can read it.

-
-
-
🕵
-

Zero-Knowledge Architecture

- Coming Soon -

The server processes your requests without ever seeing your data in the clear.

-
-
-
🏠
-

Self-Hosted

-

Run on your own infrastructure. Your server, your rules, your data.

-
+
-
+
-

(You)rPubs, your press.

+

Write it. Press it. Share it.

Try the demo or create a space to get started.

diff --git a/modules/trips/landing.ts b/modules/trips/landing.ts index 0031fc0..437e73d 100644 --- a/modules/trips/landing.ts +++ b/modules/trips/landing.ts @@ -1,79 +1,177 @@ /** * rTrips landing page — group travel planning. + * Ported from /opt/websites/rtrips-online/src/app/page.tsx */ export function renderLanding(): string { return `
rTrips -

(You)rTrips, your horizon.

-

Plan Your Trip, Naturally

+

(You)rTrips, your horizon.

+

Plan Your Trip, Naturally

Describe your dream trip in plain language. We'll structure it into itineraries, budgets, and bookings — then give you a collaborative canvas to plan together in real-time.

- +
-

What rTrips Handles

-
+

How It Works

+
-
🗺
-

Route Planning

-

Visualize your entire trip on rMaps. See routes between destinations and nearby points of interest.

+
+ +
+

Describe It

+

Tell us about your trip in natural language. “Fly from Toronto to Bali + for 2 weeks in March, budget $3000.” We parse it into structured data + you can refine.

-
📅
-

Itinerary Building

-

Build day-by-day plans together. Add destinations, suggest activities, and rearrange the schedule.

+
+ +
+

We Structure It

+

AI extracts destinations, dates, budgets, and bookings into organized views. + Edit itineraries, track expenses, manage packing lists — all structured + and searchable.

-
💰
-

Expense Splitting

-

Split costs and track expenses across the group. Everyone knows exactly where the money goes.

-
-
-
👥
-

Group Coordination

-

Real-time collaborative canvas for travel partners. Plan visually, brainstorm together, stay in sync.

+
+ +
+

Collaborate on Canvas

+

Open the collaborative canvas to plan visually with your travel partners. + Drag destinations, connect itineraries, and brainstorm together in real-time + or async.

- +
-

How It Works

-
-
- 1 -

Create a trip

-

Describe your trip in natural language. “Fly from Toronto to Bali for 2 weeks in March, budget $3000.” We parse it into structured data you can refine.

+

Everything You Need to Travel Together

+

+ rTrips brings every piece of trip planning into one place — so your group + spends less time coordinating and more time exploring. +

+
+ +
+
+ +
+

Collaborative Itineraries

+

Build day-by-day plans together in real-time. Everyone can add destinations, + suggest activities, and rearrange the schedule — changes sync instantly.

-
- 2 -

Plan your route

-

AI extracts destinations, dates, budgets, and bookings into organized views. Edit itineraries, track expenses, manage packing lists.

+ + +
+
+ +
+

Smart Suggestions

+

AI-powered recommendations for destinations, restaurants, and activities based + on your group's interests, budget, and travel dates.

-
- 3 -

Split expenses

-

Track costs across the group with automatic splitting. Pay your share, see the running total, and keep finances transparent.

+ + +
+
+ +
+

Budget Tracking

+

Split costs, track expenses across the group, and keep a running total so + everyone knows exactly where the money goes. No more messy spreadsheets.

+
+ + +
+
+ +
+

Map Integration

+

Visualize your entire trip on rMaps. See routes between destinations, + nearby points of interest, and real-time location sharing during travel days.

+
+ + +
+
+ +
+

Packing Lists

+

Shared checklists so nothing gets forgotten. Assign items to people, mark + off as you pack, and see at a glance what the group still needs.

+
+ + +
+
+ +
+

Offline Access

+

Download your full itinerary, maps, and booking confirmations for travel + without connectivity. Everything you need, even without a signal.

+
+
+
+
+ + +
+
+

Built for Groups

+

+ Solo trip planners are everywhere. rTrips is purpose-built for the messy, beautiful + reality of traveling with other people. +

+
+ +
+
+ +
+

Friends & Family

+

Family reunions, friend getaways, multi-generational trips. Everyone contributes + ideas, votes on restaurants, and stays in sync without endless group chats.

+
+ + +
+
+ +
+

Teams & Offsites

+

Company retreats, conference travel, team offsites. Coordinate logistics, + share flight details, and manage group bookings from a single shared workspace.

+
+ + +
+
+ +
+

Retreats & Events

+

Yoga retreats, wedding trips, festival crews. Organize large groups with + sub-itineraries, optional activities, and shared costs that stay transparent.

-
+

Built on Open Source

The libraries and tools that power rTrips.

@@ -98,7 +196,7 @@ export function renderLanding(): string {
-
+

Your Data, Protected

How rTrips keeps your information safe.

@@ -125,10 +223,10 @@ export function renderLanding(): string {
-
+
-

(You)rTrips, your horizon.

-

Try the demo or create a space to get started.

+

Ready to plan your next adventure?

+

Just describe where you want to go. We'll handle the rest.

Plan a Trip Create a Space diff --git a/modules/tube/landing.ts b/modules/tube/landing.ts index b539929..cf1f887 100644 --- a/modules/tube/landing.ts +++ b/modules/tube/landing.ts @@ -1,163 +1,195 @@ /** - * Tube module landing page — rich content for rspace.online/rtube + * rTube — rich landing page body. + * Ported from rtube-online/app/page.tsx (Next.js/Tailwind). + * Returned by landingPage() in the module export; + * the shell wraps it with header, CSS, and analytics. */ - export function renderLanding(): string { return ` - -
- rTube -

(You)rTube, your channel.

-

Community Video Platform

-

- Host, stream, and share video without big tech. - Your community's video library with HLS streaming and RTMP ingest. -

-
- Start Streaming - Create a Space + +
+ rTube +

+ Community Video Hosting, Storage & Streaming +

+

Who needs YouTube, when you have (ou)rTube!

+

+ Self-hosted video recording, live streaming, and storage for your rSpace community. + No corporate surveillance. No algorithmic feeds. Just your community's content. +

+ +
+ + +
+
+

How It Works

+
+
+
+ + + + +
+

Record

+

Stream directly from OBS, browser, or any RTMP-compatible tool. Your content + goes straight to your community's server — no third-party platforms involved.

+
+ +
+
+ + + +
+

Stream Live

+

Community members watch in real-time via HLS adaptive streaming. + Low-latency delivery through your own nginx-rtmp server with automatic + quality adaptation.

+
+ +
+
+ + + +
+

Archive & Store

+

Completed streams are automatically converted to MP4 and archived to + R2 cloud storage. Browse, search, and replay your community's entire + video library anytime.

+
+
- -
-
-

What rTube Handles

-
-
-
📺
-

Video Hosting

-

Upload video files in any major format. MP4, WebM, MKV, MOV — they all work.

+ +
+
+
+

Built for Communities

+
+
+ +
+

Self-Hosted

+

Your server, your data. No YouTube, no Twitch, no corporate middlemen.

+
-
-
📡
-

HLS Adaptive Streaming

-

Adaptive bitrate streaming ensures smooth playback on any connection speed or device.

+
+ +
+

RTMP Ingest

+

Standard RTMP protocol — works with OBS, Streamlabs, FFmpeg, and more.

+
-
-
📡
-

RTMP Live Ingest

-

Go live with OBS, Streamlabs, or any RTMP-compatible streaming software. One URL, instant broadcast.

+
+ +
+

R2 Cloud Storage

+

Cloudflare R2 for cost-effective, globally distributed video storage.

+
-
-
🎥
-

R2 Cloud Storage & Community Channels

-

Videos stored on Cloudflare R2 for fast delivery. Each space gets its own channel.

+
+ +
+

HLS Playback

+

Adaptive bitrate streaming works on every device and browser.

+
+
+
+ +
+

Auto-Archive

+

Streams are automatically converted to MP4 and uploaded when they end.

+
+
+
+ +
+

Community-Scoped

+

Each rSpace community gets its own video library and streaming channel.

+
-
+
+
- -
-
-

How It Works

-
-
-
1
-

Upload or Stream Live

-

Drop video files in any format or point OBS at your space's RTMP ingest URL and go live instantly.

-
-
-
2
-

Automatic HLS Transcoding

-

FFmpeg transcodes uploads into adaptive bitrate HLS streams for smooth playback on any device.

-
-
-
3
-

Share with Your Community

-

Videos are organized by space. Share links, embed on your canvas, or browse the community library.

-
+ +
+
+

Built on Open Source

+

The libraries and tools that power rTube.

+
+
+
+

AWS S3 SDK

+

Cloudflare R2 object storage via the S3-compatible API. Fast, globally distributed, no egress fees.

+
+
+
📺
+

HLS.js

+

Adaptive bitrate streaming library. Smooth playback with automatic quality switching in the browser.

+
+
+
🎦
+

FFmpeg

+

Industry-standard video transcoding. Converts uploads into multi-bitrate HLS streams automatically.

+
+
+
🔥
+

Hono

+

Ultrafast web framework for the API layer. Lightweight, type-safe, and runs on any JavaScript runtime.

-
+
+
- -
-
-

Technical Details

-
-
    -
  • H.264 / H.265 hardware-accelerated codec support
  • -
  • WebM (VP8/VP9) for open-format video
  • -
  • Adaptive bitrate HLS for smooth playback on any connection
  • -
  • HTTP Range requests for efficient seeking and partial downloads
  • -
  • RTMP ingest compatible with OBS, Streamlabs, and ffmpeg
  • -
+ +
+
+

Your Data, Protected

+

How rTube keeps your information safe.

+
+
+
🔒
+

End-to-End Encryption

+ Coming Soon +

All content encrypted before it leaves your device. Not even the server can read it.

+
+
+
🕵
+

Zero-Knowledge Architecture

+ Coming Soon +

The server processes your requests without ever seeing your data in the clear.

+
+
+
🏠
+

Self-Hosted

+

Run on your own infrastructure. Your server, your rules, your data.

-
+
+
- -
-
-

Built on Open Source

-

The libraries and tools that power rTube.

-
-
-
-

AWS S3 SDK

-

Cloudflare R2 object storage via the S3-compatible API. Fast, globally distributed, no egress fees.

-
-
-
📺
-

HLS.js

-

Adaptive bitrate streaming library. Smooth playback with automatic quality switching in the browser.

-
-
-
🎦
-

FFmpeg

-

Industry-standard video transcoding. Converts uploads into multi-bitrate HLS streams automatically.

-
-
-
🔥
-

Hono

-

Ultrafast web framework for the API layer. Lightweight, type-safe, and runs on any JavaScript runtime.

-
-
+ +
+
+

Ready to take back your video?

+

Browse the community video library or start a live stream for your rSpace.

+ -
+
+
- -
-
-

Your Data, Protected

-

How rTube keeps your information safe.

-
-
-
🔒
-

End-to-End Encryption

- Coming Soon -

All content encrypted before it leaves your device. Not even the server can read it.

-
-
-
🕵
-

Zero-Knowledge Architecture

- Coming Soon -

The server processes your requests without ever seeing your data in the clear.

-
-
-
🏠
-

Self-Hosted

-

Run on your own infrastructure. Your server, your rules, your data.

-
-
-
-
- - -
-
-

(You)rTube, your channel.

-

Try the demo or create a space to get started.

- -
-
- - `; +`; } diff --git a/modules/vote/landing.ts b/modules/vote/landing.ts index 7452814..dd82ae4 100644 --- a/modules/vote/landing.ts +++ b/modules/vote/landing.ts @@ -1,216 +1,353 @@ /** * rVote landing page — democratic backlog prioritization. + * Ported from rvote-online Next.js page.tsx (423 lines, shadcn/ui). */ export function renderLanding(): string { return `
- rVote -

(You)rVote, your voice.

-

Democratic Backlog Prioritization

-

- Quadratic conviction voting with time-decay. Surface the ideas your community actually cares about — - not just the loudest voices. + + Part of the rSpace Ecosystem + +

+ Democratic
Backlog Prioritization +

+

+ rVote uses Quadratic Proposal Ranking to let your community democratically + prioritize proposals. The best ideas rise to the top through collective intelligence, + then advance to final voting.

- -
+ +
-

What rVote Handles

-
-
-
-

Conviction Voting

-

Proposals accumulate conviction score from community votes. The most supported ideas float to the top.

-
-
-
-

Quadratic Voting

-

Each additional vote costs quadratically more credits. Balances intensity of preference with breadth of support.

-
-
-
🕐
-

Proposal Lifecycle

-

From ranking through promotion to final pass/fail vote. Proposals advance automatically when thresholds are met.

-
-
-
🏛
-

Democratic Governance

-

Daily credit allowances, vote decay, and sybil resistance. One person, one identity, one voice.

-
+
+ ELI5 +

+ rVote in 30 Seconds +

+

+ A quadratic + Reddit-style ranking system + with time-delayed vote decay + for proposal prioritization. +

-
-
- -
-
-

How It Works

-
- 1 -

Ranking (QPR)

-

Community members spend credits to upvote proposals. Conviction score accumulates with quadratic cost.

+ +
+
+
+ +
+

Quadratic

+
+

+ Voting more costs exponentially more credits. 1 vote = 1 credit, 2 votes = 4, 3 votes = 9. + No single voice can dominate. +

-
- 2 -

Score reaches +100

-

When a proposal crosses the promotion threshold (default 100), it automatically enters the final vote.

+ + +
+
+
+ +
+

Reddit-style

+
+

+ Upvote or downvote proposals. Scores aggregate from all community votes. + Best ideas rise to the top. +

-
- 3 -

Pass / Fail Vote

-

A time-limited binary vote (Yes / No / Abstain) decides the outcome. Simple majority wins.

+ + +
+
+
+ +
+

Vote Decay

+
+

+ Votes fade after 30–60 days. Old support expires, requiring renewed interest. + Rankings stay fresh and relevant. +

- + +
+
+ Live Demo +

+ Try It Yourself +

+

+ Vote on live polls synced across the r* ecosystem. Changes appear in real-time for everyone. +

+ + Open Interactive Demo + +
+
+ +
-

What is Quadratic Priority Ranking?

-
-
-

The Problem

-

Traditional voting (1 person = 1 vote) lets small, passionate groups dominate. - Token-weighted voting lets whales decide everything. Neither reflects genuine community preference.

+
+ + The Core Concept + +

+ What is Quadratic Proposal Ranking? +

+

+ A system where expressing strong preference costs progressively more, + creating a fair and balanced priority list that reflects true community consensus. +

+
+ +
+ +
+
+ +

The Problem

+
+

+ Traditional priority systems let those with more time, resources, or influence dominate what gets attention. +

+
    +
  • Loudest voices set the agenda
  • +
  • Important but less flashy ideas get buried
  • +
  • No way to express intensity of preference
  • +
  • Backlogs become political battlegrounds
  • +
-
-

The Solution

-

Quadratic voting makes strong preferences expensive. You can signal that you care a lot — - but it costs quadratically more. This balances intensity of preference with breadth of support.

+ + +
+
+ +

The Solution: QPR

+
+

+ Quadratic Proposal Ranking balances participation and conviction by making additional votes progressively more expensive. +

+
    +
  • 1 vote = 1 credit, 2 votes = 4, 3 = 9
  • +
  • Everyone can participate meaningfully
  • +
  • Express strong opinions, but at a cost
  • +
  • Naturally surfaces community consensus
  • +
+ + +
+

+ Vote Cost Calculator +

+
+
+
1
+
vote
+
1
+
credit
+
+
+
2
+
votes
+
4
+
credits
+
+
+
3
+
votes
+
9
+
credits
+
+
+
4
+
votes
+
16
+
credits
+
+
+
5
+
votes
+
25
+
credits
+
+
+

+ Spreading votes across proposals you support is more efficient than concentrating on one. +

+
- +
-

Vote cost calculator

-

The cost of conviction grows quadratically.

-
-
-
-
1
-
vote
-
1 credit
+
+ + How It Works + +

+ From Chaos to Consensus +

+

+ Transform your community’s ideas into a democratically prioritized backlog + through two simple stages. +

+
+ +
+ +
+
+
+ +
+
+ Stage 1 +

Quadratic Proposal Ranking

+
-
-
2
-
votes
-
4 credits
+
    +
  • + + All proposals enter the ranking pool +
  • +
  • + + Upvote/downvote with quadratic cost +
  • +
  • + + Votes decay over 30–60 days +
  • +
  • + + Creates a living priority queue +
  • +
+
+ + +
+
+
+ +
+
+ Threshold +

Score +100

+
-
-
3
-
votes
-
9 credits
-
-
-
4
-
votes
-
16 credits
-
-
-
5
-
votes
-
25 credits
+

+ When a proposal reaches a score of +100, it + automatically advances to the final voting stage. +

+

+ This ensures only proposals with genuine community support move + forward for implementation decisions. +

+
+ + +
+
+
+ +
+
+ Stage 2 +

Pass/Fail Vote

+
+
    +
  • + + Yes / No / Abstain voting +
  • +
  • + + One member = one vote +
  • +
  • + + 7-day voting period +
  • +
  • + + Majority decides implementation +
  • +
- +
-

Built for real governance

-
-
-
- +
+

+ Built for Fair Prioritization +

+

Everything you need for democratic backlog management

+
+ +
+
+
+

Earn Credits Daily

-

Every verified member receives a daily credit allowance. No pay-to-play.

+

Get 10 credits every day. Start with 50. Max 500.

-
-
- + +
+
+

Vote Decay

-

Votes decay linearly from day 30 to day 60. Stale support fades, keeping rankings fresh.

+

Old votes fade away, keeping rankings fresh and dynamic.

-
-
- + +
+
+

Sybil Resistant

-

Passkey authentication via EncryptID. One person, one identity, one credit stream.

+

Quadratic costs make fake account attacks expensive.

-
-
- + +
+
+

Auto Promotion

-

Proposals that hit the threshold automatically move to a final pass/fail vote. No admin bottleneck.

-
-
-
-
- - -
-
-

Built on Open Source

-

The libraries and tools that power rVote.

-
-
-
🗃
-

PostgreSQL

-

Rock-solid relational database for proposals, votes, credit balances, and governance history.

-
-
-
-

Conviction Voting Algorithm

-

Continuous preference signaling with quadratic cost and time-decay. Open-source governance math.

-
-
-
🔥
-

Hono

-

Ultrafast web framework for the API layer. Lightweight, edge-ready, and built for speed.

-
-
-
-
- - -
-
-

Your Data, Protected

-

How rVote keeps your information safe.

-
-
-
🔒
-

End-to-End Encryption

- Coming Soon -

All content encrypted before it leaves your device. Not even the server can read it.

-
-
-
🕵
-

Zero-Knowledge Architecture

- Coming Soon -

The server processes your requests without ever seeing your data in the clear.

-
-
-
🏠
-

Self-Hosted

-

Run on your own infrastructure. Your server, your rules, your data.

+

Top proposals automatically advance to voting.

@@ -218,12 +355,33 @@ export function renderLanding(): string {
-
-

(You)rVote, your voice.

-

Try the demo or create a space to get started.

-
- Start Voting - Create a Space +
+
+ + Join the rSpace Ecosystem + +

+ Ready to prioritize democratically? +

+

+ Create a Space for your community and start using Quadratic Proposal Ranking. + Invite members, allot credits, and let the best ideas rise to the top. +

+
diff --git a/modules/work/landing.ts b/modules/work/landing.ts index 1bf681f..750ffb6 100644 --- a/modules/work/landing.ts +++ b/modules/work/landing.ts @@ -1,136 +1,183 @@ /** * rWork landing page — collective task management. + * Ported from rwork-online Next.js page.tsx (shadcn/ui + Lucide). */ export function renderLanding(): string { return `
- rWork -

(You)rWork, your flow.

-

Get things done, together

+ Part of the rSpace Ecosystem +

Collective
+ Task Management +

- Kanban boards, team spaces, and real-time collaboration — built for groups - that share work, not just assign it. + Create Spaces for your community to collaborate on shared projects. + Track tasks through pipelines with real-time kanban boards powered + by markdown-native task management.

- -
-
-

What rWork Handles

-
-
-
📋
-

Kanban Boards

-

Drag-and-drop columns with customizable statuses. See everything at a glance.

-
-
-
-

Task Management

-

Create tasks with titles, descriptions, labels, and priorities. Track progress across your team.

-
-
-
📈
-

Activity Logging

-

Every change is tracked. See who moved what, when, and why — full audit trail.

-
-
-
👥
-

Workspace Collaboration

-

Each workspace is scoped to a space. Members share boards, tasks, and activity in real time.

-
-
-
-
-
-

How It Works

+
+ How It Works +

rWork in 30 Seconds

+

+ Create a Space for your community, + add tasks to your pipeline, and + track progress together in real-time. +

+
+
-
- 1 -

Create a workspace

-

Every workspace lives inside an rSpace — shared by default with your team.

+
+
+
+ +
+

1. Create a Space

+
+

+ Set up a workspace for your project or community. Configure your pipeline + statuses and invite members. + Each Space gets its own kanban board. +

-
- 2 -

Add tasks and boards

-

Create tasks with titles, descriptions, labels, and priorities. Drag them across columns.

+ +
+
+
+ +
+

2. Add Tasks

+
+

+ Create tasks with descriptions, priorities, labels, and acceptance criteria. + Assign them to team members. + Tasks are stored as plain markdown files. +

-
- 3 -

Track progress together

-

Assign, comment, and track progress in real time. Everyone sees the same board.

+ +
+
+
+ +
+

3. Collaborate

+
+

+ Drag tasks through your pipeline in real-time. Everyone sees updates instantly + via WebSocket sync. + Work together, stay in sync. +

- +
-

Built on Open Source

-

The libraries and tools that power rWork.

-
+

Built for Community Collaboration

+

Everything you need to coordinate shared work

+ +
-
🔥
-

Hono

-

Ultrafast web framework for the API layer. Lightweight, edge-ready, and built for speed.

+
+ +
+

Kanban Boards

+

Drag-and-drop tasks through customizable pipeline stages.

+
-
🗃
-

PostgreSQL

-

Rock-solid relational database for task storage, workspaces, boards, and activity logs.

+
+ +
+

Team Spaces

+

Create isolated workspaces with role-based access control.

+
-
-

Bun

-

All-in-one JavaScript runtime. Fast startup, native TypeScript, and built-in bundling.

+
+ +
+

Real-time Sync

+

Changes appear instantly for all members via WebSocket.

+
+ +
+
+ +
+

Markdown Native

+

Tasks stored as plain .md files. Version-controllable, AI-friendly.

-
-
- -
-
-

Your Data, Protected

-

How rWork keeps your information safe.

-
+ +
-
🔒
-

End-to-End Encryption

- Coming Soon -

All content encrypted before it leaves your device. Not even the server can read it.

+
+ +
+

Custom Pipelines

+

Define your own workflow stages beyond To Do / In Progress / Done.

+
-
🕵
-

Zero-Knowledge Architecture

- Coming Soon -

The server processes your requests without ever seeing your data in the clear.

+
+ +
+

Notifications

+

Stay informed when tasks are assigned, updated, or completed.

+
-
🏠
-

Self-Hosted

-

Run on your own infrastructure. Your server, your rules, your data.

+
+ +
+

Acceptance Criteria

+

Define checklists for what “done” means on each task.

+
+ +
+
+ +
+

rSpace Ecosystem

+

Integrates with rVote, rMaps, rNotes, and the full r* suite.

-
-
-

(You)rWork, your flow.

-

Try the demo or create a space to get started.

-
- Start Working - Create a Space +
+
+
+
+
+
+ Join the rSpace Ecosystem +

Ready to collaborate?

+

+ Create a Space for your community and start tracking tasks together. + Invite members, configure your pipeline, and ship faster as a team. +

+ +