Платформы
NorawTickets
Билетная платформа
2026·7 400 строк кода
Открыть демо
Афиша, покупка билетов через Kaspi и карту, скрытая админка с экономикой агентского договора и PWA-сканер на входе. Три интерфейса, три роли, одна база.
Что внутри
- QR билета — не ссылка и не id, а base64url("id.HMAC-SHA256(id+nonce)"). Сервер пересчитывает подпись и сверяет в constant-time, поэтому нарисовать билет в фотошопе нельзя
- Места бронируются на 15 минут атомарным Lua-скриптом в Redis; доступность считается как quantity − sold − held, а выдача билетов идёт одной идемпотентной транзакцией Postgres
- Экономика агентского договора: комиссия 7% и снимок gross / commission / net прямо в заказе — организатор видит только свои мероприятия
- Сканер на входе — PWA: заливает экран цветом и даёт звук ещё до того, как контролёр прочитает текст. Зелёный — валиден, красный — уже прошёл, оранжевый — аннулирован
- Access-токен живёт 15 минут, refresh лежит в HttpOnly-куке с ротацией и хранится в базе только хешем. В localStorage нет ничего
- Три языка, выбор региона, rate limiting на вход и оплату, Sentry и тесты на Vitest
Стек
Next.js 14TypeScriptPostgreSQLPrismaRedisTailwindFramer Motionjose (JWT)Vitest
Демо
В демо загружены десять мероприятий: можно листать афишу, заходить в события, выбирать билеты и открыть панель организатора. Оплата ведёт на страницу-заглушку — денег никто не спишет.
Экраны



