Documentation
Everything you need to run your event with Ribat.
Overview
Ribat runs the operations side of a hackathon. Organizers manage the event from a dashboard, participants get a portal for their ticket, team, project and announcements, and judges get a focused scoring view. One account can hold different roles in different events.
- Organizers —
/eventsand/e/[event] - Participants —
/p/[event] - Judges —
/j/[event] - Everyone — the public page at
/h/[slug]and project gallery
Accounts & sign-in
Sign up with email and password or continue with Google. Forgot your password? Use the link on the sign-in page to get a reset email.
Registrations are tied to an email address. When a participant creates an account with the email they registered with, their registration is linked automatically and their portal unlocks.
From Profile & account you can edit your name, bio, skills and links, change your password, download your data, or delete your account.
Creating an event
Click New event, give it a name and public link, and you'll land on the overview with a setup checklist. New events start as private drafts.
In Settings you configure:
- Details — name, public link, tagline, description, venue or online.
- Dates & time — timezone, start, end and the submission deadline. All times display in the event's timezone.
- Registration — open/closed, capacity (extra sign-ups join the waitlist) and custom questions: short text, long text, dropdown or checkbox.
- Teams & tracks — minimum and maximum team size and the tracks teams can pick.
- Integrations — a Discord webhook for announcements.
- Status — Draft → Published → Live → Judging → Ended → Archived. Publishing makes the public page visible.
Registration & people
People register on the public page with their email and your questions. They get an email with a personal QR ticket and a link to create their account. New registrations are pending; confirm them in People (or they're confirmed automatically at check-in).
The People table supports search (including answers), status filters, bulk confirm / waitlist / cancel with optional email notifications, a detail panel with every answer, and CSV export. Use Add people to paste emails or upload a CSV.
Check-in
Open Check-in on any phone and tap Scan tickets. Scans made without a connection are saved on the device and sync when you're back online. Counts update live on every staff device.
Can't scan? Search by name or email and tap Check in. Staff can also scan a ticket with their phone's camera app — the ticket page shows a check-in button to organizers.
The walk-in QR links to your public registration page, for people who arrive without registering.
Teams
Participants create a team, join with an 8-character invite code or link, or browse open teams — ranked by how well their skills match what the team is looking for. Team size limits and one-team-per-person are enforced.
The team lead can edit the name, pitch, track and roles they're looking for, close the team to new members, and remove teammates. If a lead leaves, the longest-standing teammate becomes lead.
Organizers can create teams, add solo participants (with suggested matches), change leads, remove members and delete teams.
Submissions & gallery
Any team member can edit the project: title, one-line summary, Markdown description with live preview, track, repository / demo / video links, tech stack and up to 10 images or short videos (20 MB each).
Save a draft any time, then Submit project. Edits are allowed until the deadline, which is enforced on the server. Submitted projects appear in the public gallery at /h/[slug]/gallery.
Judging
- Define criteria with a weight and maximum score.
- Invite judges by email. People without an account get a one-click invite to set a password. Optionally mark tracks a judge should skip.
- Auto-assign a round: choose judges per project and the maximum load per judge. Judges never get their own team's project, and re-running only fills gaps.
Judges see only their assigned projects, score with sliders that save when released, and can leave private comments. The leaderboard ranks projects by weighted scores normalised per judge (z-scores), so harsh and lenient judges count equally. When you're done, send a results email from the Judging page.
Announcements
Write once and choose channels: the participant portal (instant notification), email to registered attendees, and your Discord webhook. The history shows delivery status for each channel. Removing an announcement hides it from the portal; sent emails can't be recalled.
Every event email includes a one-click unsubscribe link, and bounced or spam-flagged addresses are unsubscribed automatically.
Schedule, reminders & analytics
Add schedule items with a time and type; they're grouped by day on the public page, and participants see what's next on their home screen.
From the overview, send 24-hour and 1-hour reminders with each attendee's ticket. Analytics shows registrations over time, check-in and submission rates, projects by track and registration status.
Plans & billing
Every event starts on Community, which is free for small events: up to 50 participants, 3 custom registration questions and 3 judges, with announcements in the participant portal. Pending and confirmed registrations count toward the participant limit; once it's reached, new sign-ups join the waitlist instead of being turned away.
Pro is a one-time $199 payment per event. It removes every limit and adds email announcements, 24-hour and 1-hour reminders, results emails, the normalised leaderboard, multi-round judging, analytics, CSV import and export, Discord announcements, your public page without Ribat branding, and priority support. Upgrade from the event's Billing page: checkout is handled securely by Dodo Payments, our merchant of record, and you return to Ribat with Pro switched on as soon as the payment completes.
Invoices, receipts and payment methods are in the billing portal, opened from Billing or Profile & account. If a payment is fully refunded, the event returns to Community and keeps all of its data.
Privacy & security
- Database row-level security limits every record to the people who should see it.
- Participant profiles are visible inside the event only, unless someone opts in to public pages.
- QR tickets are signed; only organizers can check people in.
- Anyone can download or delete their data from their account settings.
Questions? Email hello@ribat.site or read the privacy policy.