Muhammad Arslan
Contrátame
Volver a proyectos

Halatap

Una plataforma para crear, compartir y exportar tarjetas de presentación modernas desde un único panel a correo electrónico, QR, vCard y Apple Wallet.

Rol: Front-end and feature engineer (multi-developer team)Cronograma: 2025-2026Tipo: Full-stack web app

Next.js 16

React 19

TypeScript

Convex

Tailwind CSS 4

Radix UI

Resend

Vista previa interactiva de la tarjeta digital de Halatap con una identidad de muestra

Descripción general

Halatap sustituye la tarjeta de presentación en papel por una digital que realmente puedes mantener actualizada. Cada usuario obtiene un panel para construir tarjetas a partir de un conjunto de plantillas, luego las comparte como lo exija el momento: un enlace público, un código QR, un correo electrónico, un archivo de contacto descargable o un pase guardado directamente en Apple Wallet. Es una aplicación full-stack construida con Next.js y Convex, con cuentas seguras, datos en tiempo real y soporte para inglés y árabe.

El problema

Las tarjetas de papel han envejecido mal. La información queda obsoleta en el momento en que cambia un cargo o un número de teléfono, son fáciles de perder y solo existen en un único formato físico. Compartir digitalmente no es mejor en la práctica, ya que termina fragmentado entre enlaces, archivos PDF, códigos QR y aplicaciones de mensajería sin una única fuente de verdad. Además, los usuarios internacionales necesitan tarjetas en más de un idioma, y los equipos necesitan una forma de crear muchas tarjetas a la vez en lugar de una por una. Halatap se propuso unificar todo eso en un único sistema.

Mi rol y enfoque

Este fue un proyecto en equipo y contribuí en el front end y en varias características completas junto a otros desarrolladores. El trabajo abarcó la experiencia de construcción de tarjetas y panel de control, los flujos para compartir y las integraciones que hacen que una tarjeta sea útil fuera de la aplicación: pases de wallet, exportación a vCard y entrega por correo electrónico. El enfoque en todo momento fue mantener el producto modular. Un sistema de plantillas alimenta tanto la vista previa del editor como la tarjeta pública, y un esquema de tarjeta sirve tanto para la creación de una sola tarjeta como para la importación masiva, de modo que las características reutilizaron los mismos cimientos en lugar de ramificarse.

Stack tecnológico

FrameworkNext.js 16 (App Router) with React 19 and TypeScript
BackendConvex for the real-time database, queries, and mutations
Estilos / UITailwind CSS 4 with Radix UI primitives
Autenticacióncustom email/password plus Google OAuth
Correo electrónicoResend, through the Convex integration
Pases de Walletpasskit-generator with node-forge for certificate signing
ExtrasJotai for local state, Framer Motion for transitions, react-qr-code, Sonner for notifications

Características clave

Creador de tarjetas basado en plantillasmúltiples plantillas donde la vista previa y la tarjeta pública final se renderizan a partir de los mismos componentes, por lo que lo que diseñas es exactamente lo que compartes.
Panel para múltiples tarjetascrea, edita, duplica, elimina y comparte cualquier cantidad de tarjetas desde un solo lugar.
Uso compartido público y privadolas tarjetas públicas se abren desde un enlace; las tarjetas privadas están restringidas a correos electrónicos de destinatarios específicos, controlado en el backend.
Compartir por correo electrónicoenvía una invitación de tarjeta a través de Resend con el enlace y el contexto adjunto.
Pases de Apple Walletgenera un PKPass firmado con colores específicos de la tarjeta, un código de barras QR para el enlace público y campos localizados.
exportación a vCarddescarga datos de contacto que se guardan directamente en la libreta de direcciones del teléfono.
Carga masiva por CSVimporta muchas tarjetas a la vez, mapeando campos de identidad, enlaces sociales e imágenes por fila.
Soporte bilingüeversiones en inglés y árabe de campos clave, resueltas tanto en la interfaz de usuario como en los pases generados.

Galería

Editor de tarjetas de Halatap con un perfil y detalles de contacto de muestra
Editor de enlaces sociales de Halatap con una URL de sitio web de ejemplo

Desafíos y soluciones

El control de acceso tenía que ser flexible sin convertirse en una maraña. Las tarjetas públicas y privadas necesitan reglas diferentes, por lo que el uso compartido se modela con una tabla de recursos compartidos dedicada vinculada a la tarjeta y al destinatario. El acceso público se permite solo cuando una tarjeta está explícitamente marcada como pública, y la comprobación vive dentro de la propia consulta de la tarjeta en lugar de estar dispersa por la interfaz de usuario.

La autenticación se construyó en lugar de subcontratarse por completo, lo que significó hacerla con cuidado. Las contraseñas se procesan mediante hash con PBKDF2 y salt a través de la Web Crypto API en vez de almacenarse sin formato, y los tokens de restablecimiento tienen un tiempo límite de validez y se marcan como usados una vez gastados. La característica más compleja fue la generación de pases para Apple Wallet. Requiere firma basada en certificados, los recursos empaquetados correctos, un payload de QR integrado y campos localizados formateados, todo producido bajo demanda y devuelto con el tipo de contenido correcto. Dar soporte tanto a usuarios individuales como a equipos se redujo a reutilizar un esquema de tarjeta a través de un flujo normal de creación y una vía independiente de importación por CSV.

Resultado

Halatap termina haciendo lo que una tarjeta de presentación digital debería: una identidad editable que viaja a través de web, correo electrónico, QR, archivos de contacto y Apple Wallet, en dos idiomas, tanto para particulares como para equipos. Las características de pase de wallet e importación masiva en particular lo empujan más allá del típico producto de "página de perfil" a algo que se adapta al uso compartido multicanal del mundo real.

¿Tienes un problema de producto similar?

Comparte el producto actual, el resultado que necesitas y las limitaciones que ya existen en el camino. Usaré eso para definir un primer hito razonable.

Contratar un desarrollador full stack
Inicia el brief de tu proyecto
Todos los proyectosSiguiente proyectoMLZ-Advanced
Halatap: plataforma de tarjetas de presentación digitales con Apple Wallet y vCard | Muhammad Arslan