Merge branch 'dev'
This commit is contained in:
commit
ad5cfe4385
|
|
@ -14,6 +14,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Upload, share, and read PDFs together. A beautiful flipbook reader,
|
||||
searchable catalog, and community contributions — all self-hosted.
|
||||
(You)rBooks, your library.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="${demo}" class="rl-cta-primary" id="ml-primary">Start Your Library</a>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
A spatiotemporal calendar that couples where and when, supports natural cycles,
|
||||
and zooms from 30-second moments to geological epochs.
|
||||
(You)rCal, your rhythm.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rcal" class="rl-cta-primary" id="ml-primary">Try the Demo</a>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
A shared shopping cart for communities. Pool orders, unlock bulk pricing,
|
||||
and fulfill locally through the cosmolocal provider network.
|
||||
(You)rCart, your market.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rcart" class="rl-cta-primary" id="ml-primary">Browse the Shop</a>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export function renderLanding(): string {
|
|||
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.
|
||||
(You)rChoices, your voice.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="${demo}" class="rl-cta-primary" id="ml-primary">Make Better Decisions</a>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export function renderLanding(): string {
|
|||
See how your community engages without tracking individuals.
|
||||
No cookies, no consent banners, no third-party data — just
|
||||
clean, real-time metrics from your own server.
|
||||
(You)rData, your signal.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="${demo}" class="rl-cta-primary" id="ml-primary">View Analytics</a>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Upload, organize, and share with public links and memory cards.
|
||||
Built for communities who want control over their shared files.
|
||||
(You)rFiles, your way.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rfiles" class="rl-cta-primary" id="ml-primary">Start Sharing</a>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Automated cloud provisioning for self-hosted Discourse.
|
||||
No DevOps required. Choose your region, configure your settings, and go live.
|
||||
(You)rForum, your community.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rforum" class="rl-cta-primary" id="ml-primary"
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Budget flows, river visualization, and conviction funding.
|
||||
Watch resources move through your community in real time.
|
||||
(You)rFunds, your flow.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rfunds" class="rl-cta-primary" id="ml-primary">See Your Funds Flow</a>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
A shared email client where teams read, discuss, and approve messages
|
||||
together — with cryptographic multi-signature workflows before anything gets sent.
|
||||
(You)rInbox, your team's voice.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rinbox" class="rl-cta-primary" id="ml-primary"
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Share live locations, navigate indoor and outdoor spaces, coordinate meetups
|
||||
— all from the browser. No app install. No tracking. No data collection.
|
||||
(You)rMaps, your world to explore.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rmaps" class="rl-cta-primary" id="ml-primary"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,117 @@
|
|||
/**
|
||||
* rNetwork — rich landing page body.
|
||||
* Returned by landingPage() in the module export;
|
||||
* the shell wraps it with header, CSS, and analytics.
|
||||
*/
|
||||
export function renderLanding(): string {
|
||||
const demo = "https://demo.rspace.online/rnetwork";
|
||||
|
||||
return `
|
||||
<!-- Hero -->
|
||||
<section class="rl-hero">
|
||||
<span class="rl-tagline">rNetwork</span>
|
||||
<h1 class="rl-heading">See the web of trust</h1>
|
||||
<p class="rl-subtext">
|
||||
Map the relationships that matter. (You)rNetwork makes the invisible
|
||||
connections visible — people, companies, and opportunities rendered
|
||||
as a living, interactive graph.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="${demo}" class="rl-cta-primary" id="ml-primary">Explore Your Network</a>
|
||||
<a href="/create-space" class="rl-cta-secondary">Create a Space</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- How It Works -->
|
||||
<section class="rl-section">
|
||||
<div class="rl-container">
|
||||
<h2 class="rl-heading" style="text-align:center">How It Works</h2>
|
||||
<div class="rl-grid-3">
|
||||
<div class="rl-step">
|
||||
<div class="rl-step__num">1</div>
|
||||
<h3>Connect CRM Data</h3>
|
||||
<p>Link your Twenty CRM instance via GraphQL. People, companies, and opportunities sync automatically.</p>
|
||||
</div>
|
||||
<div class="rl-step">
|
||||
<div class="rl-step__num">2</div>
|
||||
<h3>Visualize the Graph</h3>
|
||||
<p>Entities become nodes and relationships become edges in a force-directed layout you can explore in real time.</p>
|
||||
</div>
|
||||
<div class="rl-step">
|
||||
<div class="rl-step__num">3</div>
|
||||
<h3>Explore Relationships</h3>
|
||||
<p>Click, drag, and zoom to discover hidden connections. Filter by entity type, search by name, and trace paths of trust.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Features -->
|
||||
<section class="rl-section rl-section--alt">
|
||||
<div class="rl-container">
|
||||
<h2 class="rl-heading" style="text-align:center">Features</h2>
|
||||
<div class="rl-grid-4">
|
||||
<div class="rl-card rl-card--center">
|
||||
<div class="rl-icon-box">🛰</div>
|
||||
<h3>Force-Directed Layout</h3>
|
||||
<p>Interactive graph with physics simulation. Nodes attract and repel naturally, revealing organic clusters.</p>
|
||||
</div>
|
||||
<div class="rl-card rl-card--center">
|
||||
<div class="rl-icon-box">🔄</div>
|
||||
<h3>CRM Sync</h3>
|
||||
<p>Twenty CRM integration via GraphQL. People, companies, and opportunities stay up to date automatically.</p>
|
||||
</div>
|
||||
<div class="rl-card rl-card--center">
|
||||
<div class="rl-icon-box">🧸</div>
|
||||
<h3>Entity Types</h3>
|
||||
<p>People, companies, and opportunities rendered as distinct nodes. Visual encoding makes each type instantly recognizable.</p>
|
||||
</div>
|
||||
<div class="rl-card rl-card--center">
|
||||
<div class="rl-icon-box">🔗</div>
|
||||
<h3>Trust Feeds</h3>
|
||||
<p>Relationship data flows to other rSpace modules. The trust graph powers governance, funding, and collaboration views.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Use Cases -->
|
||||
<section class="rl-section">
|
||||
<div class="rl-container">
|
||||
<h2 class="rl-heading" style="text-align:center">Use Cases</h2>
|
||||
<div class="rl-grid-3">
|
||||
<div class="rl-card rl-card--center">
|
||||
<div class="rl-icon-box">🌐</div>
|
||||
<h3>Community Mapping</h3>
|
||||
<p>See who knows whom across your ecosystem. Identify bridges, hubs, and isolated clusters at a glance.</p>
|
||||
</div>
|
||||
<div class="rl-card rl-card--center">
|
||||
<div class="rl-icon-box">📈</div>
|
||||
<h3>Stakeholder Analysis</h3>
|
||||
<p>Trace influence paths between people and organizations. Understand power dynamics before critical decisions.</p>
|
||||
</div>
|
||||
<div class="rl-card rl-card--center">
|
||||
<div class="rl-icon-box">🎯</div>
|
||||
<h3>Opportunity Tracking</h3>
|
||||
<p>Visualize pipeline deals alongside the people and companies involved. Spot warm introductions and shared connections.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- CTA -->
|
||||
<section class="rl-section rl-section--alt">
|
||||
<div class="rl-container" style="text-align:center">
|
||||
<h2 class="rl-heading">Your Community, Connected</h2>
|
||||
<p class="rl-subtext">
|
||||
Stop guessing who knows whom. Start seeing the relationships that shape your community.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="${demo}" class="rl-cta-primary">Explore Your Network</a>
|
||||
<a href="/create-space" class="rl-cta-secondary">Create a Space</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="rl-back"><a href="/">← Back to rSpace</a></div>`;
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ import { Hono } from "hono";
|
|||
import { renderShell } from "../../server/shell";
|
||||
import { getModuleInfoList } from "../../shared/module";
|
||||
import type { RSpaceModule } from "../../shared/module";
|
||||
import { renderLanding } from "./landing";
|
||||
|
||||
const routes = new Hono();
|
||||
|
||||
|
|
@ -234,6 +235,7 @@ export const networkModule: RSpaceModule = {
|
|||
icon: "\u{1F310}",
|
||||
description: "Community relationship graph visualization with CRM sync",
|
||||
routes,
|
||||
landingPage: renderLanding,
|
||||
standaloneDomain: "rnetwork.online",
|
||||
feeds: [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Notes, clips, voice recordings, and live transcription — all in one place.
|
||||
Speak and watch your words appear in real time, or drop in audio and video files to transcribe offline.
|
||||
(You)rNotes, your thoughts unbound.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rnotes" class="rl-cta-primary" id="ml-primary"
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Share memories with your community, powered by Immich.
|
||||
Self-hosted, AI-organized, and privacy-first.
|
||||
(You)rPhotos, your moments.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rphotos" class="rl-cta-primary" id="ml-primary">Browse Gallery</a>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
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.
|
||||
(You)rPubs, your press.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rpubs" class="rl-cta-primary" id="ml-primary">Try the Press</a>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export function renderLanding(): string {
|
|||
Schedule, publish, and analyze across every major platform — all
|
||||
from your self-hosted rSpace instance. No per-seat pricing, no
|
||||
third-party data mining.
|
||||
(You)rSocials, your narrative.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="${demo}" class="rl-cta-primary" id="ml-primary">Try Demo</a>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
View, share, and gate 3D scenes captured with Gaussian splatting.
|
||||
Three.js-powered viewing with optional x402 micropayment gating.
|
||||
(You)rSplat, your dimension.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rsplat" class="rl-cta-primary" id="ml-primary">Explore Splats</a>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Stickers, posters, and tees from your browser.
|
||||
Upload a design, pick a product, and get print-ready files instantly.
|
||||
(You)rSwag, your brand.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rswag" class="rl-cta-primary" id="ml-primary">Start Designing</a>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ export function renderLanding(): string {
|
|||
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.
|
||||
(You)rTrips, your horizon.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rtrips" class="rl-cta-primary" id="ml-primary">Try Demo</a>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Host, stream, and share video without big tech.
|
||||
Your community's video library with HLS streaming and RTMP ingest.
|
||||
(You)rTube, your channel.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rtube" class="rl-cta-primary" id="ml-primary">Start Streaming</a>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Quadratic conviction voting with time-decay. Surface the ideas your community actually cares about —
|
||||
not just the loudest voices.
|
||||
(You)rVote, your voice.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rvote" class="rl-cta-primary" id="ml-primary">Try the Demo</a>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export function renderLanding(): string {
|
|||
Visualize your Safe multisig across every chain — balances,
|
||||
transactions, and governance — all in one client-side dashboard.
|
||||
No backend database, no custody risk.
|
||||
(You)rWallet, your treasury laid bare.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="${demo}" class="rl-cta-primary" id="ml-primary">View Your Treasury</a>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ export function renderLanding(): string {
|
|||
<p class="rl-subtext">
|
||||
Kanban boards, team spaces, and real-time collaboration — built for groups
|
||||
that share work, not just assign it.
|
||||
(You)rWork, your flow.
|
||||
</p>
|
||||
<div class="rl-cta-row">
|
||||
<a href="https://demo.rspace.online/rwork" class="rl-cta-primary" id="ml-primary">Try the Demo</a>
|
||||
|
|
|
|||
|
|
@ -468,10 +468,12 @@ export function renderModuleLanding(opts: ModuleLandingOptions): string {
|
|||
<header class="rstack-header" data-theme="${theme}">
|
||||
<div class="rstack-header__left">
|
||||
<rstack-app-switcher current="${escapeAttr(mod.id)}"></rstack-app-switcher>
|
||||
</div>
|
||||
<div class="rstack-header__center"></div>
|
||||
<div class="rstack-header__right">
|
||||
<a class="rstack-header__demo-btn" href="${demoUrl}">Try Demo</a>
|
||||
</div>
|
||||
<div class="rstack-header__center">
|
||||
<rstack-mi></rstack-mi>
|
||||
</div>
|
||||
<div class="rstack-header__right">
|
||||
<rstack-identity></rstack-identity>
|
||||
</div>
|
||||
</header>
|
||||
|
|
|
|||
Loading…
Reference in New Issue