90 lines
3.8 KiB
TypeScript
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 — 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">🔗</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">✨</span>
|
|
</div>
|
|
<h3>Parse</h3>
|
|
<p>Paste unstructured text — emails, messages, flyers — 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">📅</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">🎄</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">🏅</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">📅</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">✍</div>
|
|
<h3 style="font-size:1rem">Manual / Text</h3>
|
|
<p style="font-size:0.8rem">Paste & parse anything</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
`;
|
|
}
|