Le terrain | Ce que je livre
Je prends un produit web de bout en bout : le modèle de données, l’API, l’interface, les tâches planifiées et le déploiement. En freelance sous la marque FilouTech, j’ai livré des SaaS en Laravel et Vue 3, des API Node.js en TypeScript et les back-offices Next.js qui permettent aux équipes du client de tout gérer sans développeur.
Le parcours a commencé côté web, en PHP et Symfony chez MAPAdirect, puis avec un module de synchronisation entre deux outils métier chez Neofutur. Je suis passé depuis à Laravel, Vue et Node.js. J’ai gardé l’habitude de livrer par étapes et de tester d’abord ce qui casserait en production.
Le matériel | Mes habitudes techniques
- Laravel : architecture par domaine métier, API REST versionnée, Sanctum, files d’attente et planificateur, Laravel Cashier pour les abonnements Stripe.
- Vue 3 et TypeScript : Pinia, routes typées, contrôle d’accès appliqué à la fois au menu, au routeur et aux routes de l’API.
- Node.js : Express ou Fastify en TypeScript strict, validation des entrées avec Zod, PostgreSQL avec Prisma, WebSockets pour le temps réel.
- Next.js pour les back-offices : modération, édition des contenus, gestion des utilisateurs, statistiques agrégées.
- La mise en production : images Docker, Docker Compose, Caddy ou Nginx, intégration continue GitHub Actions, environnements de développement, de préproduction et de production séparés.
Les obstacles | Ce que la production m’a appris
Isoler les données de chaque établissement dans une base unique, sans paquet multi-locataires : un identifiant sur chaque donnée, un filtre global posé par un trait Eloquent et des tests d’isolation pour chaque modèle.
Paginer un journal avec un curseur qui porte sa propre clé de tri : supprimer la dernière ligne affichée ne coupe plus l’historique. Et retenir au passage qu’un test vert ne prouve rien si le double de test ignore la contrainte réelle.
Garder la page d’entrée d’une application Vite hors du cache, et les fichiers versionnés en cache long : plus de boutons morts après un déploiement.