Add offline-first section to rSpace landing page
New feature card in hero grid and a dedicated section explaining local IndexedDB persistence, Automerge auto-merge, and incremental sync. Matches the existing visual style with pillars and identity cards. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
6b06168f11
commit
ea8f1b3f95
|
|
@ -125,7 +125,7 @@
|
|||
|
||||
.features {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 1.5rem;
|
||||
margin-top: 4rem;
|
||||
}
|
||||
|
|
@ -329,7 +329,7 @@
|
|||
grid-template-columns: 1fr;
|
||||
}
|
||||
.features {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
.section h2 {
|
||||
font-size: 1.5rem;
|
||||
|
|
@ -380,6 +380,11 @@
|
|||
<div class="feature-title">Real-time Sync</div>
|
||||
<div class="feature-desc">Powered by Automerge CRDT</div>
|
||||
</div>
|
||||
<div class="feature">
|
||||
<div class="feature-icon">📡</div>
|
||||
<div class="feature-title">Offline-First</div>
|
||||
<div class="feature-desc">Works without internet, merges on reconnect</div>
|
||||
</div>
|
||||
<div class="feature">
|
||||
<div class="feature-icon">🌐</div>
|
||||
<div class="feature-title">Your Subdomain</div>
|
||||
|
|
@ -442,6 +447,50 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Offline-First Section -->
|
||||
<div class="section">
|
||||
<div class="section-divider"></div>
|
||||
<h2>Offline-First, Always Available</h2>
|
||||
<p class="section-subtitle">
|
||||
rSpace works without an internet connection. Edit your canvas on a plane,
|
||||
in a field, or underground — your changes merge automatically when
|
||||
you're back online. No sync buttons, no conflict dialogs.
|
||||
</p>
|
||||
|
||||
<div class="pillars">
|
||||
<div class="pillar">
|
||||
<div class="pillar-icon">💾</div>
|
||||
<div class="pillar-title">Local Persistence</div>
|
||||
<div class="pillar-desc">Your canvas is cached in the browser. Refresh the page — it loads instantly, even offline.</div>
|
||||
</div>
|
||||
<div class="pillar">
|
||||
<div class="pillar-icon">🔀</div>
|
||||
<div class="pillar-title">Auto-Merge</div>
|
||||
<div class="pillar-desc">Automerge CRDTs resolve conflicts automatically. Multiple people can edit the same canvas offline and merge without data loss.</div>
|
||||
</div>
|
||||
<div class="pillar">
|
||||
<div class="pillar-icon">⚡</div>
|
||||
<div class="pillar-title">Incremental Sync</div>
|
||||
<div class="pillar-desc">Only new changes are transferred on reconnect — not the whole document. Fast even on slow connections.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="identity-card">
|
||||
<h3>How it works</h3>
|
||||
<p>
|
||||
Every rSpace canvas is an <span class="hl">Automerge CRDT document</span> stored
|
||||
locally in your browser's IndexedDB. When you open a canvas, it renders from the
|
||||
local cache first — no waiting for the server. Edits you make are saved locally
|
||||
and synced to the server via WebSocket when a connection is available. If you go offline,
|
||||
the app keeps working: a <span class="hl">Service Worker</span> serves the app shell
|
||||
from cache, and your changes accumulate in the local CRDT document. When connectivity
|
||||
returns, Automerge's <span class="hl">incremental sync protocol</span> reconciles
|
||||
your changes with everyone else's — conflict-free, automatically. No manual
|
||||
merge, no "which version do you want to keep?" dialogs.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Interoperable Ecosystem Section -->
|
||||
<div class="section">
|
||||
<div class="section-divider"></div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue