# Managing Your Data

Your data in Super Productivity is everything the app stores to represent your work: tasks (active and archived), projects, tags, time tracking, metrics, notes, reminders, configuration, and more. The app is **local-first**: data lives on your device (or in your browser), and you control how it is backed up, exported, imported, and synced. Understanding what “your data” includes, how import and export work, how backups are created, and how sync and conflicts are handled helps you keep your data safe and move it between devices or recover from problems.

For where data is stored, where backups go by platform, and technical details of backup/import/export/sync, see [[3.06-User-Data]]. For how to restore from a backup file, see [[2.02-Restore-Data-From-Backup]].

## What Your Data Includes

Your data is a **complete snapshot** of the application state. It includes:

- **Tasks** — Active tasks and archived tasks (recent and old archive), with all attributes and time-tracking data.
- **Projects and tags** — All projects, tags, and their settings.
- **Time tracking** — Time spent per task per day, break time, and related state.
- **Configuration** — Global settings, reminders, focus mode and break-reminder options, and similar.
- **Notes** — Task notes and project notes.
- **Metrics** — Daily metrics, reflections, impact and energy ratings, focus sessions.
- **Other** — Simple counters, planner and board state, task repeat configurations, issue-provider settings, plugin data, and archives (young and old).

Nothing is omitted from a **full** backup or export: when you export or when the app creates an automatic backup, it includes all of the above (and when archives are included, both recent and old archive tiers). So “your data” is everything the app uses to restore your workspace on another device or after a reinstall.

## Import: Bringing Data In

**Import** replaces your current app data with the data from a backup or export file. The app supports **full backup format**: a single JSON structure that contains (or wraps) the complete application state. Older legacy formats are detected but no longer migrated; you see a message that migration is not supported.

**Validation and repair:** Before applying an import, the app **validates** the data (structure and relationships, e.g. tasks referencing existing projects and tags). If validation fails, it may still **repair** the data automatically when possible—for example fixing orphaned tasks, missing project or tag references, or inconsistent lists—so you end up with a consistent state instead of a failed import. If repair is not possible, the import is aborted and you get an error.

**Encryption:** If the backup was encrypted and your app is not (or the opposite), the app warns you before importing and asks you to confirm, because importing would change whether data is encrypted.

**Effect of import:** Import **replaces** current state. The app persists the imported data (including writing archive data to storage) and treats it as the new source of truth. Your previous state is no longer active; restore it only by importing an older backup if you have one.

## Export: Taking a Snapshot

**Export** produces a **snapshot** of your data at the time you export. It is not a “live” view: whatever is in the app at that moment (including archives if you choose to include them) is serialized into one JSON file. You can use that file as a backup, move it to another device, or archive it. Relationships (e.g. task → project, task → tags, subtask → parent) are preserved by **ID references** in the JSON; the validation and repair logic used on import ensures those references stay consistent when the file is later imported.

So export = “save everything as it is right now”; import = “load everything from this file and replace current data.”

## Backups: Automatic and Manual

**Automatic backups** — When enabled in settings, the app creates a backup on a schedule (e.g. every 5 minutes). Where it is stored depends on the platform: on **desktop (Electron)**, backups are JSON files in the User Data Folder (e.g. a `backups/` directory, one file per day). On **Android** and **iOS**, backups are stored in platform-appropriate storage (e.g. IndexedDB or a dedicated file). On the **web**, there is no automatic file-based backup; you use “Export data” to download a file. See [[3.06-User-Data]] for exact locations and behavior per platform.

**Manual backups** — You can trigger a backup by: (1) using **“Create manual backup”** in settings, (2) relying on **safety backups** the app creates before certain sync operations (the app keeps a limited number of recent and daily slots), or (3) using **“Export data”** to download a backup file. Exported files can be imported later via Settings → Import/Export (see [[2.02-Restore-Data-From-Backup]]).

**What is included:** Backups and exports include **all** application data; nothing is excluded. When archives are included, both recent and old archive tiers are part of the backup so you can restore full history.

## Sync: Local-First and Conflict Resolution

The app uses **local-first, operation-based sync**: your device is the primary copy; sync sends **changes** (operations) to the remote side (or a single sync file) rather than uploading the entire dataset every time. That keeps sync fast and bandwidth low. Multiple **sync providers** are supported (e.g. SuperSync server (beta), WebDAV, Dropbox, local file); file-based providers typically use a single sync file that contains a state snapshot plus recent operations.

**Conflicts** — When the same data is changed in two places (e.g. on two devices) before they sync, the app detects a conflict. It resolves most conflicts automatically using **last-write-wins**: the change with the **newer timestamp** is kept; if timestamps tie, the **remote** (server) side wins. When your local change wins, the app creates a new operation so your version is sent to the remote. In some cases (e.g. first sync when both local and remote already have data), the app may ask you to choose **use local** or **use remote** instead of applying automatic resolution. After resolution, the app validates and can repair state so references (e.g. tasks to projects) stay consistent.

So in practice: **newer wins**; you only choose when the app prompts you (e.g. first-sync).

## Summary

- **Your data** = full app state (tasks, projects, tags, time, config, notes, metrics, archives, etc.); backups and exports include everything.
- **Import** = replace current data with a backup file; data is validated and repaired when possible; encryption change is warned.
- **Export** = snapshot at export time; relationships preserved by IDs; use for backup or transfer.
- **Backups** = automatic (when enabled, platform-dependent location) and manual (manual button, safety backups, export); no data excluded.
- **Sync** = local-first, operation-based; conflicts resolved by newer-wins (or your choice when prompted).

## Related

- [[3.06-User-Data]] — Where data and backups are stored, backup behavior by platform, import/export and sync reference
- [[2.02-Restore-Data-From-Backup]] — How to restore from a backup file
- [[4.20-Task-Archiving]] — How archived tasks and time are stored (part of your data)
- [[4.24-Integrations]] — Issue and sync providers overview
- [[3.08-Sync-Integration-Comparison]] — Sync provider comparison (WebDAV, Dropbox, SuperSync, local file)
