Aller au contenu

Stack technique

SmartTab Organizer est une extension navigateur cross-browser (Chromium MV3 et Firefox MV2), entièrement écrite en TypeScript. Aucune partie de l’application ne dépend d’un serveur ou d’un service tiers : la totalité du code s’exécute dans le navigateur.

CoucheTechnologie
Build et packagingWXT (framework d’extensions multi-cibles)
UIReact 19, Radix Themes et Radix Primitives
Types et validationTypeScript strict, Zod pour les schémas runtime
Tests unitairesVitest + Testing Library
Tests E2EPlaywright (Chrome MV3)
StorybookStorybook 8 + addon-a11y et test-runner avec axe-core
DocumentationAstro Starlight (ce site)
Lint et formatESLint, Prettier
NavigateurManifestStatut
ChromeMV3Cible principale
Edge, Brave, Arc, Opera (basés Chromium)MV3Compatible (même artefact que Chrome)
VivaldiMV3Partiel · le groupage natif n’est pas pris en charge. Déduplication et sessions fonctionnent.
FirefoxMV2Compatible (cibles pnpm build:firefox, pnpm zip:firefox)

Les API navigateur sont accédées via wxt/browser, qui normalise les différences entre chrome.* et browser.*. L’extension utilise un sous-ensemble qui existe sur les deux : browser.tabs, browser.tabGroups, browser.storage, browser.action / browser.browserAction, browser.notifications, browser.scripting.

BackendContenu
browser.storage.localRègles de domaine, paramètres, sessions (pinned, active, archived), workspaces, catégories, préférences UI (état déplié, etc.)
browser.storage.sessionCarte profil-fenêtre, brouillons de session, garde anti-réentrance d’édition

Aucun cookie. Aucune requête réseau autre que celles du navigateur lui-même.

Voir Architecture pour un pointeur sur les entry points, les modules background et les hooks centraux.

Le dépôt accueille les contributions. Les conventions du projet (logger, accessibilité, i18n, Storybook, style d’écriture) sont décrites dans CLAUDE.md. Les guidelines pour ajouter un pack ou un preset vivent dans src/data/packs/README.md et public/data/presets.json.