Halatap
Платформа для создания, отправки и экспорта современных визиток из единого дашборда: на email, по QR-коду, в формате vCard и в Apple Wallet.
Next.js 16
React 19
TypeScript
Convex
Tailwind CSS 4
Radix UI
Resend

Обзор
Halatap заменяет бумажные визитки цифровыми, которые вы действительно можете поддерживать в актуальном состоянии. Каждый пользователь получает панель управления для создания визиток на основе шаблонов, а затем делится ими любым удобным способом: через публичную ссылку, QR-код, email, скачиваемый контактный файл или карту, сохраняемую прямо в Apple Wallet. Это фулстек-приложение на Next.js и Convex с защищенными учетными записями, синхронизацией данных в реальном времени и поддержкой английского и арабского языков.
Проблема
Бумажные визитки устарели. Данные на них теряют актуальность при первой же смене должности или номера телефона, их легко потерять, и они ограничены физическим форматом. Цифровой обмен визитками на практике часто не лучше: он разрознен по ссылкам, PDF-файлам, QR-кодам и мессенджерам без единого централизованного источника. Кроме того, международным пользователям требуются визитки на нескольких языках, а корпоративным командам — возможность массовой генерации карт вместо ручного создания по одной. Halatap был создан, чтобы объединить все эти задачи в единой системе.
Моя роль и подход
Это был командный проект, и я участвовал в разработке фронтенда и нескольких сквозных функций вместе с другими разработчиками. Работа охватывала создание визиток и опыт работы с дашбордом, потоки шеринга и интеграции, которые делают визитку полезной за пределами приложения: карты wallet, экспорт vCard и доставку по email. Подход на всем протяжении заключался в том, чтобы сделать продукт модульным. Одна система шаблонов питает как превью в редакторе, так и публичную карту, а одна схема карты обслуживает как создание отдельной карты, так и массовый импорт, поэтому функции переиспользовали одни и те же основы вместо ветвления.
Стек технологий
Ключевые особенности
Галерея


Сложности и решения
Управление доступом должно было быть гибким, не становясь запутанным. Для публичных и приватных визиток требуются разные правила, поэтому шеринг моделируется с помощью специальной таблицы доступов, привязанной к визитке и получателю. Публичный доступ разрешен только когда карточка явно отмечена как публичная, и проверка живет внутри самого запроса карточки, а не разбросана по UI.
Аутентификация была разработана с нуля, а не отдана полностью сторонним сервисам, что потребовало тщательной реализации. Пароли хэшируются с солью через PBKDF2 с использованием Web Crypto API, а не хранятся в открытом виде, а токены сброса пароля ограничены по времени и аннулируются сразу после использования. Самой трудоемкой функцией оказалась генерация карт для Apple Wallet. Она требует подписи на основе сертификатов, корректной сборки ресурсов пакета, встроенного QR-кода и форматированных локализованных полей, создаваемых по запросу и возвращаемых с правильным Content-Type. Поддержка индивидуальных пользователей и команд сводилась к переиспользованию одной схемы визитки как для обычного создания, так и для отдельного пути импорта через CSV.
Результат
В конечном итоге Halatap делает то, что и должна делать цифровая визитка: единый редактируемый профиль, который работает в вебе, email, QR, контактных файлах и Apple Wallet на двух языках, как для частных лиц, так и для команд. В частности, функции Apple Wallet и массового импорта выводят платформу за рамки типичного продукта \"страницы профиля\" во что-то подходящее для реального мультиканального обмена в мире.
Столкнулись с похожей продуктовой задачей?
Расскажите о текущем состоянии продукта, необходимом результате и имеющихся ограничениях. На основе этого я сформулирую понятный первый этап.
Нанять full stack разработчика