Opale
Application de bureau qui nettoie une boîte Gmail sans jamais perdre un message important : tri local et expliqué, corbeille uniquement, rien sans confirmation.
- Rôle :
- Seul développeur
- Période :
- Depuis oct. 2026 · en cours

Le tableau de bord : ce qui peut partir, ce qui est protégé, regroupé par expéditeur.
En bref pour les recruteurs
Application de bureau Windows (Tauri, React, Rust) conçue et développée seul, qui trie sur l'ordinateur des dizaines de milliers de mails et ne propose à la corbeille que ce qui est reconnu inutile. Le projet montre un moteur de tri testé contre les faux positifs, une intégration Gmail sous quota réel, une connexion Google sécurisée et une interface soignée.
Opale est une application de bureau qui fait le ménage dans une boîte Gmail sans jamais rien perdre d'important. Elle lit les en-têtes des mails (expéditeur, objet, date, libellés), jamais leur contenu, les trie sur l'ordinateur et explique chaque proposition : pourquoi ce mail peut partir, ou pourquoi il est protégé. L'analyse se déroule en étapes affichées à l'écran : inventaire de la boîte et répartition par dossier, lecture des messages envoyés pour repérer les personnes avec qui l'utilisateur échange, lecture en priorité de ce que Gmail range dans Promotions, Réseaux sociaux, Notifications, Forums et Spam, puis du reste. Rien ne part sans confirmation : les messages choisis vont dans la corbeille Gmail, restaurables pendant 30 jours, et un nettoyage s'annule en un clic. Pendant l'analyse d'une grande boîte, l'application peut tourner en arrière-plan près de l'horloge, reprend une analyse interrompue sans relire ce qu'elle a déjà lu, et se met au rythme du quota imposé par Google.
Technologies
Vitest
Playwright
Prisma
Next.js
Claude Code
GitHub Actions
Rust
TypeScript
React
Tauri
Vite
Tailwind CSS
- Motion
PostgreSQL
Fonctionnalités
- Analyse locale des en-têtes Gmail, sans jamais lire ni envoyer le contenu des mails
- Assistant d'analyse en cinq étapes animées : inventaire, contacts, flood, reste, vérification
- Répartition de la boîte par dossier : réception, archivés, envoyés, promotions, spam
- Protection automatique des conversations, factures, messages de sécurité et étoilés
- Explication de chaque proposition, message par message
- Regroupement par expéditeur, domaine, catégorie, ancienneté, fréquence ou taille
- Nettoyage vers la corbeille Gmail uniquement, avec annulation en un clic
- Règles personnelles : toujours garder un expéditeur, ou toujours le proposer
- Fonctionnement en arrière-plan près de l'horloge, avec notification de fin
- Reprise d'une analyse interrompue sans relire ce qui a déjà été lu
- Respect du quota Gmail, avec chaque attente annoncée à l'écran
- Boîte de démonstration pour essayer sans connecter de compte
Contexte
Projet personnel né d'un besoin simple : une boîte Gmail de plus de 60 000 messages, impossible à trier à la main, et des outils existants qui demandent d'envoyer ses mails sur leurs serveurs. Opale fait l'inverse : tout se passe sur l'ordinateur, et la prudence passe avant le volume supprimé.
Architecture
Monorepo en trois parties. Un moteur en TypeScript pur (tri, protections, plan de nettoyage, exécution sous quota, simulation d'une boîte avec pannes), réutilisable ailleurs. Une application de bureau Tauri 2 : interface React 19 avec Vite, Tailwind et Motion, moteur exécuté dans un Web Worker, connexion Google gérée en Rust (PKCE, redirection locale, jeton durable rangé dans le trousseau Windows, jamais exposé à l'interface), cache local IndexedDB pour reprendre une analyse. Un serveur Next.js avec Prisma et PostgreSQL prévu pour les licences et le paiement Stripe, inutilisé tant que l'application reste personnelle.
Décisions techniques
- Tout est conservé par défaut : un mail ne part que s'il est positivement reconnu inutile, et une protection (conversation avec une vraie personne, facture, sécurité, message étoilé) l'emporte sur tout score. - Aucune suppression définitive : uniquement la corbeille Gmail, avec un journal local qui permet d'annuler. - Accès Gmail limité au strict nécessaire (lecture des en-têtes, déplacement vers la corbeille) ; aucun mail ni jeton n'est envoyé à un serveur. - Le flood d'abord : les dossiers où Gmail range le courrier de masse sont lus en premier, avec leurs conversations entières pour ne rien juger hors contexte. - Méthode « les erreurs d'abord » : chaque fonction est écrite et testée en commençant par ses cas d'échec les plus improbables.
Difficultés
Le quota de Gmail : 6 000 unités par minute et par utilisateur, 20 par mail lu, soit environ 300 mails par minute. La première version partait en rafale et se faisait refuser ; le limiteur a été repensé (petite réserve, dette pour les grosses demandes, nouvelle tentative patiente avec recul exponentiel) et testé sur une minute glissante. La confiance pendant une longue attente : analyser 60 000 mails prend plusieurs heures. L'écran est devenu un assistant en cinq étapes animées, avec compteurs en temps réel, durée restante, explication de chaque étape et annonce de chaque attente, et l'application continue en arrière-plan. Les faux positifs : un mail important proposé à la corbeille serait pire que dix newsletters oubliées. Le moteur exige des indices positifs et il est évalué sur une boîte synthétique annotée, où aucun message à conserver n'est proposé.
Résultats
Utilisée par son auteur sur sa propre boîte Gmail de plus de 60 000 messages. Plus de 330 tests automatisés (moteur, interface, Rust, serveur), dont un banc d'essai sur une boîte synthétique où aucun message à conserver n'est proposé.
Chiffres déclarés
- Plus de 330
- Tests automatisés (déclaré)
- 0
- Mails à garder proposés (banc d'essai) (déclaré)
Questions fréquentes
- Mes mails quittent-ils mon ordinateur ?
- Non. Opale lit les en-têtes directement chez Gmail depuis l'ordinateur ; aucun mail ni jeton d'accès n'est envoyé à un autre serveur.
- Opale peut-elle supprimer définitivement un mail ?
- Non. Elle ne fait que déplacer vers la corbeille Gmail, qui garde les messages 30 jours, et chaque nettoyage s'annule en un clic.
- Pourquoi l'analyse d'une grande boîte est-elle longue ?
- Google limite la lecture à environ 300 mails par minute et par utilisateur. Opale lit donc d'abord le courrier de masse, affiche la durée restante et peut tourner en arrière-plan.
