Every runner on the start line.
Custom control panel for running events: registrations, bib numbers, promo codes, SMS notifications for participants — no Bitrix, all in one system.
"Before, registrations, bib numbers and participant emails lived across separate tables and Bitrix exports. Now it is one screen — and the team has time for the next race."— running club organizers
In a single base — no dependency on Bitrix exports or Excel sheets.
From first screen to production launch before a major race.
Direct messages to participants — they reach where emails do not.
All event entries in one table with instant filters.
Online and offline registrations land in a shared list. Search by name, email and phone is instant. Statuses pending/completed, totals per race, CSV export — for volunteer briefings and reports.
- Filter by event and search — find a specific participant or segment in a second.
- Bulk actions — delete, send an email to a group.
- Manual entry — for offline participants, no cash desk workaround.
- CSV export — a format volunteers and chip-timing crew understand.
Bib numbers are locked to an email — for life.
Returning participants always get their original number. Promo codes for registrations and the shop run as two separate pools. Percent or flat discount, usage limits, expiry dates.
- 1–9999 — bib range with auto-check for free slots.
- Import from history — past assignments migrated in a single batch.
- Per-event promo stats — clear data for marketing.
- Two pools — race promo codes and shop promo codes never collide.
Wired up an SMS channel — for everyone who is not on Telegram.
The runner audience is mixed: about half use Telegram, half do not. We solved both with plain SMS. After registration the participant gets a confirmation; a week before the race — their bib number and meeting point. Schedule changes go out as bulk segmented messages.
- Plain SMS via a provider — reaches any phone, no app required.
- Triggered scenarios — registration confirmation, briefing reminder, bib number 7 days before the start.
- Segmented broadcasts — only participants of a specific distance or event.
- Delivery logs and cost per campaign — transparent for the budget.
2FA for administrators, roles, and access control.
The panel stores participant personal data — phone numbers, medical clearances, payments. We protected it like a bank: bcrypt password hashes, TOTP authentication, separation of superadmin and admin roles.
- Bcrypt password hashes — no plain-text in the database.
- TOTP 2FA — Google Authenticator, 1Password, Bitwarden and similar.
- Superadmin / admin roles — different sections and actions per role.
- 24-hour session with HttpOnly cookies and auto logout.
YooKassa payments, team Telegram bot, compliance documents.
YooKassa handles payments with automatic status sync into the panel. The team receives push notifications via a Telegram bot — new payment, new shop order, important registrations. Compliance documents (Russian PD law) live in a dedicated panel section and surface in the footer.
- YooKassa Payment ID stored against each registration — reconciliation with the bank in minutes.
- Team Telegram bot — instant pushes for payments and orders.
- 4 footer documents — clearance, offer, consents, policy. PDF upload or external URL.
- Consent checkboxes on forms — covering the current data protection law requirements.
MAX bot for participants — schedule, bib number, race-day check-in.
Alongside SMS, we shipped a MAX bot for participants who use the messenger. Inside: race schedule, personal bib number, check-in button at briefing, answers to common questions. The team handles everything from one chat — no context-switching between messengers.
- Personal account inside the bot — bib number, distance, start time, venue.
- Briefing and start check-in — participant taps a button, the organizer sees attendance in real time.
- FAQ bot — answers common questions (how to get there, what to bring, weather) without team intervention.
- Support — switch to a human operator with one tap, message history is logged in the admin panel.
14 calendar days — from the first screen to race day.
Scope of sections, agreement on integrations (YooKassa, SMS provider, Telegram), mockups for primary screens.
Registrations, users, bib numbers, promo codes, auth with 2FA, role model.
SMS channel, team Telegram bot, YooKassa webhooks.
Historical data import, organizer and volunteer instructions, production deploy.
Your project:
Tell us your task — within 24 hours we'll come back with an estimate and timeline.
And get a personalized proposal with pricing and timeline.