Documentation

AfterPack documentation

A post-build step that obfuscates the JavaScript your bundler produces. One dev dependency, one line; production output ships unreadable, development stays untouched.

Kick off with an agentPaste into Claude Code, Codex, Cursor or Copilot

Where do you want to start?

Every token, scored by how hard it is to reverse

Dim is untouched; green to red marks rising obfuscation complexity. Hover any token to see the transforms that ran and why. The preset ladder moves the whole bundle. Directives move one region.

Full Protection Map walkthrough
entitlements.jsmedium · complexity 8Open full size
entitlements.js, 54 lines, built at the medium preset with a directive around the signature check. Click any token to see what was applied to it.

Use it when

  • The browser receives logic someone would pay to copy or bypass: a license check, pricing rules, anti-cheat, a paywall, an embedded SDK.
  • A customer or a security questionnaire asks whether the JavaScript you ship is readable.
  • You want a build that stays unchanged in development and fails rather than ships weaker output.

Skip it when

  • Everything valuable already runs on the server and the client is a thin view.
  • The code is open source or is meant to be read.
  • You need a secret to stay secret in the browser: no obfuscator does that, and AfterPack says so.

Reference