- App mobile
- Web
- SaaS B2B
Besta
Une plateforme de billetterie et de découverte d'événements, sur mobile et sur le web, avec un back-office pour les professionnels.
- Rôle
- Cofondateur, développeur full-stack
- Période
- Depuis 2024
- Équipe
- Trois associés
- Plateformes
- iOS, Android et web

+15 000téléchargements

Le contexte
Un produit lancé de zéro, à trois.
Besta est née en 2024 de l'envie de rendre la découverte d'événements plus simple : trouver ce qui se passe près de chez soi, acheter sa place en quelques secondes, et donner aux organisateurs un outil pour tout gérer.
Avec mes deux associés, nous avons tout construit nous-mêmes, de l'idée à la mise en production sur les stores. J'ai porté le développement full-stack, sur le mobile, le web et le back-end.
Ce que j'ai fait
Du pixel à la base de données
- 01
App mobile
Application iOS et Android en React Native et Expo : découverte d'événements, carte, achat de billets.
- 02
Site web
Version web en Next.js et React, en TypeScript, avec une interface Tailwind et shadcn/ui.
- 03
Back-office B2B
Gestion des comptes pros, des établissements, des événements et des droits d'accès.
- 04
Billetterie
Tarifs, parcours d'achat, paiements et abonnements Stripe, synchronisés par webhooks.
Architecture
Trois interfaces, une seule base
Le mobile, le site et le back-office partagent la même base de données et les mêmes règles de validation.
1 · Interfaces
- App iOS et AndroidReact Native et Expo
- Site webNext.js
- Back-office B2BNext.js et shadcn/ui
2 · Logique serveur
- Validation partagéeSchémas Zod communs au front et au back
- Droits d'accèsRôles par établissement
- Commandes et billetsPilotés par les webhooks Stripe
3 · Données et services
- PostgreSQLPrisma, hébergé sur Supabase
- StripePaiements et abonnements
- ResendEmails transactionnels
- Google MapsCarte des événements
Zoom technique
Une billetterie fiable, même quand le réseau ne l'est pas.
Un paiement validé doit toujours donner un billet, et un paiement échoué ne doit jamais en créer. Les webhooks Stripe synchronisent chaque transaction avec la base, pour que l'état des commandes reste juste quoi qu'il arrive côté client.
- 1Choix du billetTarifs et disponibilités lus en temps réel
- 2Paiement StripePaiement ou abonnement côté Stripe
- 3Webhook reçuÉvénement vérifié et traité une seule fois
- 4Billet émisCommande mise à jour, confirmation par email
Les défis
Ce qui rendait le projet difficile
Un même produit sur trois plateformes
iOS, Android et web devaient offrir la même expérience, avec une petite équipe et sans dupliquer le travail.
Ma réponse
React Native avec Expo pour le mobile, Next.js pour le web, et des schémas de validation partagés.
Des paiements sans erreur
Un billet ne doit jamais être émis sans paiement, ni un paiement rester sans billet, même en cas de coupure.
Ma réponse
Webhooks Stripe vérifiés et idempotents, qui pilotent l'état des commandes côté serveur.
Des droits d'accès fins
Organisateurs, établissements et membres d'équipe n'ont pas tous accès aux mêmes événements ni aux mêmes données.
Ma réponse
Un modèle de rôles par établissement, appliqué dans l'API et dans le back-office.
Décisions techniques
Les choix, et pourquoi
- Expo
- Un seul code pour iOS et Android, des builds et des mises à jour simplifiées pour une équipe de trois.
- Next.js
- Site public bien référencé et back-office dans le même framework, avec le même langage que le mobile.
- PostgreSQL + Prisma
- Des données très relationnelles (événements, tarifs, commandes, droits) et un schéma typé de bout en bout.
- Supabase
- Base PostgreSQL managée, stockage et outils prêts à l'emploi pour avancer vite sans gérer l'infrastructure.
- Zod + SWR
- Validation des données partagée entre front et back, et cache côté client pour une interface réactive.
Le parcours du projet
- Mai 2024Lancement du projetPremière idée, maquettes et choix de la stack avec mes associés.
- Déc. 2024Première version en lignePublication des apps sur les stores et ouverture de la billetterie.
- Oct. 2025Création de la SAS BestaLe projet devient une société, avec mes deux associés.
- Aujourd'huiPlus de 15 000 téléchargementsLe produit continue d'évoluer, et Besta réalise aussi des apps pour des clients.
Résultats
- téléchargements
- +15 000
- plateformes : iOS, Android et web
- 3
- événements publiés
- +3 000
Ce que j'en retiens
Porter un produit de bout en bout, c'est arbitrer en permanence entre vitesse et solidité. Besta m'a appris à livrer vite sans fragiliser ce qui touche à l'argent des utilisateurs.
Stack
Les outils du projet
- React Native
- Expo
- Next.js
- React
- TypeScript
- Prisma
- PostgreSQL
- Supabase
- Stripe
- Tailwind CSS
- shadcn/ui
- Zod
- SWR
- Resend
- Google Maps