/**
* 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)}` : ""}
One platform. Every tool your community needs. All talking to each other.
Data flows between apps automatically — no import/export rituals. Local-first, encrypted, and yours.
rApps talk to each other through one shared sync layer. Here’s what that looks like.
Schedule a meeting, auto-generates a task, notifies your space.
Vote passes, budget allocation releases automatically.
Pin a community location, shared doc created for that place.
Log commitments, analytics update in real-time.
Each app is independent and composable. Use one, use all, mix and match.
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.
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.
No algorithms deciding what you see. No ads. No data harvesting. Just tools that work for you, run by you, owned by you.
Your space. Your community. Your rules.
${escapeHtml(m.description)}
${subtitle}