Comment je travaille

Sur mes projets solo, je cadre, l'IA code, je teste en réel et je garde la main sur ce qui part en production. Les règles ci-dessous décrivent ce workflow, et la façon dont je l'adapte en équipe.

Documentation par projet

Notion est la source de vérité produit : vision, roadmap, décisions actées, questions en suspens. Rien n'est codé avant que le plan soit validé.

Dans le dépôt, cinq fichiers Markdown vivent avec le code et sont mis à jour à chaque étape. Ils donnent à l'IA la mémoire qu'elle n'a pas d'une session à l'autre.

Partage des rôles avec l'IA, en solo

J'ai codé à la main pendant des années (Node.js, Haxe, Python, Go, SQL) et je lis tout ce que l'IA produit. Sur mes projets personnels, Claude Code fait le travail de fond : le code, la documentation, une relecture de son propre code et l'analyse statique (format, lint, typecheck). Je définis ce qui est attendu, je relis, je teste avec de vraies données et de vrais parcours, et je valide. Le cycle :

  1. L'IA code, documente, livre un code qui compile et passe l'analyse.
  2. Je teste en local, avec de vraies données.
  3. Je valide ou je remonte ce qui ne va pas, et on itère.
  4. Commit sur la branche de l'IA, seulement après validation.

Des règles pensées pour un développeur seul qui est aussi son propre utilisateur :

En équipe

Seul, je suis le seul relecteur et le seul utilisateur. En équipe, le code doit pouvoir être lu, repris et maintenu par d'autres, donc le cadre change :

Git et environnements

Base de données et migrations

Un seul Supabase auto-hébergé sur le VPS, partagé entre les projets : une base Postgres, un schéma par projet, comptes utilisateurs et stockage communs. RLS activé sur toute table exposée à l'API : la clé publique finit dans le bundle, la sécurité vient des règles par ligne.

Tout changement de schéma tient en deux fichiers :

pg_dump complet chaque nuit, gardé quatorze jours, restaurable schéma par schéma.

Hébergement et déploiement

Un VPS Ubuntu : nginx et certbot devant tout, Docker Compose pour les services, un utilisateur deploy sans sudo. Les services partagés (Supabase, n8n, blocs nginx) vivent dans un dépôt d'infrastructure à part, référence de tous les projets. Deux modèles de déploiement, un par type de dépôt :

Chaque projet garde dans son dépôt ce qui lui est propre : workflow, bloc nginx, migrations, .env.example. Les secrets GitHub portent les mêmes noms dans tous les dépôts. Une instance n8n unique, avec des workflows [dev] et [prod] par projet, versionnés dans le dépôt du projet et importés par son déploiement.

Suivi

Jira pour les tickets (epics, stories, bugs) et les versions, GitHub pour le code et les PR, Notion pour la connaissance et les décisions. Les retours utilisateurs sont collectés directement dans les apps.

Stack technique

Data
BigQuerydbtTrinoPostgreSQLMySQLSQL ServerMongoDB
Data visualisation
SupersetTableauPower BI
Développement
PythonNode.jsJavaScript / TypeScriptReactFlutter / DartGoHaxePHPC#API REST
Automatisation et IA
n8nClaude CodeGeminiHugging Face
Infrastructure
UbuntuDocker ComposenginxcertbotSupabaseGitHub ActionsGCP (Cloud Run)
Organisation
NotionJiraGitHubSlackClickUp