Muhammad Arslan
Нанять меня
Назад к проектам

Halatap

Платформа для создания, отправки и экспорта современных визиток из единого дашборда: на email, по QR-коду, в формате vCard и в Apple Wallet.

Роль: Front-end and feature engineer (multi-developer team)Сроки: 2025-2026Тип: Full-stack web app

Next.js 16

React 19

TypeScript

Convex

Tailwind CSS 4

Radix UI

Resend

Интерактивный предварительный просмотр цифровой визитки Halatap с демонстрационным профилем

Обзор

Halatap заменяет бумажные визитки цифровыми, которые вы действительно можете поддерживать в актуальном состоянии. Каждый пользователь получает панель управления для создания визиток на основе шаблонов, а затем делится ими любым удобным способом: через публичную ссылку, QR-код, email, скачиваемый контактный файл или карту, сохраняемую прямо в Apple Wallet. Это фулстек-приложение на Next.js и Convex с защищенными учетными записями, синхронизацией данных в реальном времени и поддержкой английского и арабского языков.

Проблема

Бумажные визитки устарели. Данные на них теряют актуальность при первой же смене должности или номера телефона, их легко потерять, и они ограничены физическим форматом. Цифровой обмен визитками на практике часто не лучше: он разрознен по ссылкам, PDF-файлам, QR-кодам и мессенджерам без единого централизованного источника. Кроме того, международным пользователям требуются визитки на нескольких языках, а корпоративным командам — возможность массовой генерации карт вместо ручного создания по одной. Halatap был создан, чтобы объединить все эти задачи в единой системе.

Моя роль и подход

Это был командный проект, и я участвовал в разработке фронтенда и нескольких сквозных функций вместе с другими разработчиками. Работа охватывала создание визиток и опыт работы с дашбордом, потоки шеринга и интеграции, которые делают визитку полезной за пределами приложения: карты wallet, экспорт vCard и доставку по email. Подход на всем протяжении заключался в том, чтобы сделать продукт модульным. Одна система шаблонов питает как превью в редакторе, так и публичную карту, а одна схема карты обслуживает как создание отдельной карты, так и массовый импорт, поэтому функции переиспользовали одни и те же основы вместо ветвления.

Стек технологий

ФреймворкNext.js 16 (App Router) with React 19 and TypeScript
БэкендConvex for the real-time database, queries, and mutations
Стилизация / UITailwind CSS 4 with Radix UI primitives
Авторизацияcustom email/password plus Google OAuth
EmailResend, through the Convex integration
Карты Walletpasskit-generator with node-forge for certificate signing
Дополнительные возможностиJotai for local state, Framer Motion for transitions, react-qr-code, Sonner for notifications

Ключевые особенности

Конструктор визиток на основе шаблоновнабор шаблонов, в которых предпросмотр и итоговая публичная визитка строятся на одних и тех же компонентах, благодаря чему результат полностью совпадает с макетом.
Дашборд для нескольких визитоксоздание, редактирование, дублирование, удаление и отправка любого количества визиток из одного интерфейса.
Публичный и приватный доступпубличные визитки открываются по ссылке; доступ к приватным визиткам ограничен конкретными email-адресами получателей и контролируется на бэкенде.
Отправка по emailотправка приглашения с визиткой через Resend с прикрепленной ссылкой и контекстом.
Карты для Apple Walletгенерация подписанного PKPass с индивидуальными цветами визитки, QR-штрихкодом для перехода по публичной ссылке и локализованными полями.
экспорт в vCardскачивание контактных данных, которые попадают прямо в адресную книгу телефона.
Массовая загрузка через CSVимпорт множества визиток одновременно с сопоставлением полей идентификации, ссылок на соцсети и изображений для каждой строки.
Двуязычная поддержкаанглийская и арабская версии ключевых полей, корректно отображаемые как в интерфейсе, так и в создаваемых картах Wallet.

Галерея

Редактор визиток Halatap с демонстрационным профилем и контактной информацией
Редактор ссылок на соцсети Halatap с примером URL веб-сайта

Сложности и решения

Управление доступом должно было быть гибким, не становясь запутанным. Для публичных и приватных визиток требуются разные правила, поэтому шеринг моделируется с помощью специальной таблицы доступов, привязанной к визитке и получателю. Публичный доступ разрешен только когда карточка явно отмечена как публичная, и проверка живет внутри самого запроса карточки, а не разбросана по UI.

Аутентификация была разработана с нуля, а не отдана полностью сторонним сервисам, что потребовало тщательной реализации. Пароли хэшируются с солью через PBKDF2 с использованием Web Crypto API, а не хранятся в открытом виде, а токены сброса пароля ограничены по времени и аннулируются сразу после использования. Самой трудоемкой функцией оказалась генерация карт для Apple Wallet. Она требует подписи на основе сертификатов, корректной сборки ресурсов пакета, встроенного QR-кода и форматированных локализованных полей, создаваемых по запросу и возвращаемых с правильным Content-Type. Поддержка индивидуальных пользователей и команд сводилась к переиспользованию одной схемы визитки как для обычного создания, так и для отдельного пути импорта через CSV.

Результат

В конечном итоге Halatap делает то, что и должна делать цифровая визитка: единый редактируемый профиль, который работает в вебе, email, QR, контактных файлах и Apple Wallet на двух языках, как для частных лиц, так и для команд. В частности, функции Apple Wallet и массового импорта выводят платформу за рамки типичного продукта \"страницы профиля\" во что-то подходящее для реального мультиканального обмена в мире.

Столкнулись с похожей продуктовой задачей?

Расскажите о текущем состоянии продукта, необходимом результате и имеющихся ограничениях. На основе этого я сформулирую понятный первый этап.

Нанять full stack разработчика
Заполнить бриф проекта
Все проектыСледующий проектMLZ-Advanced
Halatap: Платформа цифровых визиток с поддержкой Apple Wallet и vCard | Muhammad Arslan