/**
* Main landing page for rspace.online/
*
* Server-rendered using the same shell (header, CSS, theme) as all module
* landing pages. Content is ported from the old static Next.js export and
* adapted to use the shared rl-* utility classes.
*/
import type { ModuleInfo } from "../shared/module";
import { escapeHtml, escapeAttr, MODULE_LANDING_CSS, RICH_LANDING_CSS, versionAssetUrls, getSpaceShellMeta } from "./shell";
export function renderMainLanding(modules: ModuleInfo[]): string {
const moduleListJSON = JSON.stringify(modules);
const demoUrl = "https://demo.rspace.online/rspace";
// Build the ecosystem grid dynamically from registered modules
const ecosystemCards = modules
.map(
(m) => `
${escapeHtml(m.description)}${escapeHtml(m.name)}
${m.standaloneDomain ? `${escapeHtml(m.standaloneDomain)}` : ""}
Remember back when the internet was cool?
We may not have MySpace anymore, but we have (you)rSpace.
Build digital spaces to collaborate on improving your physical world. Local-first, zero-knowledge privacy, outside the walls of big tech.
Each tool works on its own, and they all work together.
Budget rivers, revenue splits, and enoughness thresholds. Transparent finances with quadratic funding built in.
Real-time chat, threaded discussions, and async forums. All synced across devices with CRDT magic.
Upload, organize, and share with memory cards. Public links, folder trees, and metadata that travels with content.
One passwordless login for the entire ecosystem. EncryptID uses WebAuthn — no passwords to leak, no accounts to hack.
Community analytics, voting results, spatial canvases. See everything at a glance and drill into what matters.
Your data lives on your device first. End-to-end encrypted sync, per-document keys, zero-knowledge architecture.
Secure by default, not by opt-in.
Sign in once with your fingerprint or device PIN. Your passkey works across every rApp — no passwords, no email loops, no third-party auth providers watching over your shoulder.
Touch. Tap. Done.
Your data lives on your device. Changes sync when you’re online, merge automatically when you’re not.
Every document is stored in encrypted IndexedDB on your device. Works without internet.
Automerge CRDTs resolve conflicts automatically. No “someone else is editing” lockouts.
Only changed bytes travel over the wire. Reconnect after days offline and catch up in seconds.
Under the hood: Automerge CRDTs model every document as a mergeable data structure. IndexedDB persists the full state locally so you never lose work. A Service Worker caches the app shell for instant loads — even without a network connection.
Every rApp reads and writes to the same sync layer. No import/export rituals — data flows between tools automatically.
rDocs rCal rTasks rMaps rWallet ...
| | | | |
v v v v v
+--------------------------------------+
| Automerge Sync Layer |
| (encrypted, per-document keys) |
+--------------------------------------+
| | | | |
v v v v v
Your Your Your Your Your
Device Phone Laptop Server Backup
No algorithms deciding what you see. No ads. No data harvesting. Just tools that work for you, run by you, owned by you.
rSpace is infrastructure for communities who refuse to rent their digital commons from landlords who read the mail, count the footsteps, and sell the maps.
Your space. Your community. Your rules.
Each app is independent and composable. Use one, use all, mix and match.
${escapeHtml(m.description)}
${subtitle}