5 4.23 Managing Your Data
github-actions[bot] edited this page 2026-07-11 15:49:13 +00:00

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 timestamped JSON files in the User Data Folder (e.g. a backups/ directory) with automatic cleanup of older files; the desktop Maximum backup files setting controls how many automatic backup files are kept. 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.

Disjoint-field auto-merge — When two devices edited the SAME task (or project/tag/note) but touched DIFFERENT fields — e.g. you renamed a task on one device and edited its notes on the other — the app keeps both edits instead of discarding one: it merges the two changes into a single update. This only happens when it is unambiguously safe (different real fields, no deletion or archiving involved); anything else falls back to last-write-wins.

Reviewing what was auto-resolved — Every automatic conflict resolution is recorded in a device-local conflict journal you can inspect on the Sync Conflicts page (/sync-conflicts, also linked from Settings → Sync). When a resolution discarded a genuine edit, the app shows a dismissible banner after sync (content edits like a changed title or notes are still called out by task name, as before) and a badge with the number of entries awaiting review. For each entry you can see which side won, which fields differed and both values, and then either Keep (confirm the automatic resolution) or Flip (re-apply the discarded change as a new edit that syncs to all devices — nothing is rewound). Flip is disabled where re-applying isn't safely possible (e.g. overridden deletions or structural moves); such entries remain visible for review. The journal is informational only: it lives on the device, is never uploaded by sync, is not part of backups/exports, is cleared whenever you import a backup or switch user profiles, and old entries are pruned automatically (after 14 days or beyond the newest 200).

So in practice: newer wins (both kept when fields don't overlap); you only choose when the app prompts you (e.g. first-sync), and you can always review or flip automatic resolutions afterwards on the Sync Conflicts page.

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, non-overlapping field edits auto-merged; every auto-resolution reviewable (Keep/Flip) on the Sync Conflicts page.