paphotos-assemb
Workflow · CollaborationLocal-first

Real-Time Collaboration

Share a room link and edit the same layered document with live layer sync and presence.

A retoucher, an art director and a photographer can look at the same document without exporting a new PSD every ten minutes. Open a room, share the link, and layer changes sync live with participant presence.

The transport is a Cloudflare Durable Object with a WebSocket relay. Each layer is a last-writer-wins register with a Lamport clock, and late joiners receive the latest snapshot. It is intentionally simple: collaborative editing, not a full CRDT with character-level text merging.

No image uploads WebAssembly engine Works in the tab
What you can do

Collaboration, in detail.

Collaborate on a layered photo edit in real time. Share a room link, see participant presence, and sync layer changes through a Cloudflare Durable Object with reconnects.

01

Share a room link

Open ?collab=<room> on the editor and send the URL. Anyone with the link and the document can join the session.

02

Live layer updates

Layer properties and pixel revisions propagate to other participants as they change, without a manual save.

03

Presence

See who is connected to the room so you know whether the art director is actually looking at the latest version.

04

Reconnect and late join

A reconnecting tab fetches the latest snapshot before applying new patches, so it does not silently diverge.

05

Serverless relay

A Cloudflare Durable Object owns each room. There is no always-on collaboration server to operate.

06

Same editor, no export

Collaborators work against the layer stack rather than a flattened review image.

How it works

From file to finish in three moves.

No install step and no import queue. Open the editor, work on the document locally, and export the file your next tool expects.

Try it now
  1. 1

    Create the room

    Open the editor with a room name, or copy the collaboration link from the session controls.

  2. 2

    Invite the team

    Send the link. Each participant opens their own copy of the document and joins the room.

  3. 3

    Edit together

    Changes sync layer by layer. Use presence to confirm who is connected, and keep one person responsible for final export.

Who it is for

Built for real photo work.

These are the workflows the tool is designed around — not a list of theoretical features.

  • A photographer and retoucher reviewing a wedding album spread together.
  • An art director making colour and copy notes while the editor works.
  • Remote teams that need a shared canvas without a desktop licence server.
  • Client review sessions where the document, not a JPEG, is the source of truth.
Questions

Collaboration FAQ

Straight answers about formats, privacy and limits.

How do I join a collaboration room?

Open the editor with ?collab=<room-name>, for example /app?collab=smith-wedding. Everyone using the same room name joins the same session.

Is the room private?

Anyone with the room link can join. There is no account authentication or end-to-end encryption in this build. Use an unguessable room name and do not share client-sensitive documents on a public link.

What happens if two people edit the same layer?

The layer model is last-writer-wins with a Lamport clock. The most recent write wins for that layer; there is no character-level merge. Coordinate on the same layer to avoid surprises.

Does collaboration work offline?

The editor can continue locally while disconnected, and a reconnecting tab fetches the latest snapshot. Real-time updates require a network connection to the Cloudflare room.

No upload. No account. No render queue.

Put collaboration to work.

Open the editor and bring a real file. Your photo stays on your device.