PodiumGitHubSign in

Your conference program is eleven spreadsheets and one person who knows where everything is.

Podium replaces all of it — the call for proposals, the review, the sponsor sessions, the chase for bios and slides, and the schedule that goes on your website. Free, open source, and it runs on infrastructure you own.

No per-speaker pricing. No sales call. No data you cannot export.

The agenda screen: a room-by-time grid with sessions placed across Main Stage, Room 2A and Room 2B, beside a panel listing two conflicts that block publication.
An event overview showing counts of days, tracks, formats, rooms and calls for proposals.
Sound familiar?

The six questions you cannot answer from a spreadsheet.

Every one of them is somebody waiting on you. Podium answers all six from one record of the program.

Who still hasn't sent a bio?

A board of every outstanding obligation, per speaker and per sponsor, with the reminders sent for you.

Two reviewers work with the submitter.

Conflicts are declared up front and the score is refused, not flagged for someone to catch later.

How many sessions does this sponsor actually get?

Three of five used, counted against the contract, on the same screen as the deal.

Two talks, one room, same slot.

Found by the agenda the moment you place them — not by an attendee on the day.

The website schedule is two versions behind.

Publish a snapshot your marketing site embeds. Roll it back in one click if it is wrong.

Every speaker emails me to ask where their talk stands.

They sign in and see it: status, next action, deadline, and what you still need from them.

What it looks like

Six screens, doing the six jobs.

These are photographs of the running product against its own seeded conference — a real program mid-flight, not a mockup.

Stop chasing people for bios.

Say once what an accepted speaker owes you — headshot, bio, slides, code of conduct, AV requirements — and Podium tracks every one of them, for every session and every sponsor, and sends the reminders itself.

Mark a task blocking and an unfinished one keeps that session off the public schedule until it is done. You find out now, not on the morning of the event.

The onboarding board listing each session against each required task, with an assignee, a status and a due date per row.

Review that holds up when someone asks.

Reviewers get a queue, a rubric and a progress bar — not a shared sheet with a hundred rows. A reviewer who submitted, is credited on, or has declared a conflict with a proposal cannot score it: the write is refused, not logged for someone to notice.

Run it open, single-blind or double-blind. Every score, comment and decision is recorded, so "why was this rejected" has an answer a year later.

Enforced as INV-05 in the domain model, and named in the tests.

A reviewer's queue: a screening round showing 7 of 7 done, with a card per assigned proposal.

Sponsor sessions are not an afterthought.

A sponsor session is paid for, not selected — but it still needs content review, the same onboarding and the same slot on the schedule. Most CFP tools model only the call for proposals and leave this in email.

Here a package is a countable set of entitlements. Two session slots and a logo placement, one used, one left — visible to you and to them, so nobody discovers a missing slot the week before.

A sponsorships table showing three sponsors, their tier, and a progress bar of entitlements used against entitlements bought.

Decide as a batch. Tell everyone at once.

Outcomes stay provisional until you publish them. Nothing reaches a speaker early, nobody finds out from a friend, and the awkward middle where half the program knows is gone.

Podium shows you which proposals have reached quorum and which are short of it before you commit — and records who waived it, and why, when you decide anyway.

The decisions screen: proposals with quorum badges, an outcome, and a publication status, each with controls to record a decision.

A schedule that cannot quietly break.

Place sessions into rooms and times and Podium recomputes conflicts on every change — a double-booked room, a speaker in two places, a session whose onboarding is not done. It will let you save a broken schedule. It will not let you publish one.

What the public sees is an immutable, versioned snapshot your marketing site embeds and a CDN can cache. Publishing an hour before doors open is survivable, because rolling back is just pointing at the previous version.

The public schedule: an itinerary of sessions with times, rooms and speakers beside a room-by-time grid, with search and add-to-calendar.

One place for speakers to look.

Where their proposal stands, what they have been accepted for, when and where it is, what they still owe you and by when — all on one page, behind one login, across every event you have ever run.

They keep their own profile, and it is what appears on the public schedule. You stop being the copy-editor of sixty biographies.

A speaker's dashboard: an accepted proposal with a confirm-by date, a published session with its room and time, and three outstanding tasks with due dates.
Also in the box

And the parts nobody demos.

Multi-step submission forms with custom fields and saved drafts, and a deadline that actually closes. An event roster. Content approval with revision history. Campaigns with an auditable outbox, so you can prove what was sent to whom. Bulk import and export. A scoped REST API and signed webhooks on every change, so the rest of your stack keeps up. And a speaker directory that spans every edition you have run — because the compounding asset a conference builds is not its schedule, it is the people it knows.

Yours, actually

Run it on your own account, or read every line first.

Two things most tools in this category will not let you do.

It deploys to infrastructure you own

Apache-2.0, built for Cloudflare, and it goes to a Cloudflare account in your name with your speakers' data in your database. There is no hosted tier to be locked into and no price that changes when your conference grows.

Read the code →

The rules are written down before the code

Who may see a reviewer's score, what happens to an unused sponsor slot, what a deadline does when it passes — all of it is specified in a normative domain model, and a check in CI fails the build when the code and the model disagree.

Read the domain model →

See it with a conference already in it.

The seed ships a three-day event mid-flight — proposals in every state, a review round with real scores, sponsors part-way through their entitlements, an agenda with genuine conflicts — and four personas you can sign in as. An empty shell teaches you nothing.

git clone …/Podium
npm install
npm run dev

Unrelated to podium.com (lead management) and to podium-lib (micro-frontends), both of which hold the obvious namespaces.