Back to docs
pro

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:

StateMeaning
ConnectedReal-time sync active
DisconnectedNo connection (changes queued)
ReconnectingAttempting to restore connection
ErrorConnection failed

Auto-Reconnect

If your connection drops:

  1. Strayfiles detects disconnection
  2. Automatic reconnection attempts begin
  3. Exponential backoff (1s, 2s, 4s, … up to 5 min)
  4. Queued changes sync when reconnected
  5. 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):

  1. First retry: Wait 1 second
  2. Second retry: Wait 2 seconds
  3. Third retry: Wait 4 seconds
  4. Continue doubling wait time up to 32 seconds max
  5. 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 TypeReal-Time
NotesYes
DirectoriesYes
Version historyYes
TagsYes
WorkspacesYes
Device mappingsYes
ConflictsYes
Team dataYes

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:

  1. Continue editing normally
  2. Changes saved locally
  3. Sync resumes when online
  4. 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

  1. Subscribe to Pro
  2. Sign in to your account
  3. Create encryption password
  4. 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

FeatureStray CloudFolder Sync (iCloud/Dropbox)
SpeedReal-timeProvider-dependent
EncryptionE2E encryptedProvider encryption
ConflictsBuilt-in resolutionProvider handling
OfflineFull supportFull support
Cost$10/monthProvider 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