For developers

OSVenue is one Cloudflare Worker in plain JavaScript with server-rendered HTML, backed by Cloudflare D1. Pages run no script except the passkey script on the sign-in and account pages. The source, tests and install steps are in the repository.

Open data on every venue site

FeedAddressWhat's in it
Events/events.jsonThe venue, links to the other feeds, and upcoming events with local dates and times, offsets, space, organizer, price, tickets, whether cancelled, and each one's record
schema.org/events.jsonldThe same events as schema.org Event at a Place
Venue/venue.jsonAddress, contact, time zone, accessibility details, booking address
Calendar/events.icsA calendar subscription; cancelled events stay, marked
News/feed.xmlRSS of upcoming events
Search enginesschema.org on pages, /sitemap.xml, /robots.txt, /llms.txtEvent and Place with accessibility features
Records/v1/records.jsonEvery published version of each event and of the venue, with its provenance, under a Merkle root

Every feed carries its provenance

The feeds and public pages are read from OSCivic core's keeper, not from the tables staff edit. Each event and the venue carry a record: its id, source, hash, when it became public and what it replaces. An event's date, times, space, price and cancellation, the venue's address, contact and accessibility details, and each space's name, capacity and access, are relied-upon facts: changing one on something published needs a reason, and the reason and each change (from and to) are published with it. Titles and descriptions are stamped but need no reason. Drafts are never kept.

All feeds send Access-Control-Allow-Origin: *. None carries a requester's contact details. The README shows an example of events.json.

How it's checked

Every push runs the unit tests, then a walk-through of what a visitor, a requester and staff do, with axe-core WCAG 2.1 AA checks at desktop and phone width. After each deploy and every night, the full walk-through runs against the Two Step Dance Hall demo and the public steps against the other five; a failure opens an issue.

Run it on your computer

Node.js 22: clone the repository (or download the source), then npm test, and follow "Run it on your computer" in the README to start a local copy with demo data.

Contributing

Pull requests are welcome. Database migrations only add; code more than one OSCivic project needs goes into OSCivic core first; every bug fix adds a test. See CONTRIBUTING.md.