Cross-standalone aggregator feed (new events, marketplace items, forum posts, …) #58

Open
opened 2026-05-17 21:19:12 +00:00 by padreug · 0 comments
Owner

Background

Each standalone publishes its own Nostr event kinds (NIP-99 for restaurant menus and marketplace stalls/products; NIP-52 for activities/events; chat/forum kinds; etc.). Users currently see new activity only by visiting each standalone individually.

A cross-standalone aggregator feed would surface fresh activity in one place:

  • new activities/events going on sale (sortir)
  • new items / stalls in the marketplace
  • new posts / replies in the forum
  • new restaurant menu changes / specials
  • (possibly) new task offers, chat invites — open question whether these belong in a feed or stay app-private

The orphan src/modules/nostr-feed/ module is a leftover from an earlier attempt at this — it has scaffolding (FeedService, SubmissionService, NostrFeed.vue, a LINK_AGGREGATOR_PLAN.md) but is no longer wired into any standalone's app config. Worth a look as a starting point rather than starting from zero, though the design will need to evolve from a "submit posts" model to a "subscribe-and-render-other-modules'-events" model.

Open questions

  • Surface: new standalone (e.g. feed.${domain}) vs a tab inside the hub vs a per-user dashboard?
  • Event sourcing: does each standalone module export a "what kinds + authors should the feed listen for" registry, or does the feed configure relays/kinds itself?
  • Per-user filtering / muting by kind, author, location, language.
  • Cross-instance discovery — does the feed only show activity on the user's own LNbits instance, or aggregate across federation peers via NIP-51 lists or similar?
  • Cards vs raw events — each module needs a presentation hint (which fields to surface, how to deep-link back into the originating standalone). NIP-89 handler hints might fit.

References

  • src/modules/nostr-feed/LINK_AGGREGATOR_PLAN.md (existing scaffolding doc)
  • NIP-89 (recommended application handlers)
  • NIP-99 (classified listings) — used by market + restaurant today
  • NIP-52 (calendar events) — used by activities today
## Background Each standalone publishes its own Nostr event kinds (NIP-99 for restaurant menus and marketplace stalls/products; NIP-52 for activities/events; chat/forum kinds; etc.). Users currently see new activity only by visiting each standalone individually. A cross-standalone aggregator feed would surface fresh activity in one place: - new activities/events going on sale (sortir) - new items / stalls in the marketplace - new posts / replies in the forum - new restaurant menu changes / specials - (possibly) new task offers, chat invites — open question whether these belong in a feed or stay app-private The orphan `src/modules/nostr-feed/` module is a leftover from an earlier attempt at this — it has scaffolding (FeedService, SubmissionService, NostrFeed.vue, a LINK_AGGREGATOR_PLAN.md) but is no longer wired into any standalone's app config. Worth a look as a starting point rather than starting from zero, though the design will need to evolve from a "submit posts" model to a "subscribe-and-render-other-modules'-events" model. ## Open questions - **Surface:** new standalone (e.g. `feed.${domain}`) vs a tab inside the hub vs a per-user dashboard? - **Event sourcing:** does each standalone module export a "what kinds + authors should the feed listen for" registry, or does the feed configure relays/kinds itself? - **Per-user filtering / muting** by kind, author, location, language. - **Cross-instance discovery** — does the feed only show activity on the user's own LNbits instance, or aggregate across federation peers via NIP-51 lists or similar? - **Cards vs raw events** — each module needs a presentation hint (which fields to surface, how to deep-link back into the originating standalone). NIP-89 handler hints might fit. ## References - `src/modules/nostr-feed/LINK_AGGREGATOR_PLAN.md` (existing scaffolding doc) - NIP-89 (recommended application handlers) - NIP-99 (classified listings) — used by market + restaurant today - NIP-52 (calendar events) — used by activities today
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aiolabs/webapp#58
No description provided.