From e9eb56aa2ea234ab310dfcc3251a2c1adfb30bed Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Mon, 9 Mar 2026 20:04:15 -0700 Subject: [PATCH] feat(rmeets): add landing page emphasizing data sovereignty Rich landing page for rspace.online/rmeets with sections on self-hosted infrastructure, data sovereignty, ecosystem integrations, and roadmap (local transcription, BYOS, data integrations). Co-Authored-By: Claude Opus 4.6 --- modules/rmeets/landing.ts | 170 ++++++++++++++++++++++++++++++++++++++ modules/rmeets/mod.ts | 2 + 2 files changed, 172 insertions(+) create mode 100644 modules/rmeets/landing.ts diff --git a/modules/rmeets/landing.ts b/modules/rmeets/landing.ts new file mode 100644 index 0000000..bcced68 --- /dev/null +++ b/modules/rmeets/landing.ts @@ -0,0 +1,170 @@ +/** + * rMeets landing page — rich content for rspace.online/rmeets + */ + +export function renderLanding(): string { + return ` + +
+ rMeets +

Your meetings, your infrastructure.

+

Self-Hosted Video Conferencing

+

+ Secure, private video meetings on infrastructure you control. + Built on Jitsi Meet — no accounts, no tracking, no data harvesting. + Just open a room and talk. +

+ +
+ + +
+
+

Why Self-Hosted Meetings?

+

Every Zoom call, every Google Meet — routed through servers you don't control, recorded by policies you didn't write.

+
+
+
🏠
+

Your Server, Your Rules

+

Video streams never leave your infrastructure. No third-party servers, no corporate surveillance, no data mining.

+
+
+
🔒
+

Data Sovereignty

+

Recordings, transcripts, and meeting data stay where you put them. Comply with your own data policies, not someone else's.

+
+
+
👥
+

No Accounts Required

+

Share a link and anyone can join. No sign-ups, no app downloads, no tracking pixels. Just video calls that work.

+
+
+
+

Fully Customizable

+

Modify the interface, add integrations, set your own branding. Open source means you can adapt every detail.

+
+
+
+
+ + +
+
+

How It Works

+
+
+
1
+

Open a Room

+

Click Quick Meet for an instant room or type a custom room name. No sign-up needed.

+
+
+
2
+

Share the Link

+

Send the room URL to anyone. They join directly in the browser — no downloads, no plugins.

+
+
+
3
+

Meet Privately

+

All video and audio routed through your own Jitsi server. Nothing touches third-party infrastructure.

+
+
+
+
+ + +
+
+

Part of a Self-Hosted Data Ecosystem

+

rMeets isn't a standalone tool — it's one node in a wider network of self-hosted services that keep your data under your control.

+
+
+
📄
+

Meeting Notes & Docs

+

Capture notes in rNotes, attach files in rFiles, link action items to rWork — all within the same space, all self-hosted.

+
+
+
📅
+

Calendar Integration

+

Schedule meetings through rCal and rSchedule. Room links auto-generated, invites sent through your own mail server.

+
+
+
💬
+

Community Spaces

+

Each rSpace gets its own meeting rooms. Team calls, community events, and working sessions — scoped to your group.

+
+
+
+
+ + +
+
+

On the Horizon

+

Features in development for the rMeets roadmap.

+
+
+
🎤
+

Local Transcription

+ Coming Soon +

On-device speech-to-text using Whisper. Transcripts generated locally — audio never sent to external APIs.

+
+
+
🖥
+

Bring Your Own Server

+ Coming Soon +

Point rMeets at any Jitsi instance. Run your own hardware, choose your jurisdiction, scale on your terms.

+
+
+
🔌
+

Data Integrations

+ Coming Soon +

Auto-link recordings to documents, push summaries to rNotes, and sync action items to rWork task boards.

+
+
+
+
+ + +
+
+

Built on Open Source

+

Standing on the shoulders of battle-tested open-source infrastructure.

+
+
+
📹
+

Jitsi Meet

+

Industry-leading open-source video conferencing. WebRTC-based, end-to-end encrypted, and trusted by millions.

+
+
+
🔥
+

Hono

+

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

+
+
+
🛡
+

Traefik

+

Automatic TLS, reverse proxy, and load balancing. Every self-hosted service gets secure routing out of the box.

+
+
+
+
+ + +
+
+

Your meetings belong to you.

+

Start a call on infrastructure you control, or create a space for your community.

+ +
+
+ + `; +} diff --git a/modules/rmeets/mod.ts b/modules/rmeets/mod.ts index 4484928..c890bb5 100644 --- a/modules/rmeets/mod.ts +++ b/modules/rmeets/mod.ts @@ -9,6 +9,7 @@ import { Hono } from "hono"; import { renderShell, renderExternalAppShell, escapeHtml } from "../../server/shell"; import { getModuleInfoList } from "../../shared/module"; import type { RSpaceModule } from "../../shared/module"; +import { renderLanding } from "./landing"; const JITSI_URL = process.env.JITSI_URL || "https://jeffsi.localvibe.live"; const routes = new Hono(); @@ -112,5 +113,6 @@ export const meetsModule: RSpaceModule = { description: "Video meetings powered by Jitsi", scoping: { defaultScope: "space", userConfigurable: false }, routes, + landingPage: renderLanding, externalApp: { url: JITSI_URL, name: "Jitsi Meet" }, };