Halatap
Una piattaforma per creare, condividere ed esportare moderni biglietti da visita da un'unica dashboard tramite email, QR, vCard e Apple Wallet.
Next.js 16
React 19
TypeScript
Convex
Tailwind CSS 4
Radix UI
Resend

Panoramica
Halatap sostituisce il biglietto da visita cartaceo con un'alternativa digitale sempre aggiornata. Ogni utente dispone di una dashboard per creare biglietti a partire da una serie di modelli, per poi condividerli secondo le necessità del momento: un link pubblico, un codice QR, un'email, un file di contatto scaricabile o un pass salvato direttamente in Apple Wallet. È un'applicazione full-stack realizzata con Next.js e Convex, dotata di account sicuri, dati in tempo reale e supporto bilingue per inglese e arabo.
Il problema
I biglietti cartacei sono invecchiati male. Le informazioni diventano obsolete nel momento stesso in cui cambiano un ruolo aziendale o un numero di telefono, sono facili da perdere ed esistono solo in un unico formato fisico. La condivisione digitale in pratica non è migliore, perché finisce per frammentarsi tra link, PDF, codici QR e app di messaggistica senza un'unica fonte di verità. Inoltre, gli utenti internazionali necessitano di biglietti in più lingue e i team hanno bisogno di un modo per creare molti biglietti contemporaneamente anziché uno alla volta. Halatap si è posta l'obiettivo di integrare tutto questo in un unico sistema.
Il mio ruolo e approccio
Questo è stato un progetto di squadra, e ho contribuito sia al front-end che a diverse funzionalità end-to-end collaborando con altri sviluppatori. Il lavoro ha coperto l'esperienza di creazione dei biglietti e della dashboard, i flussi di condivisione e le integrazioni che rendono il biglietto utile all'esterno dell'app: pass Wallet, esportazione vCard e invio di email. L'approccio adottato è stato quello di mantenere il prodotto modulare: un unico sistema di template gestisce sia l'anteprima nell'editor che il biglietto pubblico, e un singolo schema serve sia la creazione singola che l'importazione massiva, consentendo alle funzionalità di riutilizzare le medesime basi anziché ramificarsi.
Stack tecnologico
Funzionalità chiave
Galleria


Sfide e soluzioni
Il controllo degli accessi doveva rimanere flessibile senza diventare intricato. I biglietti pubblici e privati richiedono regole differenti, per cui la condivisione è modellata tramite una tabella dedicata alle condivisioni collegata al biglietto e al destinatario. L'accesso pubblico è consentito solo quando un biglietto è esplicitamente contrassegnato come tale, e la verifica è integrata nella query del biglietto stesso anziché frammentata nell'interfaccia utente.
L'autenticazione è stata sviluppata internamente anziché esternalizzata completamente, il che ha richiesto un'implementazione accurata. Le password vengono sottoposte a hashing con PBKDF2 e salt tramite la Web Crypto API anziché essere memorizzate in chiaro, mentre i token di reimpostazione hanno scadenza temporale e vengono contrassegnati come utilizzati una volta spesi. La funzionalità più complessa è stata la generazione dei pass Apple Wallet: richiede la firma basata su certificati, gli asset inclusi corretti, un payload QR integrato e campi formattati e localizzati, il tutto prodotto su richiesta e restituito con il corretto tipo di contenuto. Il supporto sia per utenti singoli che per team è stato ottenuto riutilizzando lo stesso schema di biglietto sia per il normale flusso di creazione che per un percorso separato di importazione CSV.
Risultato
Halatap adempie a quanto richiesto a un biglietto da visita digitale: un'unica identità modificabile trasferibile tra web, email, QR, file di contatto e Apple Wallet, in due lingue, sia per singoli che per team. Le funzioni relative ai pass Wallet e all'importazione massiva, in particolare, trasformano il servizio da semplice pagina profilo a strumento adatto alla condivisione multicanale in contesti reali.
Hai un problema di prodotto simile?
Condividi il prodotto attuale, il risultato di cui hai bisogno e i vincoli già presenti. Li utilizzerò per definire un primo milestone sensato.
Assumere uno sviluppatore full stack