Describe the feature
PictoPy has no way to share an album today without uploading it to a third-party service, which conflicts with the project's offline, privacy-first design. This proposes serving a selected album directly from the user's machine over the local network, so that someone on the same Wi-Fi can open it in an ordinary browser while PictoPy is running. No photo leaves the machine, and the recipient needs no account and no app.
The share would be served by a second FastAPI application bound to the local network, kept separate from the main backend so that its localhost-only routes, including shutdown and delete, remain unreachable from other devices. Each share is identified by an unguessable token, and the set of active shares is held in memory only, so shares end when PictoPy closes and no token is ever written to disk.
The proposed scope for the first iteration is the backend and the receiver page: starting and revoking a share, streaming thumbnails and originals, and a self-contained page for the recipient to browse the album. A share dialog in the desktop UI, optional password protection, and diagnostics for networks that block device-to-device traffic would follow separately.
Sharing over the internet through a tunnel provider is deliberately out of scope. Only the local network is covered here.
Add ScreenShots

Describe the feature
PictoPy has no way to share an album today without uploading it to a third-party service, which conflicts with the project's offline, privacy-first design. This proposes serving a selected album directly from the user's machine over the local network, so that someone on the same Wi-Fi can open it in an ordinary browser while PictoPy is running. No photo leaves the machine, and the recipient needs no account and no app.
The share would be served by a second FastAPI application bound to the local network, kept separate from the main backend so that its localhost-only routes, including shutdown and delete, remain unreachable from other devices. Each share is identified by an unguessable token, and the set of active shares is held in memory only, so shares end when PictoPy closes and no token is ever written to disk.
The proposed scope for the first iteration is the backend and the receiver page: starting and revoking a share, streaming thumbnails and originals, and a self-contained page for the recipient to browse the album. A share dialog in the desktop UI, optional password protection, and diagnostics for networks that block device-to-device traffic would follow separately.
Sharing over the internet through a tunnel provider is deliberately out of scope. Only the local network is covered here.
Add ScreenShots