Chatelet guest booking UI — standalone app (Nostr-native) #141
Labels
No labels
app:activities
app:chat
app:events
app:forum
app:libra
app:market
app:restaurant
app:tasks
app:wallet
app:webapp
bug
enhancement
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
aiolabs/webapp#141
Loading…
Add table
Add a link
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?
Guest-facing booking UI for the
aiolabs/chateletextension (Nostr-native room rentals — now catalog-published at v0.1.0). Backend stays in the extension repo; this is the webapp client.Shape — standalone app pattern
Per
webapp/CLAUDE.md(likeactivities/restaurant), a second Vite entry:chatelet.html→src/chatelet-app/main.tssrc/chatelet-app/{main.ts, App.vue}vite.chatelet.config.ts(own build target + PWA/service-worker scoping)dev:chatelet+ the demo-host roll-upData flow — over Nostr, no HTTP
Talks to the extension over the surface we already built (client-agnostic by design):
chatelet_room_list/chatelet_room_getRPCs (kind-21000).chatelet_availabilityRPC, or the publickind:22000/22001query/response (either works; the public kind is the fully client-agnostic path).chatelet_booking_request→ returns aBookingQuote(bolt11); pay the invoice; pollchatelet_booking_getuntilconfirmed.sender_pubkeyis their identity; the extension never holds guest keys.kind:30078reservation object + the NIP-17 gift-wrapped check-in DM; the guest's client decrypts them (their custody, client-side).Scope / acceptance
kind:30078) + check-in details.Notes
webapp/CLAUDE.mdfirst — modular DI architecture, Shadcn forms, mobile file-input defenses, PWA/service-worker scoping for standalone apps.aiolabs/lnbitsADR-0001.activitiesandrestaurantstandalone apps.