El ofuscador de JavaScript moderno para la web.Deja de enviar código fuente.
Protege tus builds.

import{showPaywall as e,startExport as t}from"./ui.js";export default function(r){return r.plan!=="pro"?e("export"):r.exportsThisMonth>=50?e("limit"):t(r.id)}
Minificado, lo que envías hoy
build/xJq9mf.jsBuild #1542
if(!sy){sy=1;Dw=0;xj=()=>Dw=Dw+1|0;mK=(gx,ak)=>gx[B]("")[s](((V9,PW)=>r((V9[e](0)>126||V9[e](0)<32?V9[e](0):32+(V9[e](0)-32-(PW*542029+ak+m)%95+9215)%95))))[t]("");r=""[({}+"")[5]+({}+"")[1]+([][0]+"")[1]+(!1+"")[3]+(1/0+"")[6]+(!0+"")[1]+([][0]+"")[0]+({}+"")[12]+({}+"")[13]+({}+"")[1]+(!0+"")[1]][(1/0+"")[2]+(!0+"")[1]+({}+"")[1]+"m276"[0]+"2C"[1]+"3h"[1]+(0/0+"")[1]+(!0+"")[1]+"69C"[2]+({}+"")[1]+([][0]+"")[2]+([][0]+"")[3]];c=(!0+"")[1]+(!1+"")[4]+([][0]+"")[8]+(!0+"")[2]+({}+"")[12]+({}+"")[4];k=({}+"")[12]+({}+"")[1]+([][0]+"")[6]+({}+"")[5]+(!1+"")[1]+(1/0+"")[6];P=(!1+"")[3]+({}+"")[1]+(!0+"")[1]+({}+"")[13];s="6m1"[1]+(0/0+"")[1]+"618p"[3];t=({}+"")[10]+({}+"")[1]+(1/0+"")[3]+([][0]+"")[6];B=(!1+"")[3]

Una forma distinta en cada build. Un mapa de lo que quedó protegido. Un motor en Rust lo bastante pequeño y rápido para correr dentro de un Cloudflare Worker.

Configúralo con tu agente¿Prefieres la CLI?
Empezar

Binario local gratuito y de código abierto. 10 MB de builds Pro al mes de regalo, sin tarjeta. Crea una cuenta

Por qué AfterPack

Una clave filtrada no es texto plano.

El preset light por defecto codifica los literales de cadena.

Una línea para instalarlo.

Cualquier framework, cualquier bundler, cualquier runtime. El entorno de desarrollo sin tocar.

100 KB en 0,2 s.

1,5 MB de wasm dentro de un Cloudflare Worker de 128 MB, el tuyo o el nuestro.

Cada build es un programa distinto.

El parche que funcionaba en la última release no encaja en esta.

AfterPack en menos de un minuto

Por qué tu JavaScript minificado sigue siendo legible y qué cambia cuando cada build y cada petición publican un programa distinto.

Ver en YouTube

El JavaScript minificado no está protegido.

Minificar solo renombra y comprime. Tus cadenas, tus endpoints y tu lógica se publican intactos: tu bundle minificado es tu código fuente.

Minificado

  • Claves, correos y endpoints en texto plano
  • La lógica intacta, los nombres siguen diciendo algo
  • Parcheable: cambia una comprobación y republica el archivo
  • Escáneres y modelos lo leen de principio a fin

AfterPack

  • Claves, correos y endpoints codificados
  • La lógica reescrita, los nombres no dicen nada
  • Un parche no sobrevive al siguiente build
  • Los patrones de clave y correo ya no coinciden

Casos de uso de la ofuscación de JavaScript.

Free protege todo el bundle con un solo preset.Pro apunta un preset más duro a las líneas que importan.

Protege las comprobaciones de paywall

Lo primero que busca quien lee tu código. Un parche para un build no sirve contra el siguiente.

Oculta la lógica de precios y de acceso

Planes, cuotas, feature flags. Recuperarlos tiene que costar más que una versión.

Protege las claves que tienes que publicar

Caras de extraer, baratas de rotar. La autoridad se queda en tu servidor.

Contén los secretos subidos por error

Ya no son texto plano para los escáneres. Los nombres, los flags y los endpoints publicados por error tampoco se leen. Rota cualquier clave.

Frena las herramientas que parchean JavaScript

Las extensiones y los scripts que parchean tu código con regex pierden sus anclas en cada build.

Oculta funciones tempranas y experimentos

Los flags y las rutas sin publicar dejan de leerse como un changelog de lo que viene.

El ofuscador que se ejecuta dentro de tu Cloudflare Worker.

@afterpack/wasm es AfterPack compilado a WebAssembly.Ponlo en tu propio Worker y remodela el JavaScript en cada petición.

Tu origen
build legible: checkout.js, pricing.js, auth.js
Se ejecuta en tu Worker
Cloudflare Worker
@afterpack/wasm
+ Pro: una llamada a la nube
Navegador
los mismos archivos, una forma nueva por ventana

Tu Worker, tu motor

AfterPack se ejecuta en tu infraestructura. Nada sale de tu cuenta.

Guía de Workers

Por petición, o por ventana de rotación

Cada respuesta puede tener una forma nueva. Cada ejecución cuesta CPU del Worker, así que cachea por ventana cuando baste.

Pro es la misma llamada

Pasa una clave a @afterpack/wasm y esa misma llamada se ejecuta como Pro en la nube de AfterPack. Si la clave o la nube no están disponibles, el build falla en lugar de volver a Free en silencio.

Documentación de la Cloud API

Construye sobre el ofuscador de AfterPack

El mismo motor es un paquete de npm. Ejecuta @afterpack/wasm en un Worker, en un hook de CDN o en un producto propio; pasa una clave Pro y esa misma llamada se ejecuta como Pro en la nube de AfterPack.

  • FreeTu propio Worker, con @afterpack/wasm. Nada sale de tu cuenta.
  • ProLa misma llamada, más una clave: el build se ejecuta como Pro en la nube de AfterPack y falla antes que volver a Free sin avisar. Documentación de la Cloud API
  • ProntoAfterPack sobre Workers for Platforms: un wrapper de AfterPack para Workers, sin paquete que instalar y sin petición de worker a worker. Hoja de ruta
worker.js
1import { obfuscate } from "@afterpack/wasm";
2
3export default {
4 async fetch(request) {
5 const source = await request.text();
6 const result = await obfuscate({ path: "app.js", source }, { preset: "hard" });
7 return new Response(result.bytes, {
8 headers: { "content-type": "application/javascript" },
9 });
10 },
11};

Ofuscación de JavaScript en tres pasos.

AfterPack se ejecuta después de tu bundler, sobre el build de producción.

Elige tu framework

Referencia de la CLI

Instala

Una dependencia de desarrollo para tu framework y una línea de configuración.

$ npm install -D @afterpack/next
Guía de Next.js

Compila como siempre

Se ejecuta solo sobre el build de producción, con el preset light salvo que lo subas.

$ npm run build

Publica

Despliega como siempre. Revisa en el Protection Map qué quedó protegido.

dist/ · protegido
protectionMap.html · escrito
Ver el Protection Map

Mira qué le hizo el ofuscador a tu build.

Un build genera un Protection Map: qué se transformó, cuánto y dónde quedan los puntos débiles.

entitlements.jslight · complexity 5Abrir a tamaño completo
Protection Map de entitlements.js. Abre el visor a tamaño completo.

La región hard es una comprobación de licencia con una clave dentro. La clave nunca llega al bundle como texto legible. El marcador encima es una directiva Pro: sube las líneas que importan y deja el resto en light.

Descubre qué filtra tu sitio hoy.

El escáner gratuito lee tu bundle en producción como lo haría un crawler: source maps públicos, código legible y credenciales filtradas.Sin IA y sin cuenta.

Credenciales filtradasSource maps públicosStack tecnológicoCódigo legible

El mismo escaneo desde tu terminal. Sin cuenta. Documentación de audit

Abrir el escáner de seguridad

Informes de ejemplo

AfterPack frente a otros ofuscadores de JavaScript.

La velocidad, el tamaño y la fiabilidad en CI están medidos en nuestro arnés de pruebas.El resto es lo que documenta cada proveedor, incluido AfterPack.

Desliza para ver las seis herramientas

AfterPack0.1.0javascript-obfuscator5.6.0js-confuser2.1.3JSDefender2.12.0ByteHide1.0.5JScrambler
Medido en nuestro arnés de pruebas· Septiembre de 2026
Tiempo de buildBundle de producción real, en tiempo real381 ms4.6 s12× más lento10.6 s28× más lento
1.5 s
4.0× más lento
3.0 s
7.9× más lento
—
Tamaño de salidaComprimido con gzip, × el bundle minificado
4.1×
11.1×
13.9×
1.9×
En default, 4/5 funcionan
3.5×
Configuración por defecto, 5/5 funcionan
—
Preset más fuerte que se ejecutaCI headless, 5 muestrasextremePreset más alto, 5/5mediumel preset high se cuelga en CI, 0/5highPreset más alto, 5/5
Ninguno
4/5 en default
default
Todas las opciones activas: 0/5
—
Según la documentación del proveedor y el registro público
Precio y nivel gratuitoPara proteger un build de producciónGratis, ilimitado en localDe pago desde 49 $/mesGratis, código abiertoComplemento de VM a 19 $/mesGratis, código abiertoSolo presupuestoSolicitar demoSolo presupuesto
Plugins de frameworksDe primera parte, integrados en el build
13 plugins de primera parte
Loaders de la comunidadSolo API de NodeNo se encontró ningunoPlugins, declarados por el proveedorCLI + API
Se ejecuta en el edgeCloudflare Workers, WASMSíWASM + WorkersNo documentadoNo documentadoNoNoNo
Salida compatible con CSPSin eval(), sin new Function()SíPor defectoNo documentadoNo documentadoNo documentadoNo documentadoNo documentado
Continuidad del desofuscadorConstruido sobre un build, ejecutado en el siguiente
Menos del 6% se traslada†
Tabla de opcodes nueva en cada build
Se traslada
Forma fija: webcrack, restringer
Artículos públicos
No lo hemos reproducido
Se traslada
Pipeline fijo, según su propia documentación
Se traslada
Forma fija: webcrack
Se traslada
Desofuscador público, preámbulo fijo

Medido en septiembre de 2026 en una sola máquina (Apple serie M, Node 22), sobre bundles de producción reales ya minificados. Cada herramienta usa la configuración más fuerte cuya salida sigue funcionando en CI headless; los tooltips indican las excepciones. Cómo medimos

Precios de AfterPack.

Free se ejecuta en tu máquina, sin límites.Los builds Pro se ejecutan en la nube de AfterPack y se miden por megabyte.

Gratis para siempre

Free

$0para siempre

CLI y plugins de código abierto. Los builds locales son gratis e ilimitados.

¿Necesitas más? $5 te da 20 MB que nunca caducan.

Instalar
Recomendado

Pro

$132/mes
Facturación anual, $1,590. Dos meses gratis.
Organizaciones

Enterprise

Personalizadopor proyecto de colaboración

Una relación de trabajo: prioridad en el desarrollo que necesites, un despliegue Pro privado en tu propia nube, y tu proceso de seguridad resuelto en conjunto.

El motor local es gratuito para siempre, sin tope de builds y sin cuenta. Pro añade builds en la nube, directivas por región y dos transformaciones de endurecimiento.

Comparar la lista de funciones

Lo que viene.

Publicamos rápido y respondemos igual de rápido. Las preguntas y propuestas van a GitHub Discussions, los errores a GitHub Issues, y para todo lo demás escríbenos.

Siguiente

Detector de fugas

Marca correos y patrones de claves conocidos en tu build. Pro añade detección de entropía y avisos.

SiguientePro

Camuflaje del transporte de red

Un códec por build para las peticiones y respuestas de tu API en tránsito.

SiguientePro

Source maps gestionados

Simboliza los stack traces de producción sin publicar un archivo .map.

SiguientePro

AfterPack en Workers for Platforms

Una forma nueva por petición, nada que instalar, nunca sale de Cloudflare.

Ver el roadmap completo

Inicia sesión y las novedades del producto llegarán a tu bandeja. Cancela la suscripción cuando quieras.

¿Tienes una opinión? Comenta el roadmap.

Preguntas frecuentes.

Qué hace AfterPack, cuánto cuesta y qué no promete.

AfterPack es un ofuscador de JavaScript que actúa después del build. Toma el bundle que tu toolchain ya genera y lo reescribe de modo que leerlo o buscar en él, sea una persona o un modelo, cueste un esfuerzo desproporcionado. Se ejecuta después de tu bundler, nunca modifica tu código fuente y genera una semilla nueva en cada build, así que dos builds del mismo código resultan estructuralmente distintos.PreguntarDebatir

Protege lo que construyes.

Ejecútalo sobre la salida de tu build y mira qué obtienes.

Empezar

El motor local es gratuito. Crea una cuenta y recibe 10 MB de builds Pro al mes, sin tarjeta.