JustZix vs Tampermonkey / Greasemonkey — qué cambia, qué gana, cuándo elegir cuál
Tampermonkey es sinónimo de «userscript» desde hace 15 años. Cuando alguien dice «inyecto JS en una página», probablemente piensa en Tampermonkey por defecto. JustZix hace todo lo que hace Tampermonkey, más los userstyles (como Stylus), más una capa de UI que los userscripts no tienen. Este post muestra dónde nos diferenciamos.
Comparación de las funcionalidades
| Funcionalidad | Tampermonkey | Greasemonkey | JustZix |
|---|---|---|---|
| Inyección JS al match de URL | ✓ (@match en la cabecera) | ✓ (@include) | ✓ (scope.url) |
| Inyección CSS | ~ (vía GM_addStyle) | ~ (vía GM_addStyle) | ✓ (regla CSS dedicada) |
| Editor en vivo en la pestaña | ✗ | ✗ | ✓ (CSS pane + JS pane) |
| REPL en la pestaña | ✗ | ✗ | ✓ (JS Console) |
| Barra de acciones con botones UI | ~ (GM_registerMenuCommand — en el popup de la extensión) | ~ | ✓ (6 tipos de acciones visibles en la página) |
| Compartición vía URL | ~ (export en .user.js) | ~ (export) | ✓ (enlace TTL 1-48 h) |
| Sincronización entre dispositivos | ✓ (Tampermonkey Cloud — de pago) | ✗ | ✓ (chrome.storage.sync, gratis) |
| Open source | ~ (versión gratuita, pero Tampermonkey es closed-source) | ✓ (Greasemonkey GPL) | ✓ (MIT) |
| @require scripts externos | ✓ | ✓ | ~ (fetch en una regla JS) |
| GM_xmlhttpRequest (bypass CORS) | ✓ | ✓ | ~ (fetch nativo, limitado por CORS) |
| Marketplace de scripts | greasyfork.org | greasyfork.org | n/d (enlace de compartición TTL) |
Dónde gana Tampermonkey
- @require + librerías externas — los userscripts pueden importar jQuery, Lodash vía URL. JustZix requiere código inline o un fetch en una regla JS.
- GM_xmlhttpRequest — bypass del CORS para las llamadas API cross-domain. JustZix usa el fetch nativo — limitado por el CORS de la página.
- Marketplace greasyfork.org — miles de userscripts públicos. JustZix no tiene un registro central (intencionadamente — compartición TTL).
- Colección de userscripts existente — si tienes 50 userscripts instalados, la migración es trabajo. JustZix no importa los .user.js (pero puedes copiar-pegar el cuerpo a una regla JS).
Dónde gana JustZix
- Capa de UI en la pestaña — barras de acciones con BUTTON/SLIDER/TOGGLE3 visibles en la página. Tampermonkey solo tiene GM_registerMenuCommand en el popup de la extensión (invisible hasta que pulsas el icono en la barra de herramientas).
- CSS + JS en una sola regla — userstyle + userscript juntos, scope=idéntico. Tampermonkey requiere un Stylus separado.
- Editor en vivo en la pestaña — CSS pane / JS pane para iterar sin F5.
- Output Console en la pestaña — debug sin DevTools, canal
JUSTZIX.logdedicado. - Dashboard snap — barras + panes se organizan en grupos. Tampermonkey no tiene UI persistente fuera del popup.
Migrar 3 userscripts típicos a JustZix
Script 1: «Auto-skip de los banners de cookies»
Userscript Tampermonkey:
// ==UserScript==
// @name Cookie skip
// @match *://*/*
// @run-at document-end
// ==/UserScript==
(function() {
const obs = new MutationObserver(() => {
const accept = [...document.querySelectorAll('button')]
.find(b => /accept all/i.test(b.textContent));
if (accept) { accept.click(); obs.disconnect(); }
});
obs.observe(document.body, {childList: true, subtree: true});
})();
Migración JustZix:
- Nueva carpeta «Auto-actions»
- Nueva regla «Cookie skip», scope:
*://*/* - Pestaña JS: pega el cuerpo de la función (SIN wrapper IIFE, SIN cabecera userscript)
- Run-at: JustZix usa «document-end» por defecto — coincidencia
- Guarda
Script 2: «GitHub: copia el SHA»
El userscript Tampermonkey añade un botón «Copia SHA» junto a los hashes de los commits. JustZix:
- Scope de la regla:
https://github.com/* - Regla JS: el mismo código que observa los elementos de los hashes de los commits
- Además: en lugar de crear un botón DOM, usa una acción BUTTON «📋 SHA» en la barra de acciones JustZix — visualmente coherente con las demás acciones
Script 3: «Reddit: oculta los anuncios»
El userscript Tampermonkey oculta los elementos .promoted. JustZix:
- Regla CSS (¡no JS!) — más limpia, más rápida:
.promoted, [data-promoted="true"] { display: none !important; } - Bonus: añade un TOGGLE3 «Mode» (Default / Ocultar anuncios / Ocultar anuncios+patrocinado) con las variables CSS de 3 estados
Los patrones CSS-first son a menudo más simples que un observer JS.
Trampas de migración
- Las API GM_* son distintas. Tampermonkey: GM_setValue, GM_getValue, GM_xmlhttpRequest, GM_notification. JustZix:
chrome.storage.local/sync,fetchnativo,JUSTZIX.logcomo canal de log. - @require no tiene equivalente. Los userscripts pueden importar jQuery vía URL. En JustZix lo pegas inline (~10 KB minificado) o
fetch + new Function(riesgo CSP). - Tampermonkey Cloud Sync es de pago. El chrome.storage.sync de JustZix es gratis pero limitado a 100 KB. Más allá → chrome.storage.local (sin sincronización). En la práctica: 50-100 reglas.
- greasyfork.org tiene scripts que JustZix no tiene. Si dependes de un userscript greasyfork específico — la migración es dispersa (copia el cuerpo, adapta las llamadas GM_*). Realistamente: el 50% de los userscripts tiene menos de 100 líneas, migración ~5 min.
Qué hacer después
- Migrar de Stylish/Stylus — la contraparte para los userstyles
- Mini-IDE en la pestaña — qué añade JustZix además de los userscripts
- window.JZ + JUSTZIX — el equivalente JustZix de la API GM_*
Instala JustZix — Tampermonkey puede vivir en paralelo. Prueba 2 semanas, ve cuál se queda.
Valora este artículo
Sin valoraciones — sé el primero.