Skip to Content
Lists

Publishing a list

Make a local list public — the button, the nudge, the dialog, and what changes when it is remote.

A list starts on your browser. Publishing gives it a second home on the edge so anyone with the link can open it from anywhere. It is a one-way move — once published, the list stays remote.

The publish button — when it appears

/KEWEKE
  • Local list — header shows an outlined Publish button (cloud upload icon, hotkey ⌘U / Ctrl+U).
  • Remote list — the Publish button disappears and a Share button takes its place (copy icon). Local catalog rows show a cloud badge instead of the house badge for remote lists.

If you click Publish without a name, the app opens a Before you publish dialog. Choose the name that will appear as the publisher of the list, or connect another device if you have already set up Keweke elsewhere. You do not need to set up a remote account first: when you confirm the first publish, Keweke connects this browser so you can edit the list from other devices.

The nudge — a gentle hint

The first time a local list looks shareable (you renamed it from “New list” or added enough items), a small tooltip appears under the Publish button:

You can now publish this list to access it from anywhere.

Tap the tooltip or wait ten seconds — it dismisses itself and never shows again for that list. It is a hint, not a requirement.

The dialog — what you are making public

Publish this list?

Anyone with the ID or alias can open it. Publishing a list

This list will be available on other devices, and you’ll be able to edit it there.

ID0199c2f0-8a1b-7c3d-9e4f-2a1b3c4d5e6f
Aliasweekend-groceries-a3k

Tapping Publish opens a modal that confirms the public addresses before anything leaves your browser:

  • a short explainer that anyone with the ID or alias can open the list
  • a box listing the public addresses — the raw ID and, if present, the friendly alias
  • a note when this is your first publish, explaining that the list will be available on other devices and that you will be able to edit it there
  • Cancel and Publish list — the publishing spinner shows while the service creates the Durable Object copy

Choosing a name only saves it in this browser. The confirmation dialog is the step that writes to the network and moves the list from local storage to its shared copy. Until you confirm, the list stays local.

What happens now — remote, public

Remote · publicAnyone with the link can open it
Live
vs
Weekend groceries ShareCopied

Your browser keeps a cached copy in IndexedDB — offline opens still work, and reconnecting replays mutations. If the owner deletes the list, your cached copy is removed on next sync.

After you confirm:

  • Your browser refreshes to the same URL but now marked as remote list · public. The live indicator turns green and a WebSocket connects to the list's service object.
  • The URL does not change — your existing link now opens the remote copy for everyone. Your local cached copy stays so offline opens still feel instant.
  • Sharing is live — changes check off instantly for others viewing the same link. If your connection drops you see a Reconnect button next to search (see Working with the list).
  • No more local alias minting — the alias you had is now frozen as the public alias.
  • Ownership — you are the owner. Deleting is handled through your /user settings or the admin view; visitors cannot delete your list. If the owner deletes it, your cached copy is removed on the next sync.

Remote lists keep sharing the same identifier space as local ones — there is no “shared vs personal” ID format. The difference is storage (browser IndexedDB vs edge SQLite) and the live channel. How that channel and its revision history work is covered in Architecture — Collaboration and Architecture — Storage.

Components behind this flow