Je crée des outils auxquels on confie son temps d’écran.
ResistGate et Amethyst sont disponibles sur le Chrome Web Store, et toutes deux gardent ce qu’elles enregistrent dans votre navigateur. Je les ai construites seul, du premier commit à la validation du store, puis chaque mise à jour depuis.
Récemment

Besoin d’une extension Chrome ou d’une app ? Les projets commencent à 2 000 $, et je réponds sous 24 heures. Envoyer un brief de projet
Trois projets et les décisions qui les ont façonnés
ResistGate
Vous ouvrez un site « juste une seconde » et vous perdez une heure. ResistGate vous fait taper un court passage avant que le site ne se charge, pour que le réflexe devienne une décision.
- Ma contribution
- Construite seul : le service worker, les règles de blocage, le défi de frappe et les réglages locaux.
- Le plus difficile
- J’enregistre l’expiration de chaque fenêtre d’accès et je réconcilie les alarmes Chrome avec elle, pour que le blocage reprenne après un redémarrage du service worker.
12 utilisateurs par semaine, surtout en Inde, au Brésil et aux États-Unis · une note de 5★ sur le Chrome Web Store
Amethyst
Huit heures dans le navigateur, et aucune idée d’où elles sont passées. Amethyst compte uniquement le temps que vous passez activement sur chaque site et garde tout l’historique sur votre ordinateur.
- Ma contribution
- Construite seul : le suivi du temps actif, le stockage local, le tableau de bord et l’export CSV.
- Le plus difficile
- Sur macOS, Chrome peut manquer l’événement de perte de focus quand vous changez d’app, donc chaque sauvegarde revérifie quelle fenêtre a le focus avant d’enregistrer du temps.
Ne compte que le temps actif. Rien ne quitte jamais votre navigateur.
Real-Time Chess
Pour les équipes qui recrutent des ingénieurs temps réel et backend. Deux navigateurs doivent s’accorder sur chaque coup, même quand l’un est en retard : le serveur vérifie donc chaque coup avant de le diffuser, et les échiquiers ne se désynchronisent jamais.
- Ma contribution
- J’ai développé le client React, le protocole Socket.IO et le stockage des salles dans PostgreSQL.
- Le plus difficile
- Le commentaire IA ne s’exécute qu’après l’acceptation du coup par le serveur, pour qu’un modèle lent ne bloque jamais la partie.
D’autres produits à utiliser dès aujourd’hui
Notes sur ce que je construis et ce qui casse
- Distribution
ChatGPT Sends ResistGate More Visitors Than Social Media Does
AI assistants sent ResistGate four times more store visitors than social media. My other two extensions got almost none. - Chrome extensions
Chrome Can Miss the Focus-Lost Event on macOS
Chrome can miss the focus-lost event when you switch apps on macOS, so Amethyst asks which window has focus before every save. - Chrome extensions
How ResistGate Keeps Sites Blocked When Chrome Stops Its Service Worker
ResistGate saves when each access window ends and rebuilds its alarms from that, so a stopped service worker can't leave a site open.

