Nouveau

🚀 Offre lancement : -33% sur l’automatisation d’articles SEO pour les 5 premiers sites !

Obtenir mes articles SEO

Suivu

Après DeaLynx, voici un autre produit que j’ai imaginé, conçu et développé seul : Suivu. Cette fois, ce n’est pas un site web mais une véritable application mobile iOS et Android, avec tout ce que ça implique côté architecture, synchronisation et infrastructure.

Suivu est une application de suivi de séries et de films, pensée comme une alternative française à TV Time. Le timing n’est pas un hasard : TV Time ferme ses portes, et des millions d’utilisateurs cherchent où migrer leur historique de visionnage sans tout perdre.

Le problème que je voulais résoudre

Quand on suit une dizaine de séries en parallèle, on finit toujours par se demander « j’en étais où déjà ? ». Et à l’ère des réseaux sociaux, le moindre fil d’actualité peut spoiler un épisode qu’on n’a pas encore vu. Je voulais une application qui garde la trace de chaque épisode vu, prévienne des nouvelles sorties, et protège systématiquement des spoilers, tout en respectant réellement les données de ses utilisateurs : zéro publicité, zéro tracker, RGPD strict.

Ce que fait Suivu

  • Suivi épisode par épisode, avec progression calculée automatiquement et check-in en un geste
  • Calendrier des sorties, abonnable depuis un calendrier externe (flux iCal), avec notifications de nouvel épisode
  • Import complet de l’historique TV Time, mais aussi Trakt, Simkl ou CSV, avec résolution manuelle des correspondances ambiguës
  • Protection anti-spoiler transverse : synopsis, réactions et commentaires restent voilés tant que l’épisode n’est pas marqué comme vu
  • Une dimension sociale entre amis : activité, comparaison de progression, suivi partagé d’une série à deux avec protection anti-avance
  • Des statistiques de visionnage et une rétrospective annuelle

Le vrai défi technique : le hors-ligne d’abord

Une application de suivi doit rester utilisable dans le métro, sans réseau, et ne jamais perdre une donnée. J’ai donc bâti l’app en « offline-first » : toutes les actions s’écrivent immédiatement dans une base SQLite locale et l’interface réagit instantanément, la synchronisation avec le serveur se faisant en arrière-plan, de façon invisible.

Pour que ça tienne la route, toutes les écritures passent par une seule et même voie : chaque mutation est identifiée par un ULID généré côté client, ce qui rend l’opération idempotente (un rejeu ne crée jamais de doublon) et permet une résolution de conflit déterministe, épisode par épisode. Le catalogue, lui, n’est jamais interrogé directement depuis l’app : il provient de l’API TMDB, mise en cache côté serveur.

L’import, une fonctionnalité à part entière

Récupérer proprement un historique TV Time est plus délicat qu’il n’y paraît : il faut faire correspondre des milliers de titres à un catalogue tiers, gérer les homonymes, les remakes, les années. J’ai développé des parseurs dédiés (TV Time, Trakt, Simkl, CSV) dans un module métier partagé et fortement testé, avec un matching de titres basé sur la recherche floue de PostgreSQL (pg_trgm) et une interface de résolution manuelle pour les cas ambigus. Le traitement se fait de façon asynchrone via une file de jobs.

La stack

Suivu est un monorepo full-stack, entièrement en TypeScript strict (pnpm workspaces + Turborepo) :

  • Application mobile en React Native et Expo (Expo Router, SQLite + Drizzle, TanStack Query, Reanimated), avec un design system maison, sans kit UI tiers
  • API en Fastify sur Node.js, avec Better Auth, Drizzle ORM et des schémas Zod qui servent de contrat et génèrent l’OpenAPI
  • PostgreSQL 16 pour les données, Redis et BullMQ pour les files de jobs (rafraîchissement du catalogue, notifications, imports)
  • Intégrations : TMDB (catalogue), RevenueCat (abonnement Premium), Expo Push (notifications), Brevo (e-mails)
  • Déploiement Docker Compose sur VPS et CI/CD GitHub Actions : build de l’image, publication sur le registre, déploiement automatique et health check à chaque push

Le résultat

Suivu est une application aboutie, du produit à l’infrastructure : app mobile iOS et Android, API, site vitrine et pages légales, le tout en français comme en anglais. Elle arrive prochainement sur l’App Store et le Google Play. C’est, avec DeaLynx, le projet qui illustre le mieux ma capacité à porter un produit de bout en bout, seul.

À découvrir ici : https://suivu.fr

Besoin d'un Développeur Web Freelance ?

Vous avez une question ? Un projet web ? Ce sera avec plaisir d'examiner votre demande.

Contactez-moi !