Thomas développeur full‑stack freelance Installé entre La Réunion et la Charente‑Maritime, j'interviens partout dans le monde.

Sites, applications web, applications mobiles, logiciels et bots sur mesure. De la maquette à la mise en production.

Je codais avant l'IA

Mon compte GitHub date de novembre 2016. ChatGPT est arrivé six ans plus tard. Entre les deux, j'ai appris comme on apprenait à l'époque : la documentation, Stack Overflow, et des bots Discord qui plantaient à deux heures du matin parce qu'il manquait un await.

Je le précise parce qu'aujourd'hui n'importe qui peut générer un site en une soirée. Ce qui ne se génère pas, c'est le réflexe de se demander ce qui se passe quand la base de données tombe, ou quand quelqu'un colle du HTML dans un formulaire.

J'utilise l'IA, évidemment. Elle accélère ce que je savais déjà faire. Mais je relis tout ce que je livre, je le comprends, et c'est moi qui réponds quand ça casse.

  1. 2016

    J'ouvre mon compte GitHub. Premiers scripts, premiers bots pour des serveurs Discord.

  2. 2022

    ChatGPT sort en novembre. J'ai déjà six ans de code derrière moi, et des projets en production.

  3. Aujourd'hui

    L'IA fait partie de mes outils. Elle ne remplace ni la relecture, ni la responsabilité de ce que je livre.

Projet

J'ai commencé à travailler pour de vrais clients à la fac, vers 2021 : entreprises, streamers, associations, particuliers. Des dizaines de projets depuis, mais la plupart restent derrière une porte fermée, outils internes ou logiciels sur mesure que le client garde pour lui. Celui-ci, j'ai le droit de le montrer. Alors je le raconte en entier : d'où il vient, ce que j'ai livré, et comment c'est construit. Le site est en ligne, allez voir.

Site web

IFME

Site public et CMS sur mesure de l'Institut Français des Mondes Eurasiatiques, un institut de recherche installé à Paris. Sept langues, un back-office complet pour les articles, les événements et la newsletter, la gestion des adhérents branchée sur HelloAsso, et l'infrastructure qui va avec, jusqu'au serveur.

Client
IFME, Institut Français des Mondes Eurasiatiques (Paris)
Rôle
Développement full-stack : CMS sur mesure, gestion des adhérents, infrastructure de production
Stack
Next.js 16, React 19, MongoDB, Docker, Nginx
En ligne
ifmeurasia.org

Le contexte

L'IFME est un institut de recherche indépendant installé à Paris, porté par une association et des bénévoles. Ses chercheurs publient des analyses sur l'espace eurasiatique, de l'Europe à l'Asie, et l'institut organise des conférences et des rencontres.

Un site vitrine ne suffisait pas. L'équipe voulait publier elle-même des articles longs, avec notes, citations et PDF, dans sept langues, sans passer par un développeur. Elle voulait aussi savoir en un coup d'œil qui est adhérent, qui doit renouveler, et combien l'association a encaissé, sans ressaisir ce que HelloAsso sait déjà.

J'ai donc construit un CMS complet, pensé pour eux : les contenus, les événements, la newsletter, l'équipe, les candidatures, et un espace association relié à HelloAsso qui tient le fichier des membres à jour tout seul. Le site tourne sur un serveur dédié, et j'en assure la maintenance et les mises en production.

Ce qui a été livré

  1. CMS sur mesure avec rôles et permissions. Depuis un seul back-office, l'équipe gère articles, infographies, événements, bandeau d'accueil, newsletter, équipe, partenaires, offres bénévoles et candidatures, tickets et journal des modifications.
  2. Liaison HelloAsso : chaque adhésion payée arrive par webhook, est vérifiée via l'API HelloAsso (OAuth2) et crée ou met à jour le membre. Les doublons, les commandes rejouées et les remboursements sont gérés. Une resynchronisation complète reste possible d'un clic.
  3. Gestion des adhérents : fichier des membres avec recherche tolérante aux fautes, filtres par saison et type d'adhésion, fiche détaillée, export CSV et Excel. Questionnaires d'adhésion rattachés automatiquement au bon membre.
  4. Cycle de vie automatique : email de bienvenue, relance avant la fin d'adhésion, email de fin avec un lien de retour, et tableau des renouvellements (à relancer, relancés, refusés, expirés). Tableau de bord avec adhérents actifs, nouveaux, à renouveler et montant encaissé.
  5. Éditeur d'articles visuel et bilingue : import de manuscrits DOCX et ODT, images, mise en forme, aperçu du brouillon, PDF joint. Mots-clés SEO proposés à la publication via l'API DeepSeek.
  6. Newsletter complète : inscription publique, éditeur de campagne par glisser-déposer, aperçu desktop et mobile, envoi programmé, désinscription en un clic, version web de chaque campagne.
  7. Site public en sept langues (français, anglais, allemand, russe, albanais, turc, chinois), avec métadonnées, hreflang, sitemap et JSON-LD sur chaque page. Trois rubriques, recherche plein texte avec suggestions, lecture d'article avec notes en marge et PDF généré côté serveur.
  8. Centre de contrôle réservé aux développeurs : sécurité, sauvegardes, métriques, inventaire des fichiers.

Choix techniques

  • Next.js 16 (App Router) et React 19, composants serveur par défaut. Pages publiques en ISR, revalidées dès qu'un contenu change dans le back-office.
  • MongoDB avec Mongoose : recherche plein texte native, fichiers stockés en base avec un miroir sur disque, réconciliation chaque nuit.
  • Intégration HelloAsso : client OAuth2 avec jeton partagé, webhook idempotent (une commande reçue deux fois donne une seule adhésion, zéro email en double), planificateur interne démarré au boot pour les relances et les fins d'adhésion.
  • Authentification maison : sessions JWT (jose), mots de passe bcrypt, ALTCHA sur les formulaires publics, limitation par IP, verrouillage du compte après plusieurs échecs.
  • Content Security Policy stricte, en-têtes séparés pour l'admin, secrets comparés en temps constant, HTML nettoyé avant stockage.
  • Images servies en WebP avec srcset par l'optimiseur Next.js et sharp. PDF rendus par Puppeteer côté serveur.
  • Production sur un VPS Ubuntu : Docker Compose, Nginx en reverse proxy, déploiement automatique chaque nuit avec test de santé et retour arrière si ça échoue.
  • Centre de sécurité dans l'admin : collecte des logs Nginx, SSH, fail2ban et UFW, bannissement automatique des scanners synchronisé dans nftables.
  • Sauvegardes quotidiennes de la base, bundles hebdomadaires complets chiffrés hors site. Tests node --test sur l'auth, les uploads, la newsletter et les traductions.

Ce que je fais

Je travaille seul, en direct avec vous. La personne qui répond à vos messages est celle qui écrit le code.

  1. Sites et applications web

    Des sites rapides et bien référencés, des applications qui s'installent sur le téléphone, et l'interface d'administration qui va avec.

    • Sites vitrines
    • E-commerce
    • PWA
    • Back-offices

    Next.js, Astro, React, PostgreSQL

    Exemple : IFME

  2. Bots Discord et Telegram

    Inscriptions, rappels, classements, modération : je transforme ce que votre communauté fait à la main en commandes simples.

    • Commandes
    • Tableaux de bord
    • Plugins Minecraft

    discord.js, TypeScript, Supabase

  3. Logiciels desktop

    Une seule base de code pour Windows, macOS et Linux, avec une interface moderne et des mises à jour simples.

    • Windows
    • macOS
    • Linux

    Rust, Vue, TypeScript

  4. API, automatisation et suivi

    Je connecte vos outils entre eux, j'audite le code existant et je m'occupe des mises à jour une fois le projet livré.

    • Webhooks
    • Tâches planifiées
    • Audit
    • Maintenance

    Node.js, Docker, PostgreSQL

Compétences

TypeScript au quotidien, Java et Python quand le projet le demande. Côté front, j'ai un faible pour Next.js et Astro.

Langages

Au quotidien

Front, back, bots, outils

  • TypeScript
  • JavaScript

À l'aise

Projets complets en production

  • Java
  • Python

En projet

Quand le besoin l'impose

  • C#
  • Kotlin

Notions

Lecture et maintenance

  • PHP

Outils et frameworks

Next.js

Applications et sites dynamiques

Préféré

Astro

Sites rapides, comme celui-ci

Préféré
React
Vue.js
Nuxt
Node.js
Tailwind CSS
PostgreSQL
Supabase
Docker
Git
Bash

Et autour du code

Gestion de projetSEO et référencementPerformance webUI et UXSécuritéTests et débogageDocumentationDéploiement et CI/CDRelation client

À propos

Je code depuis plus de sept ans. D'abord pour moi, puis pour des communautés Discord, des associations et des clients qui avaient besoin d'un outil précis, pas d'une usine à gaz.

Je suis installé entre La Réunion et la Charente-Maritime, et je travaille avec des clients partout dans le monde. Un appel, un écran partagé, et le projet avance, quel que soit le fuseau horaire.

Basé à
Entre La Réunion et la Charente-Maritime
Langues
Français, créole, anglais
Missions
Partout dans le monde, à distance ou sur place
Expérience
Plus de 7 ans de code
Heure locale
--:-- à Saint-Pierre (UTC+4)
Carte de La Réunion : Saint-Pierre, sur la côte sud-ouest Piton de la Fournaise Saint-Denis Saint-Paul Saint-Benoît Saint-Pierre 10 km N
Saint-Pierre, La Réunion. 21°20′ S, 55°28′ E.

Contact

Je suis disponible pour de nouveaux projets. Décrivez votre besoin, même en quelques lignes.