Skip to content

[Tool] Embeddable OTE events widget #14

Description

@hhkaos

Problem

A community or conference may publish an OTE feed, but still need a way to show those events on their own website.

Without a reusable widget, every website has to build the same UI again: fetch the feed, parse events, sort upcoming dates, handle empty states, render locations, and keep the display accessible and responsive.

Why this matters for OTE

This lowers the adoption barrier for communities that can publish a feed but do not want to build a custom event listing.

It also helps OTE feel immediately useful: publish structured data once, then embed it as a human-friendly event list or calendar anywhere.

Possible shape

  • Embeddable script/widget for websites.
  • Accept one or more OTE feed URLs.
  • Render upcoming events in different layouts, for example:
    • list
    • compact list
    • calendar
    • cards
  • Allow basic filters:
    • topic/tag
    • city/country
    • online/in-person/hybrid
    • language
    • date range
    • community/source
  • Support sorting, empty states and cancelled/postponed events.
  • Link each event back to its canonical page/source.
  • Be usable on static sites and simple CMS pages.

Configuration ideas

Configuration could happen through HTML attributes, a small JS config object, URL parameters, or generated embed code.

Examples of things a site owner may want to configure:

  • feed URLs
  • layout
  • max number of events
  • default filters
  • theme or CSS variables
  • language
  • whether to show past events
  • whether to group by month/community/topic

Open questions

  • Is a Web Component the best implementation, or should this be a plain script, iframe, framework package, or generated static HTML?
  • Should it fetch feeds client-side, or should there also be a build-time/static generation option?
  • How should CORS and feed availability be handled?
  • How much styling should be built in, and how much should inherit from the host site?
  • Should multi-feed deduplication be part of the widget or delegated to an aggregator?
  • Which layout should be the first MVP: list or calendar?
  • Should this live in ote-tools, as an npm package, or both?

Non-goals for a first version

  • No event editing or publishing.
  • No account system.
  • No requirement to support every visual layout before shipping a minimal useful embed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions