QR Service — динамические QR-коды.
Печатаете код один раз, а адрес за ним меняете в кабинете. Создали собственный сервис: от механики перенаправления и редактора QR до аналитики, команд и подписок.

QR Service / главная страница. Показатели в демонстрационном интерфейсе — пример отображения данных.
Сохранить печатные материалы актуальными, даже когда ссылка меняется.
Задача появилась в проектах Acting Gym и TalentHub: визитки, стойки и другие материалы готовились раньше постоянного домена. Разработали сервис-посредник. В QR-коде хранится короткий адрес, а целевую страницу можно менять без новой печати. Взяли на себя архитектуру, интерфейс, разработку, защиту доступа и биллинг.
Что сделали
- Архитектура динамических ссылок и перенаправлений
- Дизайн лендинга и интерфейсов кабинета
- QR-студия с фирменными стилями и экспортом
- Аналитика сканов, кампании и команды
- Подписки, оплата в AED и REST API
- Защита доступа, тесты и резервное копирование
Сайт в деталях.
Собрали визуальную систему для продукта: графитовая основа, яркий акцент, крупная типографика и модульная сетка. На лендинге объяснили возможности сервиса через интерфейс, короткие сценарии и сравнение тарифов.

Возможности через понятные сценарии.
Смена адреса, настройка QR, аналитика и API собраны в одном блоке. Короткие объяснения и анимированные детали помогают понять, какую задачу решает каждый инструмент.

Светлая и тёмная темы.
Сохранили общую структуру и акценты при переключении темы. Крупный первый экран объясняет главный принцип: печатный код остаётся прежним, а ссылка за ним меняется.

Тарифы как часть продукта.
Предусмотрели Free, Pro и Max, выбор месячной или годовой оплаты и сравнение возможностей. Подключили оплату через Ziina и проверку лимитов на стороне сервера.

Откуда приходят сканы.
Демонстрационный блок показывает географию и каналы переходов. В продукте предусмотрены сравнение кодов и кампаний, фильтры периода и экспорт данных.
Объём проекта
- API-маршрутов
- 35
- Автотеста, включая 11 сценариев оплаты
- 62
- Таблиц в базе данных
- 15
- Тарифа: Free, Pro и Max
- 3
Планируете собственный веб-сервис?
Разберём задачу, путь пользователя и состав первой версии — от интерфейса до оплаты и интеграций.
Начали с задачи реальных проектов
Для Acting Gym и TalentHub требовались QR-коды ещё до выбора постоянного домена. Прямую ссылку в напечатанном коде изменить нельзя. Поэтому отделили сам QR от конечного адреса: код ведёт на короткую ссылку сервиса, а назначение редактируется в кабинете. Разработку вели с 24 июня по 17 июля 2026 года.
Перенаправление без повторной печати
Подготовили короткие идентификаторы, проверку уникальности и собственные названия ссылок. Для перенаправлений выбрали ответ 302 с запретом кэширования: обновлённый адрес используется при следующем обращении. Добавили сроки действия, UTM-метки, передачу параметров и историю изменений. Для отключённых или неизвестных кодов предусмотрели запасную страницу.
От прототипа к веб-сервису
Первую версию собрали на Cloudflare: три Worker, кэш KV, база D1 и резервные копии в R2. В ней проверили работу с клиентами, массовое создание QR, шаблоны и правила доступа. Продакшен-версию разработали на Next.js 15, React 19 и TypeScript с Neon Postgres. Для локальной разработки предусмотрели PGlite.
Кабинет для ежедневной работы
Объединили ссылки, клиентов с бренд-китами, папки, кампании и страницы link-in-bio. Контекст сохраняется: из кампании или папки можно перейти к её ссылкам и создать новую на месте. Добавили массовое включение, паузу, архивирование и изменение меток. В QR-студии настраиваются точки, углы, цвета и логотип; готовый код экспортируется в SVG и PNG с выбранным оформлением.
Аналитика размещений
Запись скана отделили от перенаправления. Подготовили географию по странам и городам, каналы, устройства, браузеры, операционные системы и популярные коды. Добавили фильтры периода, отсев ботов, выгрузку графиков в PNG и экспорт CSV и JSON. Исходный IP заменяется хешем с солью. Цифры в демонстрационных блоках лендинга иллюстрируют интерфейс.
Команды, API и подписки
Реализовали организации, приглашения, роли, восстановление пароля и API-ключи. Публичный REST API позволяет создавать и получать ссылки из других систем. Для тарифов Free, Pro и Max подготовили месячную и годовую оплату в AED через Ziina, серверные лимиты и проверку подписи платёжных уведомлений. Повторное уведомление не активирует подписку дважды; возврат оплаты снимает платный тариф.
Защита и проверка сценариев
Предусмотрели защищённые сессии, их отзыв при смене пароля, одноразовые токены восстановления и ограничения попыток входа. Добавили проверку адресов назначения, защиту изменяющих запросов и CSV-экспорта. Провели два раунда ревью безопасности. Подготовили 62 автотеста, из них 11 — на полный цикл оплаты, а также ежедневные резервные копии и проверку доступности базы.
Публичная часть и следующий этап
Выпустили лендинг, блог, документацию API и страницы условий использования. Интерфейс сервиса — на английском, оплата — в дирхамах. Текущий адрес продукта — qr-redirect-vercel.vercel.app. Короткий брендовый домен ещё не подключён.
От задачи печати до собственного SaaS.
Запустили веб-сервис с управлением ссылками, редактором QR, аналитикой сканов и командным доступом. Подготовили три тарифа с оплатой в дирхамах через Ziina, публичный API, блог и документацию. Сервис работает на Vercel; собственный короткий домен остаётся следующим этапом.
Разработаем ваш цифровой продукт.
Обсудим сервис, кабинет или платформу. Определим архитектуру, дизайн и этапы запуска.
Обсудить задачу