Cloud Sync (PowerSync)

TensorPM is offline-first by design. If you want to use the same projects across multiple devices, you can optionally enable Cloud Sync.

Offline-first + sidecar architecture

TensorPM always stores your data locally first.

When Cloud Sync is enabled, we use a sidecar database approach:

  • Main database (SQLite): your primary, local source of truth (works fully offline)
  • PowerSync sidecar (separate SQLite DB): managed by the PowerSync SDK to track changes and exchange updates with the server

This keeps the app responsive and usable offline, while Cloud Sync runs in the background when you’re online.

Who can use Cloud Sync?

  • Cloud and Pro accounts (active subscription or trial)
  • Opt-in: you decide whether to enable Cloud Sync

If you are on the free tier, you can still access Cloud Sync inside shared workspaces if a workspace owner grants you access via a Team Seat.

When Cloud Sync is enabled, the app shows a sync status indicator (for example “Live”) so you can see whether the workspace is connected and up to date.

Important: sync is only active when all of these are true:

  • You are in a cloud workspace (not a local workspace)
  • You are logged in
  • Your account has Cloud or Pro features — or you have access via a Team Seat in a shared workspace

Shared workspaces (multi-user)

Cloud Sync also enables shared workspaces so multiple users can collaborate on the same workspace.

  • Members are invited by email.
  • Roles: Owner, Admin, Member.
  • Workspace membership and roles are managed by the workspace owner/admin.

Team Seats (for inviting free users)

Shared workspaces can include users who do not have their own paid subscription:

  • The workspace owner can purchase Team Seats (optional add-on).
  • When a free user accepts a workspace invitation, they consume one seat from the owner’s seat pool.
  • Seats can be released again if a team member no longer needs access.

Local vs cloud workspaces

  • Local workspaces stay on your device and never upload data.
  • Cloud workspaces sync in the background and can be used across devices.

If you mainly want multi-device support, keep one cloud workspace for active projects and local workspaces for experiments or private drafts.

What gets synced?

Cloud Sync is designed to keep your core project work consistent across devices. Depending on what you use in the app, this can include:

  • Workspaces (cloud-enabled)
  • Projects
  • Action items / tasks
  • Dependencies
  • Budgets and effort tracking
  • Timers / time tracking
  • Attached files (note: attachments are user-private by design)

What does not get synced?

  • Local workspaces (local-only workspaces are excluded from Cloud Sync)
  • Certain technical/internal tables and credentials

Conflict handling

When changes happen on multiple devices, TensorPM uses Last-Write-Wins conflict resolution.

This is “near real-time sync”, not Google-Docs-style co-editing:

  • There is no automatic merge of simultaneous edits to the same field
  • If two users change the same item around the same time, the later update wins
  • We don’t currently provide presence indicators or edit-locking by default

Practical advice:

  • Avoid editing the same fields on multiple devices at the same time.
  • Let sync settle (“idle”) before going offline on a second device.

Hosting & region

Cloud Sync data is hosted in Germany (Hetzner, Nürnberg).

Security & encryption

  • Data in transit is protected via HTTPS/TLS.
  • Data at rest is protected via server disk encryption.
  • End-to-end encryption (E2E): workspace content is encrypted and decrypted on your devices. On our servers, workspace content is stored only in encrypted form — we cannot decrypt it.

Notes and limitations:

  • Certain metadata must remain in cleartext for synchronization and access control (for example workspace/project IDs, timestamps, deletion markers, and technical sync metadata).
  • Encryption keys are stored locally on your devices (using your OS secure storage where available). We do not provide server-side key escrow. If all devices/keys are lost, encrypted Cloud Sync content cannot be recovered.

If Cloud Sync is disabled

Typical reasons:

  • You are not logged in
  • Your account is not Cloud/Pro (or your trial expired)
  • You are a free user in a shared workspace, but no Team Seat is available/assigned
  • Sync is stopped or not started yet

Go to Settings and check the User/Account section, then retry.

Sync status labels

The sync indicator uses short labels. Common ones include:

  • "Local": you are in a local workspace (never uploads)
  • "Live": cloud workspace is connected and idle
  • "Log in": cloud workspace, but not authenticated
  • "Upgrade": cloud workspace, but no Cloud/Pro entitlement (and no Team Seat)
  • "Offline": cloud workspace, but sync is not active
  • "No network": device is offline
  • "Error": sync encountered an error

During transient states (e.g. connecting/syncing), the indicator may show a spinner with no text.

Learn more