Stray Cloud
Real-Time Stray Cloud Sync
Strayfiles Pro provides Stray Cloud with end-to-end encryption and real-time updates across all your devices.
How It Works
Strayfiles uses WebSocket connections for instant sync:
Device A saves note
↓
Content encrypted locally
↓
Encrypted data sent to Stray Cloud
↓
Stray Cloud broadcasts to connected devices
↓
Device B receives update instantly
↓
Content decrypted locally
↓
Note updated in real-time
Connection States
Your sync status shows one of these states:
| State | Meaning |
|---|---|
| Connected | Real-time sync active |
| Disconnected | No connection (changes queued) |
| Reconnecting | Attempting to restore connection |
| Error | Connection failed |
Auto-Reconnect
If your connection drops:
- Strayfiles detects disconnection
- Automatic reconnection attempts begin
- Exponential backoff (1s, 2s, 4s, … up to 5 min)
- Queued changes sync when reconnected
- Maximum 10 reconnection attempts
Rate Limiting & Retry Behavior
Strayfiles implements intelligent rate limiting and retry logic:
API Rate Limits:
- Supabase enforces standard API rate limits
- Most users won’t hit these limits during normal use
- Rate limits protect the service from abuse
Automatic Retry Strategy:
When you receive a rate limit response (HTTP 429):
- First retry: Wait 1 second
- Second retry: Wait 2 seconds
- Third retry: Wait 4 seconds
- Continue doubling wait time up to 32 seconds max
- Give up after 5 attempts
What this means for you:
- Brief rate limits are handled automatically
- You’ll see “Syncing…” status during retries
- Persistent rate limit errors appear as sync failures
- Local changes are never lost - they queue for next sync
What Syncs
The sync system covers all your data:
| Data Type | Real-Time |
|---|---|
| Notes | Yes |
| Directories | Yes |
| Version history | Yes |
| Tags | Yes |
| Workspaces | Yes |
| Device mappings | Yes |
| Conflicts | Yes |
| Team data | Yes |
Sync Events
Strayfiles reacts to these real-time events:
- Note created/updated/deleted: Instant sync
- Directory changes: Structure updates
- Tag/workspace changes: Organization synced
- Conflict detected: Resolution prompt
- Team updates: Collaboration changes
Offline Support
When offline:
- Continue editing normally
- Changes saved locally
- Sync resumes when online
- Conflicts resolved if needed
Bandwidth Usage
Stray Cloud is efficient:
- Only changed content transmitted
- Compression applied
- Incremental updates (not full re-sync)
- Heartbeat every 20 seconds (minimal)
Security
All Stray Cloud communication is encrypted:
- TLS for transport security
- E2E encryption for content (see Encryption)
- Server never sees plaintext
- Zero-knowledge architecture
Enabling Stray Cloud
- Subscribe to Pro
- Sign in to your account
- Create encryption password
- Sync starts automatically
Sync Status Indicator
The status bar shows:
● Connected (synced 2s ago)
○ Disconnected (5 changes pending)
◌ Reconnecting (attempt 3/10)
✗ Error: Connection failed
Troubleshooting
“Sync not working”:
- Check internet connection
- Verify Pro subscription active
- Try signing out and back in
“Changes not appearing on other device”:
- Check both devices are online
- Look for unresolved conflicts
- Verify encryption password matches
“Reconnecting endlessly”:
- Check firewall settings
- Verify WebSocket connections allowed
- Try different network
Comparison with Folder Sync
| Feature | Stray Cloud | Folder Sync (iCloud/Dropbox) |
|---|---|---|
| Speed | Real-time | Provider-dependent |
| Encryption | E2E encrypted | Provider encryption |
| Conflicts | Built-in resolution | Provider handling |
| Offline | Full support | Full support |
| Cost | $10/month | Provider cost |
Technical Details
- Protocol: Phoenix Channels over WebSocket
- Heartbeat: 20-second interval
- Reconnect: Exponential backoff, max 5 minutes
- Message size: 1 MB limit
- Timeout: 30-second connection timeout