callboard

Open source · MIT · One Cloudflare Worker

“we're running an event” “speakers on stage”

six months of forms, scores, chasing and room clashes

Nobody claps
for the middle.

Callboard is the software for that middle: a call for proposals, weighted review rounds, acceptances that compose the programme, a portal that collects bios and slides, an agenda that catches the room clash, and the public schedule at the end. It is an open-source alternative to Sessionboard that you host yourself.

Launch the live demo View source on GitHub

The demo signs you in with one click as an organizer or a speaker. No account, no email, no setup.

Run of show

Six jobs, in the order a producer does them.

Every stop below is in the deployed product. Each one hands its work to the next, so nothing gets retyped into a spreadsheet in between.

  1. 01

    Call for proposals

    Build the form once: conditional questions, character limits shared across fields, participant rules, close dates. Answers route each proposal to the track that should read it.

  2. 02

    Weighted review

    Two scoring rounds against a weighted rubric. Reviewers open a workspace that shows only their assignments; you see the aggregate and who still owes you scores.

  3. 03

    Decisions

    Stage accepts and declines in a queue and read them back before you commit. Committing an accept composes the session into the programme — title, abstract, speakers and all.

  4. 04

    Speaker onboarding

    Accepted speakers sign in to one portal: fix the title, upload a headshot and materials, work a task list, read your resources. Title and abstract edits sync straight back to the programme.

  5. 05

    Conflict-aware agenda

    Place sessions by room and time on a day board. Overlaps collect in a dedicated conflict view, so you find the double-booked room before an attendee does.

  6. 06

    Published schedule

    Publish to a public page with ordered speaker and co-speaker names. The same records feed calendar invites, a CSV export and an API with per-event scoped keys.

The deployed product

This is the demo you are about to open.

Callboard organizer dashboard showing a programme readiness checklist with two areas flagged as needing attention, plus counts for submissions, accepted abstracts and outstanding speaker tasks.
Command centre Open it in the morning and the two things blocking the programme are already named, with the button that fixes each one.
Callboard speaker portal on a 390 pixel wide phone screen, showing the speaker's session status and their next action.
Speaker portal Your speaker gets one status and one next action, on the phone they answered your email on.
Callboard agenda planner showing sessions placed across rooms and times, with conflict visibility.
Agenda Move a session across rooms and times and the clash surfaces here, not in the hallway on day one.
Callboard public schedule page listing sessions by day with times, tracks, rooms and full speaker names.
Public programme Attendees read the same records you reviewed, with full speaker and co-speaker names and no placeholder rows.

Built honest

What is true today, and what is not.

A hackathon landing page is a good place to lie. Here is the version you can check against the repository.

One person, one account

The same sign-in is a speaker portal in one event and an organizer workspace in another. Profiles are global, so a speaker who also produces an event does not keep two logins.

Multiple events, one switcher

An event switcher in the organizer header changes which event you are producing, and the selection follows you across every admin page. ?event=<slug> still works as a shareable override.

Open source, MIT, yours to host

One Cloudflare Worker, one D1 database, one R2 bucket. Clone it, set three secrets, run the deploy script. No other service is required to run the whole workflow.

The demo cannot email anyone

The judge deployment sends mail to the console instead of a mail provider. Press every send button in it. No speaker, real or seeded, receives anything.

Not built yet

  • Self-serve organizations. Events are created by the operator of the deployment, not by a signup form.
  • Per-organization tenancy. Organizer rights are deployment-wide today. Scoping them to an organization is the next structural piece.
  • Airtable as a source of truth. Callboard mirrors rows out to Airtable. Reading edits back needs field allowlists and conflict handling, so it is deferred rather than half-done.

For judges

One-click demo roles Seeded realistic data Reseeded for judging Expires Aug 18

Open the demo