> ## Documentation Index
> Fetch the complete documentation index at: https://shubham-0fd31468.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Cross-Device Sync

> Keep your learning progress synchronized across all your devices seamlessly

## Overview

FlashMind's cross-device synchronization ensures your learning progress, decks, and settings are always up-to-date across all your devices. Study on your phone during commute, review on your tablet at home, and manage decks on your computer - everything stays perfectly synchronized.

## How Sync Works

### Real-Time Synchronization

FlashMind uses Convex's real-time infrastructure to provide instant synchronization:

<Steps>
  <Step title="Device Connection">
    Each device connects to FlashMind's cloud infrastructure
  </Step>

  <Step title="Change Detection">
    Any modifications are immediately detected and queued for sync
  </Step>

  <Step title="Instant Propagation">
    Changes are pushed to all connected devices in real-time
  </Step>

  <Step title="Conflict Resolution">
    Smart algorithms handle any conflicts automatically
  </Step>
</Steps>

### What Gets Synchronized

<AccordionGroup>
  <Accordion title="Learning Progress">
    * Card review history and performance
    * Spaced repetition intervals and due dates
    * Study streaks and session statistics
    * Personal ratings and difficulty adjustments
  </Accordion>

  <Accordion title="Deck Content">
    * All flashcard decks and their cards
    * Deck settings and configuration
    * Tags, categories, and organization
    * Shared deck permissions and access
  </Accordion>

  <Accordion title="User Preferences">
    * Study session settings
    * Theme and display preferences
    * Notification schedules
    * Algorithm parameter customizations
  </Accordion>

  <Accordion title="Analytics Data">
    * Performance metrics and trends
    * Study time tracking
    * Achievement progress
    * Goal completion status
  </Accordion>
</AccordionGroup>

## Supported Platforms

### Mobile Applications

<CardGroup cols={2}>
  <Card title="iOS App" icon="mobile">
    Native iPhone and iPad application with full feature parity
  </Card>

  <Card title="Android App" icon="mobile">
    Native Android application optimized for phones and tablets
  </Card>
</CardGroup>

### Desktop & Web

<CardGroup cols={2}>
  <Card title="Web Application" icon="globe">
    Full-featured web app accessible from any modern browser
  </Card>

  <Card title="Desktop App" icon="desktop">
    Native desktop applications for Windows, macOS, and Linux
  </Card>
</CardGroup>

### Device-Specific Features

<Tabs>
  <Tab title="Mobile Optimizations">
    * **Offline study mode**: Continue studying without internet
    * **Push notifications**: Reminders for due cards
    * **Voice input**: Record audio for pronunciation cards
    * **Camera integration**: Quickly create image-based cards
    * **Gesture controls**: Swipe-based card navigation
  </Tab>

  <Tab title="Desktop Features">
    * **Bulk editing**: Efficiently manage large deck collections
    * **Keyboard shortcuts**: Fast navigation and operations
    * **Multi-window support**: Study and edit simultaneously
    * **File import/export**: Advanced data management
    * **Advanced analytics**: Detailed performance reporting
  </Tab>

  <Tab title="Tablet Experience">
    * **Split-screen mode**: View multiple decks at once
    * **Stylus support**: Handwritten notes and drawings
    * **Larger display optimization**: Better readability
    * **Enhanced media**: Rich image and video support
  </Tab>
</Tabs>

## Offline Capabilities

### Offline Study Mode

Continue learning even without internet connection:

```mermaid theme={null}
graph TD
    A[Device Goes Offline] --> B[Local Cache Activated]
    B --> C[Study Session Continues]
    C --> D[Progress Stored Locally]
    D --> E[Device Back Online]
    E --> F[Automatic Sync Resume]
    F --> G[All Devices Updated]
```

### Data Caching Strategy

<AccordionGroup>
  <Accordion title="Smart Caching">
    * **Recently studied decks**: Always available offline
    * **Due cards**: Pre-cached based on schedule
    * **Frequently accessed**: Intelligently cached based on usage
    * **Manual selection**: Choose specific decks for offline access
  </Accordion>

  <Accordion title="Sync Resumption">
    * **Queue management**: Offline actions queued for sync
    * **Conflict detection**: Smart handling of conflicting changes
    * **Incremental sync**: Only changed data is synchronized
    * **Retry logic**: Automatic retry for failed sync operations
  </Accordion>
</AccordionGroup>

### Offline Indicators

Visual cues keep you informed about sync status:

<CardGroup cols={3}>
  <Card title="Online" icon="wifi">
    Green indicator - all features available
  </Card>

  <Card title="Offline" icon="wifi-off">
    Orange indicator - cached content only
  </Card>

  <Card title="Syncing" icon="refresh">
    Blue indicator - changes being synchronized
  </Card>
</CardGroup>

## Conflict Resolution

### Automatic Conflict Resolution

When the same data is modified on multiple devices, FlashMind uses intelligent conflict resolution:

<Steps>
  <Step title="Last-Write-Wins">
    For simple properties like card content, the most recent change takes precedence
  </Step>

  <Step title="Merge Strategy">
    For study progress, data is merged intelligently (e.g., combining study sessions)
  </Step>

  <Step title="User Preference">
    For settings conflicts, user is prompted to choose preferred version
  </Step>
</Steps>

### Manual Conflict Resolution

In rare cases where automatic resolution isn't possible:

<Tip>
  You'll be presented with a clear interface showing the conflicting versions and can choose which to keep or how to merge them.
</Tip>

```typescript theme={null}
interface ConflictResolution {
  card_id: "card_123";
  conflict_type: "content_mismatch";
  device_a: {
    front: "What is the capital of France?";
    back: "Paris";
    modified: "2024-01-15T10:30:00Z";
    device: "iPhone";
  };
  device_b: {
    front: "What is the capital of France?";
    back: "Paris (population: 2.16 million)";
    modified: "2024-01-15T10:32:00Z";
    device: "MacBook";
  };
  resolution_options: ["keep_a", "keep_b", "merge", "manual_edit"];
}
```

## Security and Privacy

### Data Encryption

Your learning data is protected with enterprise-grade security:

<AccordionGroup>
  <Accordion title="Encryption in Transit">
    * **TLS 1.3**: All data transmission uses latest encryption standards
    * **Certificate pinning**: Protection against man-in-the-middle attacks
    * **Perfect forward secrecy**: Session keys are regularly rotated
  </Accordion>

  <Accordion title="Encryption at Rest">
    * **AES-256**: Industry-standard encryption for stored data
    * **Key management**: Secure key storage and rotation
    * **Access controls**: Multi-layered access restrictions
  </Accordion>

  <Accordion title="Authentication Security">
    * **Multi-factor authentication**: Optional 2FA for enhanced security
    * **Session management**: Secure token handling and expiration
    * **Device authorization**: Control which devices can access your account
  </Accordion>
</AccordionGroup>

### Privacy Controls

<CardGroup cols={2}>
  <Card title="Data Ownership" icon="shield">
    You own your data and can export or delete it at any time
  </Card>

  <Card title="Sharing Controls" icon="eye">
    Granular control over what data is shared and with whom
  </Card>

  <Card title="Analytics Opt-out" icon="toggle-off">
    Choose whether to share anonymous usage analytics
  </Card>

  <Card title="GDPR Compliance" icon="balance-scale">
    Full compliance with international privacy regulations
  </Card>
</CardGroup>

## Sync Management

### Sync Settings

Control how synchronization works for your needs:

<Tabs>
  <Tab title="Automatic Sync">
    ```json theme={null}
    {
      "auto_sync": true,
      "sync_frequency": "real-time",
      "background_sync": true,
      "cellular_sync": false,
      "low_power_mode": "reduced"
    }
    ```
  </Tab>

  <Tab title="Manual Control">
    ```json theme={null}
    {
      "auto_sync": false,
      "manual_sync_available": true,
      "sync_indicators": true,
      "conflict_notifications": true,
      "sync_logs": "detailed"
    }
    ```
  </Tab>

  <Tab title="Bandwidth Optimization">
    ```json theme={null}
    {
      "compress_data": true,
      "delta_sync": true,
      "image_quality": "adaptive",
      "batch_size": "medium",
      "retry_strategy": "exponential_backoff"
    }
    ```
  </Tab>
</Tabs>

### Device Management

View and manage all connected devices:

```typescript theme={null}
interface ConnectedDevice {
  id: string;
  name: string;
  type: 'mobile' | 'desktop' | 'tablet' | 'web';
  platform: string;
  last_sync: Date;
  status: 'active' | 'offline' | 'revoked';
  location?: string;
}

// Example devices
const devices: ConnectedDevice[] = [
  {
    id: "device_1",
    name: "John's iPhone",
    type: "mobile",
    platform: "iOS 17.2",
    last_sync: new Date("2024-01-15T14:30:00Z"),
    status: "active",
    location: "New York, US"
  },
  {
    id: "device_2", 
    name: "MacBook Pro",
    type: "desktop",
    platform: "macOS 14.1",
    last_sync: new Date("2024-01-15T14:25:00Z"),
    status: "active",
    location: "New York, US"
  }
];
```

## Troubleshooting Sync Issues

### Common Issues and Solutions

<AccordionGroup>
  <Accordion title="Sync Not Working">
    **Symptoms**: Changes not appearing on other devices

    **Solutions**:

    * Check internet connection on all devices
    * Force manual sync from settings
    * Sign out and back in to refresh authentication
    * Check if sync is disabled in settings
  </Accordion>

  <Accordion title="Slow Sync Performance">
    **Symptoms**: Long delays in synchronization

    **Solutions**:

    * Switch to Wi-Fi if using cellular data
    * Close other bandwidth-intensive apps
    * Enable compression in sync settings
    * Contact support if issues persist
  </Accordion>

  <Accordion title="Duplicate Cards">
    **Symptoms**: Same cards appearing multiple times

    **Solutions**:

    * Use the duplicate detection tool in settings
    * Force a complete re-sync
    * Report the issue with specific deck details
  </Accordion>
</AccordionGroup>

### Sync Status Monitoring

Keep track of sync health with built-in monitoring:

<CardGroup cols={2}>
  <Card title="Sync Health Score" icon="heart">
    Overall sync system performance rating
  </Card>

  <Card title="Last Sync Time" icon="clock">
    When each device last synchronized successfully
  </Card>

  <Card title="Pending Changes" icon="hourglass">
    Number of changes waiting to sync
  </Card>

  <Card title="Sync History" icon="history">
    Detailed log of recent sync operations
  </Card>
</CardGroup>

<Warning>
  If you notice persistent sync issues, check the sync health dashboard and contact support with the diagnostic information.
</Warning>

## Future Enhancements

### Planned Features

* **Collaborative real-time editing**: Multiple users editing the same deck simultaneously
* **Enhanced offline intelligence**: AI-powered offline content recommendations
* **Cross-platform widgets**: Study widgets for home screens and desktops
* **Wearable integration**: Study reminders and quick reviews on smartwatches

<Note>
  Cross-device sync is fundamental to modern learning. FlashMind's robust synchronization ensures you never lose progress and can seamlessly transition between devices throughout your day.
</Note>

Ready to experience seamless cross-device learning? [Set up your account](/quickstart) and start studying across all your devices!
