Produits maison

Des réalisations que je construis et exploite moi-même

Ce sont mes propres produits, pas des missions clients. Ils sont la preuve publique la plus claire de ma façon de travailler : j’assume leur sécurité, leurs mises à jour et leurs pannes.

Clacks

En Ligne

Passerelle Email pour Comptes Legacy

"Ce n'est pas le message qui compte. C'est de l'envoyer."

— GNU Terry Pratchett

Une application basée sur Symfony qui fait le pont entre les comptes email POP3 et IMAP et Gmail. Interroge les serveurs de messagerie legacy et transfère les messages en toute sécurité directement dans votre boîte de réception Gmail — pas de stockage, pas de délais, juste une livraison transparente avec une compatibilité complète des filtres et des règles.

Fonctionnalités Clés

Support POP3 & IMAP
Interrogation basée sur des sockets PHP purs sans dépendance ext-imap
Intégration Gmail API
Utilise Gmail messages.import pour une compatibilité native avec les filtres
Transmission Sécurisée
Le contenu des messages passe directement vers Gmail et n’est jamais stocké
Gestion Multi-Comptes
Connectez plusieurs comptes legacy à une ou plusieurs destinations Gmail
Tableau de Bord AdminLTE
Interface web moderne pour la gestion des comptes et la surveillance

Stack Technique

Symfony 7 PHP 8.2+ Gmail API libsodium AdminLTE 3 Webpack Encore MariaDB

Étude de cas

Problème
Faire arriver dans Gmail le courrier d’anciens comptes POP3 et IMAP, pour que les filtres, les libellés et la détection du spam de Gmail s’y appliquent — comme s’il y était arrivé directement.
Mon rôle
Je l’ai conçu, construit et je l’exploite : les clients de messagerie, l’intégration Gmail, le chiffrement des identifiants, la planification et les offres payantes.
Contraintes
Chaque autorisation Gmail nécessaire est classée « restreinte » par Google, ce qui implique une revue de sécurité et l’obligation de justifier chaque autorisation demandée. Et un service qui touche au courrier des gens doit en conserver le moins possible.
Décisions
Importer plutôt que transférer : les messages entrent via messages.import de Gmail, afin que les filtres et la détection du spam fonctionnent normalement. Demander cinq autorisations précises, et délibérément pas gmail.readonly — l’application ne lit jamais un message Gmail existant. Ne conserver aucun contenu de message : le courrier est récupéré et importé en une seule passe, et seules les métadonnées — expéditeur, objet, date et les identifiants qui évitent les doublons — sont conservées, puis purgées selon un calendrier de rétention. Écrire les clients POP3 et IMAP sur des sockets simples plutôt que de dépendre de l’extension IMAP de PHP. Chiffrer les secrets qui doivent être stockés, comme les mots de passe des boîtes et les jetons de rafraîchissement Gmail, sous une clé de chiffrement de clés.
Compromis
Importer exige des autorisations restreintes, et celles-ci entraînent la revue de Google. Le transfert aurait évité les deux — et cassé les filtres et libellés qui étaient tout l’intérêt.
Résultat
Un service en ligne avec des offres gratuites et payantes, qui relie des comptes POP3 et IMAP à une ou plusieurs boîtes Gmail.
Preuves
Chaque autorisation restreinte est documentée face aux appels d’API exacts qui l’utilisent, et le code a été vérifié par rapport aux critères CASA Tier 2 de Google en amont de l’évaluation officielle.

Markest

En Ligne

Pastebin Markdown Multi-Documents

"La meilleure documentation est celle que les gens lisent vraiment."

— Markest

Un pastebin markdown complet pour créer des pastes avec plusieurs documents liés, une navigation latérale et une belle expérience de lecture. Supporte les plans d'abonnement, les collaborateurs, le chiffrement côté client, les visionneuses intégrables et une API RESTful — le tout avec une internationalisation en 10 langues.

Fonctionnalités Clés

Pastes Multi-Documents
Jusqu'à 50 fichiers markdown par paste avec liens internes, navigation latérale et export ZIP
Plans d'Abonnement
Niveaux gratuits et payants via Stripe avec des limites configurables sur les pastes, le stockage et les fonctionnalités
Sécurité & Confidentialité
Chiffrement côté client, protection par mot de passe, destruction après lecture et TOTP 2FA
API RESTful
Authentification par token Bearer avec clés API, permissions et opérations CRUD complètes
Collaboration & Partage
Invitez des collaborateurs, intégrez des pastes, explorez le répertoire public et des thèmes personnalisés

Stack Technique

Symfony 7.4 PHP 8.3+ CommonMark 2.8 Stripe XChaCha20-Poly1305 MariaDB

Étude de cas

Problème
Un pastebin pour du Markdown et du HTML en plusieurs documents. Accepter du HTML signifie stocker et servir du balisage écrit par n’importe qui, sur le même site que les comptes des utilisateurs.
Mon rôle
Je l’ai conçu, construit et je l’exploite, y compris la publication, le contrôle d’accès, la collaboration et les offres payantes.
Contraintes
Les pastes HTML doivent s’exécuter tels qu’écrits, scripts compris, donc les expurger casserait la fonctionnalité. Et les règles de visibilité — public, non répertorié, protégé par mot de passe, liens signés, collaborateurs — doivent tenir sur chaque route qui sert un paste.
Décisions
Isoler plutôt qu’assainir : le HTML stocké n’est jamais rendu sur l’origine de l’application. Il n’est servi que depuis une route dédiée, sous un bac à sable Content-Security-Policy sans allow-same-origin, de sorte qu’il s’exécute sur une origine opaque, sans accès aux cookies ni aux sessions du site. Et résoudre l’accès de chaque surface qui sert un paste par un seul contrôle, afin qu’aucun contrôleur ne porte sa propre copie des règles de visibilité.
Compromis
Le HTML isolé ne peut atteindre ni la page de l’utilisateur ni le stockage du site, donc les intégrations qui attendent une origine normale ne fonctionneront pas dans un paste. Cette limite est voulue : c’est elle qui tient un script arbitraire à l’écart des comptes.
Résultat
Un pastebin multi-documents en ligne, avec des offres gratuites et payantes, une API REST, des collaborateurs et une interface en dix langues.
Preuves
Ces deux règles sont consignées comme décisions d’architecture permanentes. Le contrôle d’accès unique a été adopté après qu’un audit de sécurité a constaté des écarts entre les vérifications de visibilité des différentes routes.

Boot

En Ligne

Système d'Exploitation de Productivité Adapté au TDAH

"Teste le squelette, construis le corps, superpose l'esprit."

— Boot

Un système de productivité adapté au TDAH construit autour de la machine à états BOS (BIEEII Operating System). Boot modélise votre journée en phases structurées — activation, exécution, maintenance et arrêt — en utilisant des blocs de concentration de 90 minutes, une notation des tâches tenant compte de l'énergie et des rituels apaisants pour vous maintenir sur la bonne voie sans surcharge.

Fonctionnalités Clés

Machine à États BOS
Six états déterministes guident votre journée du démarrage au travail en profondeur jusqu'à l'arrêt nocturne, avec un contrôle d'autorité en couches
Blocs de Concentration de 90 Minutes
Conteneurs de temps structurés avec des phases de montée en puissance, de concentration principale et de refroidissement — plus journalisation des envies de changement et pause/reprise
Prévision Intelligente & Notation RAB
Classement déterministe des tâches par priorité, urgence d'échéance, correspondance énergétique, biais d'humeur, pertinence du projet et fraîcheur
Arrêt Nocturne NSIL
Séquence d'arrêt basée sur des rituels : journal d'expédition, capture de contraintes, graine du lendemain et verrouillage des entrées pour clôturer proprement votre journée
Fenêtre de Réflexion Isolée
Périodes de réflexion limitées dans le temps entre les blocs pour examiner les progrès, tenir un journal et planifier sans interrompre le flux

Stack Technique

Symfony 7 PHP 8.3+ Stripe XChaCha20-Poly1305 Google OAuth Webpack Encore MariaDB

Un problème à résoudre ?

Si cela ressemble à quelque chose que je pourrais construire, automatiser ou réparer, parlez-m’en.

Parlons de votre projet