Desktop · Pear Desktop · planned

Desktop App

Pear Desktop · planned

Desktop Overview

Not implemented yet. Planned as an enhanced large-screen version of the mobile experience that shares the same backend, domain logic, and shared packages.

Runtime target

Build as a Pear Desktop application first, with Electron only as a fallback if Pear blocks a concrete requirement. The desktop app uses Pear Desktop IPC for its embedded backend path through the shared @listam/client adapter.

First milestone

Current Listam parity: invite create/join, peer and sync status, list and grid views, grocery grouping and icon intelligence, shared Redux/domain logic, and shared backend/client packages.

Large-screen improvements

Denser list and grid layouts, keyboard-first actions, a larger multi-pane structure, clearer sync and peer diagnostics, and tray/status affordances where Pear Desktop supports them.

Device operations

Easier review of invites, peers, and owned headless-device connections, including the headless P2P owner-control adapter when the desktop app observes a user's always-on personal server.

Status: The listam-desktop repository is currently empty. See the Multi-App Plan for the full design and the review findings that gate it.
Verification

Testing

How an implementation agent tests the desktop app and proves it interacts with mobile and headless. See also the implementation plans.

Unit

The shared @listam/domain, @listam/protocol, and @listam/grocery suites run in Node — identical to mobile.

Integration

The Pear Desktop IPC adapter passes the same @listam/client contract tests as the worklet adapter; keyboard actions and multi-pane behavior; the diagnostics panel reads backend events.

Manual / E2E

Parity checklist on macOS/Windows/Linux; tray/status where Pear supports it; compare the UI against listam-desktop/design-guide/.

How to run

Launch the Pear dev app; run the shared package suites with the Node runner; drive a second instance (or a headless peer) for sync.

Interaction: Desktop rows of the cross-instance matrix: mobile ↔ desktop generated/edited/completed/deleted content parity both directions, desktop usable while mobile is offline, and desktop ↔ headless (join an invite created on headless, drive owner-control from desktop, and sync content operations both ways).