Documentation

Guides for protecting production JavaScript

Reference guides for release workflows, command-line usage, cross-file protections, and the desktop app.

Inside The Docs

Practical guides, not placeholder pages.

How-to guides Start with release sequencing and command-line usage, then move into feature-specific references.
Advanced protection Browse cross-file controls like Replace Globals and Protect Members when a build spans multiple scripts.

Preset assistant — preview

  • Preview · deterministic rule-based today
  • Ships 2026-Q3 with JSO AI Basic
  • Runs entirely in your browser. Nothing sent anywhere.

This is what the JSO AI preset assistant will feel like. Type a description of your app, click Generate, and get a jso.config.json. Today the suggestions come from a deterministic rule-based mapping — matching keywords like "react", "node", "license", "balanced", "maximum". From 2026-Q3, the same UX is backed by a Claude-based assistant that reads the description with context and produces a much smarter config. Same shape, smarter backend.

Preview only. The mappings below are hand-written rules so you can feel the UX before the LLM-backed version ships. Real responses will be more nuanced — the LLM reads your description, asks clarifying questions when ambiguous, and surfaces trade-offs the rule-based version flattens. Join the waitlist and you'll get an email when the real assistant goes live.

Describe your app

Generated jso.config.json


                

Detected signals

  • (type a description and click Generate)

How this changes when JSO AI Basic ships

The rule-based mapping today catches obvious keywords and produces a reasonable starting config, but it does flatten nuance. Three concrete examples of what the LLM-backed version will do differently:

  • "Protect the license-check function strongly." Rule-based version sets FlatTransform: true globally. LLM version asks for the function name (or guesses it from the surrounding description) and recommends // @virtualize on just that function, leaving the rest of the bundle on balanced — smaller output, faster runtime.
  • "Performance matters most." Rule-based version drops to a standard preset. LLM version reads the rest of the description (is it a marketing widget or a payment flow?) and chooses between standard and balanced accordingly, naming the trade-off out loud.
  • Ambiguous descriptions — "obfuscate my JavaScript." Rule-based version defaults to balanced. LLM version asks what frameworks you use, how performance-sensitive your hot paths are, and what code is high-value, then produces a config informed by the answers.

The promise of the AI version is honest reasoning about trade-offs, not just keyword matching. The rule-based preview is a UX prototype; the real feature is the conversation.

Next step: join the AI Basic waitlist for the real assistant, or read the JSO AI overview for the full feature roadmap.