A conference team usually runs its event from a stack of things that do not talk to each other: a programme in a PDF, a guest list in a spreadsheet, speaker bios in an inbox and a sponsor list on someone's desktop. On event day that means every late change is made three times, and at least one copy is always wrong.
We built the Attend console as the single place where the event is defined. Programme, speakers, rooms, tracks, attendees, documents, partners, announcements, check-in and reports all live in one React app, grouped into Setup, Run and Reach so a team member always knows which part of the job they are in. Every page carries its own guide and FAQs, and the event home opens on an overview that shows what is ready and what is not.
Change it once, everywhere
When an organiser moves a session to another room or swaps a speaker, the change is made in one place and reaches every participant's phone the next time it connects. There is no second programme to update and no reprint at the registration desk.
The decision: publishing has rules
Attend runs in Bosnian and English, and half-translated programmes are a real risk at bilingual events. So each event declares which languages are required, missing translations get an amber mark, and the console will not publish until every required language is complete. A participant never opens a session that exists in only one language by accident.
We made the same call on access. Instead of passwords, the console signs people in with a link sent by e-mail, and roles decide who sees what: event admin, organiser, door staff, speaker, partner, participant. Permissions are enforced on the server through database policies, not hidden in the interface, so an organisation only ever sees its own data.
- Programme by day, time, room and track, with per-language titles
- Attendee import from CSV that updates people instead of duplicating them
- Organisations credited on sessions, which later drives per-organiser reports