Automattic / Automattic/cortext

Sync Desktop with a remote Cortext workspace

Open
#444 0 comments 0 reactions 0 assignees View on GitHub
area: desktop area: sync priority: high type: enhancement
Dominant language
JavaScript
Stars
51
Forks
2
Avg merge
3h 12m
Merged PRs (30d)
8

Description

## Goal

Cortext Desktop currently keeps the workspace on one computer. Losing that computer can mean losing the workspace, and there is no way to continue from another installation.

Let Desktop pair with a remote Cortext site and sync the workspace in either direction. Start with a manual flow whose changes are visible and recoverable.

## Tasks

- [ ] Let a Desktop workspace pair with a remote Cortext installation, authenticate, and disconnect again.
- [ ] Compare and synchronize pages, hierarchy, collection schemas, rows, memberships, and stored property values without changing document identity.
- [ ] Transfer referenced media and preserve links, relations, and covers when content moves between installations.
- [ ] Add a manual Sync action that shows pending changes, progress, the last successful sync, and errors that need attention.
- [ ] Detect changes made on both sides and resolve them without silently overwriting either version.
- [ ] Create a recoverable snapshot before applying incoming changes and provide a way to restore it after a failed or unwanted sync.

## Acceptance criteria

- A Desktop workspace can pair with and authenticate to a remote Cortext installation.
- Creating or editing a page, collection, or row on either side can be reflected on the other after a manual sync.
- Hierarchy, fields, media, links, and relations remain intact after synchronization.
- Conflicting changes are surfaced and do not silently discard content.
- A failed sync leaves both workspaces usable and offers a recovery path.

## Out of scope

- Live collaborative editing. That remains part of [Concurrent editing #94](https://github.com/Automattic/cortext/issues/94).
- Continuous background sync. The first version runs when the user asks it to.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named in the issue. Start by locating Desktop workspace persistence and the remote authentication/API boundaries, then map the manual Sync flow across pairing, comparison, conflict handling, snapshots, and recovery; completion is defined by the listed acceptance criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
desktop, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.