rspace-online/modules/revents/landing.ts

90 lines
3.8 KiB
TypeScript

/**
* rEvents landing page — event aggregation & discovery.
*/
export function renderLanding(): string {
return `
<!-- Hero -->
<div class="rl-hero">
<span class="rl-tagline" style="color:#a78bfa;background:rgba(167,139,250,0.1);border-color:rgba(167,139,250,0.2)">
Event Aggregator
</span>
<h1 class="rl-heading" style="background:linear-gradient(to right,#a78bfa,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text">
All your events. One place.
</h1>
<p class="rl-subtitle">
Aggregate events from Luma, Meetup, iCal feeds, and more into a unified stream for your community.
</p>
<p class="rl-subtext">
rEvents is the <span style="color:#a78bfa;font-weight:600">event ingestion layer</span> for the rStack.
Connect external event platforms, parse unstructured text into structured events,
and keep your community's calendar in sync &mdash; automatically.
</p>
<div class="rl-cta-row">
<a href="https://demo.rspace.online/revents" class="rl-cta-primary" id="ml-primary"
style="background:linear-gradient(to right,#a78bfa,#ec4899);color:#0b1120">
Try the Demo
</a>
<a href="#features" class="rl-cta-secondary">Learn More</a>
</div>
</div>
<!-- Features (3-card grid) -->
<section class="rl-section" style="border-top:none" id="features">
<div class="rl-container">
<div class="rl-grid-3">
<div class="rl-card rl-card--center" style="padding:2rem">
<div class="rl-icon-box" style="background:rgba(167,139,250,0.12);font-size:1.5rem">
<span style="font-size:1.5rem">&#128279;</span>
</div>
<h3>Aggregate</h3>
<p>Pull events from Luma, Meetup, iCal feeds, and RSS into one unified stream. Sync on demand or on a schedule.</p>
</div>
<div class="rl-card rl-card--center" style="padding:2rem">
<div class="rl-icon-box" style="background:rgba(236,72,153,0.12);font-size:1.5rem">
<span style="font-size:1.5rem">&#10024;</span>
</div>
<h3>Parse</h3>
<p>Paste unstructured text &mdash; emails, messages, flyers &mdash; and extract structured event data with dates, locations, and more.</p>
</div>
<div class="rl-card rl-card--center" style="padding:2rem">
<div class="rl-icon-box" style="background:rgba(96,165,250,0.12);font-size:1.5rem">
<span style="font-size:1.5rem">&#128197;</span>
</div>
<h3>Connect</h3>
<p>Push events to rCal, surface them in rInbox, coordinate across the entire rStack ecosystem seamlessly.</p>
</div>
</div>
</div>
</section>
<!-- Supported Sources -->
<section class="rl-section">
<div class="rl-container">
<h2 class="rl-section-title" style="text-align:center;margin-bottom:2rem">Supported Sources</h2>
<div class="rl-grid-4">
<div class="rl-card rl-card--center" style="padding:1.5rem">
<div style="font-size:2rem;margin-bottom:0.5rem">&#127876;</div>
<h3 style="font-size:1rem">Luma</h3>
<p style="font-size:0.8rem">lu.ma calendar events</p>
</div>
<div class="rl-card rl-card--center" style="padding:1.5rem">
<div style="font-size:2rem;margin-bottom:0.5rem">&#127941;</div>
<h3 style="font-size:1rem">Meetup</h3>
<p style="font-size:0.8rem">Meetup.com groups</p>
</div>
<div class="rl-card rl-card--center" style="padding:1.5rem">
<div style="font-size:2rem;margin-bottom:0.5rem">&#128197;</div>
<h3 style="font-size:1rem">iCal / ICS</h3>
<p style="font-size:0.8rem">Any .ics feed URL</p>
</div>
<div class="rl-card rl-card--center" style="padding:1.5rem">
<div style="font-size:2rem;margin-bottom:0.5rem">&#9997;</div>
<h3 style="font-size:1rem">Manual / Text</h3>
<p style="font-size:0.8rem">Paste &amp; parse anything</p>
</div>
</div>
</div>
</section>
`;
}