opensession.dev/submit/your-event/call-for-papers.
They sign in with Google, fill out the form, and submit. The flow is simple:Speaker opens CFP link Fills out the form Reviews and submits ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐ │ Public URL │ ───────│ Title, abstract, │ ───────│ Confirmation page │ │ Google sign-in gate│ │ track, format, │ │ Email notification │ │ Welcome message │ │ co-speakers, files │ │ Draft auto-saved │ └─────────────────────┘ └─────────────────────┘ └─────────────────────┘
| Component | What it does |
<TextField> | Single-line or multiline text input with optional character limit |
<RichText> | Long-form text area for abstracts and descriptions |
<Select> | Dropdown tied to event tracks, formats, or custom option lists |
<Checkbox> | Multiple choice with checkboxes |
<Radio> | Single choice with radio buttons |
<FileUpload> | File upload stored in Cloudflare R2. Accepts images, PDFs, slides |
<Participants> | Multi-speaker block. Repeats child fields for each co-speaker |
<Section> | Visual grouping with a title |
<Info> | Read-only instruction text |
<Show> component evaluates
an expression against the current form values:123456<Select name="format" label="Talk format" options={formats} required /> <Show when={values.format === 'workshop'}> <TextField name="workshopDuration" label="How long is your workshop?" required /> <TextField name="workshopRequirements" label="What do attendees need to bring?" /> </Show>
<Participants> component lets speakers add co-presenters. Each participant gets
their own name, email, and bio fields:123456<Participants min={1} max={3}> <TextField name="speaker.firstName" label="First name" required /> <TextField name="speaker.lastName" label="Last name" required /> <TextField name="speaker.email" label="Email" required /> <RichText name="speaker.bio" label="Bio" maxLength={500} /> </Participants>

| Form | Purpose | Default status |
| Call for Papers | Session title, abstract, track, format, co-speakers | Draft |
| Speaker Profile | Name, bio, job title, company, headshot, social links | Open |
| Session Materials | Slides, cover image, A/V requirements | Open |