feat: anonymous guest mode — grocery list without account (affiliate revenue) #72
Labels
No labels
accessibility
backlog
beta-feedback
bug
duplicate
enhancement
feature-request
help wanted
invalid
needs-design
needs-triage
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/kiwi#72
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Allow unauthenticated visitors to build a grocery list on the cloud instance without creating an account. Monetized via affiliate links. Serves as an acquisition funnel into free account signup.
Design spec
circuitforge-plans/kiwi/superpowers/specs/2026-04-15-anonymous-grocery-list-design.mdKey decisions
is_guest: boolonCloudUser(not a fake tier value)circuitforge_core.guestmodule extracted simultaneously (Snipe is the second consumer)CLOUD_DATA_ROOT/guest/{uuid}/Tracks
Closing: Guest session path implemented in
app/cloud_session.py—_resolve_guest_session(),_anon_guest_db_path(),kiwi_guest_idcookie,anon-{uuid}user_id prefix, per-session SQLite isolation all present.feature: guest/demo mode — unauthenticated access with transient sessionto feat: anonymous guest mode — grocery list without account (affiliate revenue)Partial complete (2026-04-18): Per-session guest DB isolation is now live in cloud.
kiwi_guest_idUUID cookie (90-day, HttpOnly, Secure)CLOUD_DATA_ROOT/anon-{uuid}/kiwi.dbCLOUD_AUTH_BYPASS_IPSwas routing all cloud requests to thelocal-devDBRemaining work: Shopping list UI as first-class object (tracked in #71) — grocery list tab, add-to-list from recipes/inventory, affiliate link surfacing.