Docs
Features
A tour of what an instance does, area by area.
Program
- Speaker intake. People propose a session from their own account, the organisers’ queue shows each proposal’s state, and a proposed session is approved or declined from its own page. A turned-down proposal can still be approved later. It is not a call for proposals system: there is no scoring and no reviewer assignment. An event that reviews elsewhere invites the speakers it has chosen.
- Invitations. Invite a speaker by email; accepting the invitation creates their account. A returning volunteer already has one.
- Speaker profiles and sessions. Each presenter has a profile, each session its presenters, and a person speaking twice is one person.
- Checklists on both sides. The organisers see what each speaker still owes; the speaker sees the same list from their side, with due dates that follow the talk, and reminders that go out on time.
- The schedule. Rooms, slots and sessions, built in an editor and published through a program widget any website can embed and a read-only API.
- Recordings and uploads. Videos, slides and other files are kept in a private bucket of yours, next to the session, with a length check on uploaded video.
People
- One account per person. Handles (website, GitHub, Discord, Mastodon, Bluesky, LinkedIn, Instagram, X) and pronouns belong to the account, and every form reads from them.
- Volunteers. An application form, a review, and a volunteer hub where speaker checklist items can be assigned to a person or a team.
- Teams and permissions. Each team grants permissions from a catalogue, with presets such as Organizers, Program, Sponsorship and Proposal reviewers. Naming a team’s leads, and changing what a team grants, are themselves gated by permissions. The settings organisers need left the Django admin.
Sponsors
- Sponsorship tiers, a prospectus link, contract requests sent to the people who handle them, donations, and the stats that go with them.
- Sponsors never need an account; the organisers keep their record.
- Switch the whole area off for an event that has none, and its pages are gone.
The numbers
- An organiser dashboard: onboarded volunteers, sponsorship and donations against their goals, attendee count, event tasks and what needs attention.
- Stats pages for attendees (registered, first-timers, demographics when the fields are mapped), sponsorship and volunteers, a year-over-year comparison of registrations, proposals, sponsors and donors, and a JSON feed. Public by default, off with one switch.
- Attendee records come from a Pretix shop through its API or a CSV export of whatever sells your tickets or takes your RSVPs. Flashlights registers nobody and sells no tickets; it keeps the records and counts them.
Editions
- An edition is one event a year or a series of dates, in person, online or hybrid, with venues and rooms.
- Recordings and community chat are settings of the edition, and the forms follow them.
- Plan the next edition while the current one runs: organisers switch their working edition, speakers and invitation links follow their own.
Your name on it
- The name, short name, description, logo, favicon, share image, docs link and terms link come from environment variables. Unset, a favicon and a share card are generated from the name and the colour.
- One accent colour, from a preset or a custom value; the ink, hover and press shades are derived. The chrome around it is fixed, so every instance is recognisably Flashlights and recognisably yours.
- Switches turn off volunteering, sponsorship and the public stats.
Runs anywhere
- Four services: Postgres, Redis, an S3-compatible bucket from any provider (a second, private one when speakers upload files), and SMTP from any provider.
- A boot contract with three processes,
web,workerandrelease, and a production boot that fails at once, naming every missing variable. - Documented on Heroku and compatible hosts, Azure Container Apps, Cabotage and a plain server. See Deploy.
Your own code, without a fork
- A community adds its own Django app to the image, and the app may replace a core template or static file.
- Upgrades are a change of image tag, not a merge. See Make it yours.
No third-party code on any page
- Every script, stylesheet, font, icon and chart is served by the instance itself. The only other host a page touches is your own bucket, for the pictures and files people upload.
- No analytics, no advertising, no third-party cookies. The third-party services an instance talks to are on the server side: its bucket and its mail provider, plus Pretix and Sentry when you configure them.
Documentation per release
- Each release publishes its own version of the core documentation, and an instance’s help links point at the version it runs.
- A community with docs of its own points the help links there and links back to the core docs at its pinned version.