
250 000 utilisateurs actifs chaque mois, Jobs That Makesense
"On avait une infrastructure technique complexe et des routes API qui n'existaient pas encore. firstapp ne s'est pas contenté d'attendre qu'on leur livre les clés, ils ont retroussé leurs manches et ont construit avec nous. En 3 mois, on avait une app qui tenait la route sur 250 000 utilisateurs."
250 000
utilisateurs actifs par mois
3 mois
de livraison
Makesense : le plus grand incubateur de France passe sur mobile
Jobs That Makesense c'est la plateforme de référence pour trouver un emploi à impact en France. Déjà bien établie sur le web, elle attirait des centaines de milliers d'utilisateurs chaque mois. Jean-Christophe, Head of Jobs chez Makesense, voulait aller plus loin : offrir une expérience mobile native à une communauté qui méritait mieux qu'un site responsive.
Le défi n'était pas de convaincre les utilisateurs, ils étaient déjà là. Le défi, c'était technique. Et il était double.
Le vrai défi : s'intégrer dans un système qui tourne déjà, sans rien casser
La plupart des projets d'application mobile partent d'une page blanche. Pas celui-là.
Jobs That Makesense reposait sur une infrastructure Firebase en production, active, avec une base Firestore qui alimentait déjà un service web utilisé par 250 000 personnes chaque mois. Des collections structurées, des règles de sécurité en place, des données réelles en permanence en mouvement. Un écosystème vivant, pas un environnement de test qu'on peut se permettre de malmener.
Il fallait venir se brancher dessus proprement. Sans modifier ce qui fonctionnait déjà. Sans créer de régression sur le web pendant qu'on construisait le mobile. Sans repartir de zéro sur des fondations qui n'avaient pas à être refaites.
Et par-dessus ça : toutes les routes API nécessaires à l'app mobile n'existaient pas encore côté backend.

Comment on a créé l'application mobile Jobs That Makesense en 3 mois
Audit de l'architecture Firestore avant d'écrire la moindre ligne de code
La première étape n'était pas de coder, c'était de comprendre ce qui existait. On a audité l'architecture Firestore en place : structure des collections, règles de sécurité, indexation, volume de documents, patterns d'écriture et de lecture déjà en production.
L'objectif : cartographier précisément ce qu'on pouvait consommer directement depuis l'app mobile, ce qui nécessitait une transformation, et ce qui manquait complètement. Cet audit a évité les mauvaises surprises en cours de développement et posé des bases claires pour ne pas toucher à ce qui n'avait pas à être touché.
Co-construction des Cloud Functions REST manquantes
Plusieurs endpoints nécessaires à l'app mobile n'existaient pas encore dans le backend. Plutôt que de bloquer ou de contourner avec des workarounds fragiles, on a travaillé main dans la main avec l'équipe technique de Makesense pour co-construire les routes manquantes directement dans Firebase Cloud Functions.
Chaque endpoint REST a été défini, testé et validé conjointement avec une logique claire : ce qu'on construisait devait servir l'app mobile immédiatement, et rester réutilisable pour les évolutions futures de la plateforme web. Pas de dette technique créée pour tenir le délai, des routes propres, documentées, versionnées, pensées pour durer.
Synchronisation temps réel via Firestore listeners
L'enjeu majeur : garantir la cohérence des données entre le web et le mobile à chaque instant. Un utilisateur qui postule depuis son bureau sur le web doit voir sa candidature apparaître sur son mobile immédiatement, sans délai, sans doublon, sans rechargement manuel.
On a implémenté cette synchronisation via les Firestore real-time listeners. Chaque document pertinent pour l'utilisateur, candidatures, offres sauvegardées, statuts, est écouté en temps réel grâce aux snapshots Firestore : dès qu'un document est modifié côté web, Firestore pousse le changement vers tous les clients abonnés en quelques millisecondes. L'app mobile et le web partagent la même source de vérité, en temps réel, sans aucune logique de polling à maintenir.
Authentification partagée entre le web et l'app mobile
Les utilisateurs avaient déjà un compte web. Hors de question de leur demander de créer un nouveau compte ou de ressaisir leurs informations sur mobile. On a mis en place un système d'authentification basé sur le partage du Firebase Auth token entre la session web et l'application mobile : l'utilisateur s'identifie une fois, son token est reconnu des deux côtés, son profil et ses données sont accessibles immédiatement. Zéro friction à l'adoption, la communauté existante pouvait basculer sur l'app en quelques secondes.
Push notifications via Firebase Cloud Messaging
Une plateforme d'emploi à impact sans notifications, c'est une opportunité manquée. On a intégré Firebase Cloud Messaging pour envoyer des notifications push ciblées : nouvelle offre correspondant aux critères de l'utilisateur, mise à jour du statut d'une candidature, relance personnalisée. FCM s'intègre nativement dans l'écosystème Firebase déjà en place, pas de service tiers à brancher, pas de token supplémentaire à gérer, une cohérence parfaite avec le reste de la stack.
Flutter : une contrainte client devenue un atout
Makesense avait une exigence technique claire : l'app devait être développée en Flutter. Pas notre choix, leur demande. Et c'est exactement le genre de contrainte qu'on sait absorber.
Flutter est le framework de Google qui compile vers du code natif iOS et Android depuis une seule codebase Dart. Pas de WebView, pas de bridge JavaScript : du vrai natif sur les deux plateformes, avec des performances au niveau des apps développées en Swift ou Kotlin. S'adapter au choix technologique du client sans perdre en qualité ni en vitesse de livraison, c'est une compétence à part entière. On l'a prouvé ici en 3 mois sur une base de 250 000 utilisateurs.
Les résultats
- 250 000 utilisateurs actifs par mois sur l'app
- Livraison en 3 mois sur une infrastructure Firebase existante en production
- iOS & Android simultanément en Flutter sur demande et contrainte client
- Architecture Firestore avec real-time listeners, synchro web/mobile instantanée
- Cloud Functions REST co-construites et réutilisables pour les évolutions futures
- Firebase Auth partagé, zéro friction à l'adoption pour les utilisateurs existants
- Firebase Cloud Messaging, notifications push natives intégrées à la stack
- Zéro interruption du service web pendant tout le développement
Ce qu'on a appris sur l'intégration mobile dans un système existant
Tous les projets ne partent pas de zéro. Certains partent d'une infrastructure en production, d'une communauté déjà constituée, et d'une base de données qui tourne à plein régime. Dans ce cas, le rôle de firstapp n'est pas de réinventer, c'est d'auditer, d'intégrer, de co-construire, et de livrer vite sans casser ce qui fonctionne déjà.
S'adapter à la stack du client. Travailler dans ses contraintes. Livrer dans ses délais. C'est ça, un vrai partenaire technique.


