A webinar for a few dozen people is a registration page, a video room, a chat and a recording, and with LiveKit's open-source server an agent gets a working room in a weekend. The gaps are the parts attendees judge you on: video that holds up on bad networks, a room that stays up when hundreds join, reminders that reach the inbox and a replay pipeline that doesn't fail. Rehearsals matter more than code here.
Before you buildDemio has no free plan, only a 14-day trial limited to 20 attendees and 1-hour sessions. If you only need a group call, Jitsi Meet is free.
Build me a small webinar room to replace Demio. Requirements: - Node.js 22 + TypeScript: a Fastify server, server-rendered pages (Eta) and the LiveKit JavaScript client in the browser. `npm start` serves http://localhost:4950 with /e/<slug> (register), /live/<slug> (room), /replay/<slug> and /admin. - Media: a LiveKit server from docker compose (`livekit/livekit-server`, keys in .env) or a LiveKit Cloud project. The Fastify server mints join tokens with `livekit-server-sdk`: attendees may only subscribe, presenters (up to four, each with their own link) may publish camera, mic and screen. - Storage: better-sqlite3 in ./data/webinars.db: events (title, start time, timezone, room cap), registrants (name, email, unique join token, UTM source), chat messages, poll votes and attendance (joined, left). - Registration: a form that saves the registrant, sends a confirmation with an .ics file, then reminders 24 hours and 15 minutes before, through nodemailer SMTP from .env. A join link works only for that event's registrants. Refuse registrations beyond the room cap and show "room full" instead of a broken room. - Room: video stage, attendee chat with a moderator view for presenters, a questions queue, and polls the presenter launches mid-session with live result bars. - Recording: LiveKit Egress (room composite) to ./data/recordings/<slug>.mp4. The replay page serves it to registrants, with an on/off switch per event. - Admin: one password in .env; event list; CSV export of registrants and attendance in minutes. - Single user. No accounts, no telemetry, local-first. Outbound calls: SMTP and your LiveKit server only. - Out of scope: automated evergreen webinars, CRM integrations, restreaming, live captions, payments. - README: ports and the UDP range to open, TURN and HTTPS on a VPS, and a warning to rehearse with a handful of real browsers on different networks before the first live event.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Demio.
Add automated webinars to the webinar room in this folder. Requirements: - An event can be marked "automated": pick a recording and a weekly schedule such as Tuesday and Thursday 10:00 in the registrant's timezone. - At the session time, /live/<slug> plays the recording to everyone present, synchronised to the server clock so late joiners start where the others are. - Chat stays on; the presenter's replies come from a list of timed messages I write in the admin. - Registrants can pick the next session from a dropdown on the registration page. - Update the README.
Add post-event emails to the webinar room in this folder. Requirements: - One hour after an event ends, send attendees a thank-you with the replay link and no-shows an "in case you missed it" email, using templates I edit in the admin. - Segment by attendance minutes: under 5 minutes counts as a no-show. - Log every send in SQLite and never send the same email twice to a person for one event. - A dry-run flag that prints the recipients without sending. - Update the README.
Add a HubSpot export to the webinar room in this folder. Requirements: - A private-app token in .env (HUBSPOT_TOKEN). After each event, create or update a contact per registrant by email through the HubSpot API. - Write the event title, registration source, attended yes/no and minutes watched to custom contact properties, creating the properties on first run. - Retry on rate limits with exponential backoff and record failures in SQLite. - Update the README with the scopes the token needs.
Marketing teams run webinars as a lead source, so a broken live room costs far more than the subscription. Demio gives attendees a link with no download, gives hosts a tested room, and pushes registrants and attendance to the CRM afterwards.
Estimate · A small VPS runs a room for a few dozen people; video bandwidth is the real cost and grows with audience size and session length, so treat these as a rough range. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Starter | $63 | $45 | One host, 50-attendee room, 3-hour sessions, 4 people on stage, 15 event admins; chat, polls, featured actions, handouts, engagement analytics and live event series. |
| Growth | $117 | $80 | Rooms of 150, 500, 1,000 or 3,000 attendees, 8-hour sessions, 6 on stage, 25 event admins; adds on-demand and automated webinars, custom room and email branding, custom form fields, source tracking and Showcase. |
| Premium | — | $196 | Rooms of 150 to 3,000, 10-hour sessions, 10 on stage, 50 event admins, unlimited hosts; adds 1080p, restreaming, live captions, custom domains, auto-transcriptions, HubSpot, Salesforce, Marketo and Pardot integrations, Demio AI, a dedicated CSM and priority support. |
| Larger rooms and SSO | custom | — | Rooms beyond 3,000 attendees and single sign-on. |
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Rooms of 500 to 3,000 attendees with consistent quality, Automated and on-demand webinars that run on a schedule without you.
About $63 a month on the Starter, 50 attendees, one host plan, $756 a year (checked 2026-10-19).
Rooms of 500 to 3,000 attendees with consistent quality; Automated and on-demand webinars that run on a schedule without you; HubSpot, Salesforce, Marketo and Pardot sync for registrants and attendance; Engagement analytics, live captions, restreaming and the AI chat assistant; The no-download join experience that has been tested on many browsers and networks. If any of those matter to you, keep paying.
Yes: Jitsi Meet (open source), BigBlueButton (open source), Owncast (open source).