Skip to content

Web Store Submission — Extensión Arqel DevTools

Estado: preparación • Versión target: 0.8.0-rc.1 • Paquete: @arqel-dev/devtools-extensionStores: Chrome Web Store, Firefox AMO, Microsoft Edge Add-ons

Este documento describe, paso a paso, cómo preparar y enviar la extensión Arqel DevTools a las tres stores principales. No ejecutes las submissions todavía — esta guía documenta el proceso para el release final v0.8.0 (no el -rc.1).


1. Visión general

@arqel-dev/devtools-extension es una extensión MV3 (Manifest V3) diseñada para Chrome, Firefox y Edge. Al ser una herramienta dev, su flujo de submission es simple — sin permisos amplios, sin llamadas de red, sin recolección de datos (ver privacy-policy.md).

StoreURLCostoReviewAuto-update
Chrome Web Storechrome.google.com/webstore/devconsole$5 (única vez)1–3 días (hasta 7 con permisos amplios)sí, vía manifest version
Firefox AMOaddons.mozilla.org/developersgratis1–5 días (humano)sí, vía manifest version
Microsoft Edgepartner.microsoft.com/dashboard/microsoftedgegratis1–7 díassí, vía manifest version

2. Preparación de artefactos

2.1. Build local

Desde la raíz del monorepo:

bash
pnpm --filter @arqel-dev/devtools-extension build

Eso produce, en packages-js/devtools-extension/dist/:

dist/
├── chrome.zip       # bundle MV3 para Chrome/Edge
├── firefox.zip      # bundle MV3 para Firefox (manifest_version=3)
├── source.zip       # source code para AMO review (obrigatório)
└── manifests/
    ├── chrome.json
    ├── firefox.json
    └── edge.json

2.2. Validación del manifest

bash
# Chrome/Edge
pnpx web-ext lint --source-dir=packages-js/devtools-extension/dist/chrome

# Firefox
pnpx web-ext lint --source-dir=packages-js/devtools-extension/dist/firefox

web-ext lint es la herramienta oficial de Mozilla — también válida para Chrome porque MV3 es esencialmente idéntico.

2.3. Smoke test manual

Antes de enviar, carga como extensión unpacked:

  • Chrome: chrome://extensions → "Load unpacked" → apunta a dist/chrome/.
  • Firefox: about:debugging#/runtime/this-firefox → "Load Temporary Add-on" → apunta a dist/firefox/manifest.json.
  • Edge: edge://extensions → "Load unpacked" → apunta a dist/chrome/.

Verifica:

  • [ ] El panel "Arqel" aparece en DevTools.
  • [ ] En una página sin __ARQEL_DEV__, muestra "No Arqel application detected".
  • [ ] En una página con Arqel en dev, lista resources y props.
  • [ ] El tema light/dark funciona.

3. Chrome Web Store

3.1. Prerrequisitos de cuenta

  1. Crea una cuenta de desarrollador en chrome.google.com/webstore/devconsole.
  2. Paga $5 USD (única vez, no recurrente).
  3. Verifica el email y habilita 2FA en la cuenta Google.
  4. (Opcional) Configura un group publisher si quieres que toda la org arqel aparezca como publisher.

3.2. Campos requeridos del listing

CampoValor
NameArqel DevTools
Short description (máx. 132 chars)Inspecione resources, fields e props Inertia das suas aplicações Arqel direto no DevTools do navegador.
Detailed descriptionMarkdown ~500–1500 palabras: qué es, cómo instalar (pnpm add -D @arqel-dev/react/dev), cómo habilitar (window.__ARQEL_DEV__ = true), tour de las pestañas, link a docs y GitHub.
CategoryDeveloper Tools
LanguagePortuguês (Brasil) (primario) + English (secundario).
IconPNG 128×128 (en apps/docs/public/devtools-icon-128.png).
ScreenshotsMínimo 5, resolución 1280×800 (preferida) o 640×400. PNG sin transparencia.
Promotional tile (small)PNG 440×280.
Privacy policy URLhttps://arqel.dev/devtools-extension/privacy-policy (resuelve a apps/docs/devtools-extension/privacy-policy.md).
Homepage URLhttps://arqel.dev/devtools-extension.
Support URLhttps://github.com/arqel-dev/arqel/issues.
Search keywordsarqel, laravel, inertia, devtools, react, admin panel, debugging, php.

3.3. Justificación de permisos

Para cada permiso del manifest, Chrome pide justificación cuando se dispara revisión humana:

  • devtools → "Required to register a custom DevTools panel where users inspect Arqel-specific state."
  • storage → "Stores user UI preferences (theme, last-active panel) locally. Never transmitted."
  • scripting (si está presente) → "Injects a debugging bridge only in pages where the app explicitly opted in via window.__ARQEL_DEV__ = true. No-op in production."

3.4. Single purpose declaration

Chrome MV3 requiere un breve "single purpose statement":

"Provide debugging tools for developers building admin panels with the Arqel framework."

3.5. Disclosures de uso de datos

Marca cada casilla como "not collected":

  • [x] Información personalmente identificable — no recolectada
  • [x] Información de salud — no recolectada
  • [x] Información financiera — no recolectada
  • [x] Información de autenticación — no recolectada
  • [x] Comunicaciones personales — no recolectadas
  • [x] Ubicación — no recolectada
  • [x] Historial web — no recolectado
  • [x] Actividad del usuario — no recolectada
  • [x] Contenido del sitio — no recolectado

Y confirma:

  • [x] "I do not sell user data to third parties."
  • [x] "I do not use or transfer user data for purposes unrelated to my item's single purpose."
  • [x] "I do not use or transfer user data to determine creditworthiness."

3.6. Timeline de review

  • Normal: 1–3 días hábiles.
  • Extendido: hasta 7 días si se dispara revisión humana (cualquier permiso "amplio" o primera submission de la cuenta).
  • Emergencia: no hay fast-track en la Chrome Web Store.

4. Firefox Add-ons (AMO)

4.1. Cuenta

  1. Crea una cuenta en addons.mozilla.org.
  2. Verifica el email.
  3. Sin costo.

4.2. Listed vs self-hosted

  • Listed (recomendado): aparece en la búsqueda AMO, instala con 1-click, auto-update gestionado por Mozilla.
  • Self-hosted: el usuario instala vía URL .xpi. Útil si quieres tu propio ciclo de updates sin review.

Para v0.8.0 → listed.

4.3. Source code obligatorio

AMO exige source code siempre que el bundle distribuido esté minificado/transpilado. Envía dist/source.zip conteniendo:

  • package.json (con referencia al lockfile).
  • src/ (TypeScript original).
  • vite.config.ts, tsconfig.json.
  • BUILD.md con comandos exactos: pnpm install --frozen-lockfile && pnpm build.

Mozilla revisa manualmente — el build debe ser bit-for-bit reproducible desde el source enviado.

4.4. Campos del listing

Igual que Chrome con pequeñas diferencias:

  • Summary (250 chars).
  • Description (markdown, sin límite).
  • License: selecciona MIT License.
  • Categories: Developer Tools + Web Development.

4.5. Timeline de review

  • Listed: 1–5 días hábiles (revisor humano).
  • Self-hosted (signing-only): minutos a horas (automático).

5. Microsoft Edge Add-ons

5.1. Cuenta

  1. Visita partner.microsoft.com/dashboard/microsoftedge.
  2. Inicia sesión con una cuenta Microsoft (personal o Azure AD).
  3. Acepta los términos del partner program de Edge Add-ons.
  4. Sin costo.

5.2. Submission

El proceso es idéntico al de Chrome: el mismo bundle chrome.zip funciona porque Edge es Chromium. Solo re-súbelo al dashboard Edge y copia/pega los campos del listing.

5.3. Diferencias

  • Edge acepta hasta 10 screenshots (vs 5 de Chrome) — recomendamos las mismas 5.
  • Edge acepta upload de video demo (hasta 90s) — opcional pero recomendado.
  • El review es más lento (hasta 7 días hábiles).

6. Update channel — cómo shippear updates sin re-review

Tras la primera aprobación, los updates menores (bump de versión, bug fix) no disparan re-review humano si:

  1. Manifest version sin cambios: sigue MV3.
  2. Permisos inmutables: no añadir/expandir permisos respecto a la versión anterior.
  3. Host permissions inmutables: igual.
  4. Single purpose preservado: no cambiar lo que la extensión hace.

Flujo:

bash
# 1. Bump no package.json e manifest.json
# 2. Build
pnpm --filter @arqel-dev/devtools-extension build

# 3. Upload em cada dashboard
#    Chrome: dashboard → Package → Upload new package
#    Firefox: dashboard → Versions → Upload new version (com source.zip)
#    Edge: dashboard → Update → Upload new package

Las reviews automáticas aprueban en horas (Chrome/Edge) o ~1 día (Firefox).

Cambios que SIEMPRE re-disparan review humana:

  • Nuevos permissions o host_permissions.
  • Cambio en single_purpose.
  • Cambio en la URL de privacy_policy.
  • Cambio en funcionalidad core (ej., agregar una feature de red).

7. Plan de rollout v0.8.0

Cuando v0.8.0-rc.1 sea promocionado a v0.8.0 final:

  1. [ ] Bump de versión coordinado: package.json + manifest.json (Chrome, Firefox, Edge) → 0.8.0.
  2. [ ] Build de artefactos: pnpm --filter @arqel-dev/devtools-extension build.
  3. [ ] Smoke test local en Chrome, Firefox, Edge.
  4. [ ] Submission a la Chrome Web Store (primera en entrar a review por ser la más rápida).
  5. [ ] Submission a Edge Add-ons (mismo bundle).
  6. [ ] Submission a Firefox AMO (con source.zip).
  7. [ ] Esperar aprobaciones (en paralelo).
  8. [ ] Anuncio en CHANGELOG.md y en las release notes de GitHub.
  9. [ ] Actualizar apps/docs/devtools-extension/install.md con links a las tres stores.

8. Checklist final pre-submission

  • [ ] manifest.json con version, name, description, icons todo completo.
  • [ ] Política de privacidad publicada y URL públicamente accesible.
  • [ ] 5+ screenshots 1280×800 listas en apps/docs/public/devtools/screenshots/.
  • [ ] Promotional tile 440×280 lista.
  • [ ] Descripción detallada revisada (PT-BR + EN).
  • [ ] source.zip preparado para AMO con BUILD.md.
  • [ ] Build reproducible verificado (rm -rf dist && pnpm build produce los mismos zips byte-por-byte).
  • [ ] web-ext lint limpio de warnings.
  • [ ] CSP estricto confirmado — sin unsafe-eval, sin unsafe-inline.
  • [ ] Sin código eval, Function() o inyección dinámica de scripts.
  • [ ] La política de privacidad enlaza de vuelta a docs e issues.

Última revisión: 2026-05-01 • Owner: mantenedores de Arqel.

Licencia MIT — construido con Inertia + React + Laravel.