Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Idea: Sync & toggle between local and upstream instances #15

Open
Beryesa opened this issue Nov 13, 2024 · 1 comment
Open

Idea: Sync & toggle between local and upstream instances #15

Beryesa opened this issue Nov 13, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@Beryesa
Copy link
Contributor

Beryesa commented Nov 13, 2024

Simply, have a way to toggle between two instances (instead of saving one or the other); an upstream (e.g. design.penpot.app) and the local/offline (e.g. localhost:9001) one, then sync with a button to automate exporting/importing the changed files on either side.

This could either be fully through the rpc, or also as a plugin, probably.

Then it could sync all the (changed**) files (could be taxing) or add a sync button (as a plugin) to the current file, export it and import to the other one (via access tokens or the cookie itself) etc.

**The plugin could probably also track events and autosync every x minutes if the current file is changed.
For all the files, tracking via webhooks (if the client can't see by itself) and syncing with rpc every x minute.
Or with a button in the desktop ui next to the instances, manually

Lastly, the tabs could indicate the instance or the sync status with an icon.

Reference: penpot/penpot#475 (reply in thread)

@Belar
Copy link
Contributor

Belar commented Nov 21, 2024

Thank you for the suggestion and technical options. There is a lot to unwrap here, so I will briefly address the main aspects of the feature and the associated discussion from the Penpot repo thread.

Support for connecting to multiple instances is high in the Penpot Desktop backlog and is one of the features I will start working on soon.

I didn’t think about sync and backup at this point, but those would be valuable features - added to the backlog. I would probably opt for RPC API, and with IPC the app has access to the Plugin system API too.

It all needs to provide solid UX, especially around tab navigation (instance opening selector, instance tab indicator, multiple windows, etc.) which makes most of the UI and depends on an all-in-one web component that has been discontinued. I experienced its limits already when adding the reload button and believe workarounds (for the tab navigation itself and other UI elements) will only get us so far, then something has to be done - a fork or an in-house solution. More work with tabs should give a better idea of the way to go.

The desktop thread in the Penpot repo is interesting and reminds me of evaluating reviving this project. The idea is mentioned there too, but abstracting the offline setup is in the backlog. There is no exact plan on the scope and form yet, Penpot Desktop shouldn’t become Podman/Docker Desktop though.

For a start, the focus is on the support for multiple instances. That should open ways to the other features.

@Belar Belar added the enhancement New feature or request label Nov 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants