Offline Static-Site Bundle Packager

Package supplied static HTML, CSS and assets into a reviewed ZIP with local references and an omissions report.

Files stay on your device No sign-up Free to use
How this works

The tool runs in this browser. Your file or text is not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

Privacy details

Package static files controls

Drop your file here

or choose one from your device

One ZIP up to 6 MiB with 60 entries or fewer. Unsafe paths (absolute, parent-relative, reserved device names or reserved keys) are refused.

    Start each file with a line that begins with "@@ " and the relative path. Everything until the next "@@ " line is that file. Text files only.

    A pasted bundle carries text files only. A ZIP can include binary assets, and it is read locally.

    A path prefix such as docs/ when the site is served from a subfolder. A reference like /docs/a.css then maps to the entry a.css. A root-relative reference outside the prefix is reported, not rewritten.

    When on, packaging stops so you can review the active content yourself. When off, scripts, event attributes, javascript:/data:text/html URLs, @import rules and CSS expressions are removed and listed in the report.

    How to use Offline Static-Site Bundle Packager

    1. Enter the supported text bundle or choose a bounded static-file ZIP.
    2. Declare any served path prefix and the active-content stop policy.
    3. Inspect removed/unresolved references and reopen the exported static bundle.

    Example: Offline Static-Site Bundle Packager

    Package supplied static HTML, CSS and assets into a reviewed ZIP with local references and an omissions report.

    You add
    Bundle source: "text" Pasted text bundle: "@@ index.html\n<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Sample page</title>\n<link rel=\"stylesheet\" href=\"/assets/site.css\">\n</head>\n<body>\n<h1>Sample page</h1>\n<img src=\"assets/logo.svg\" alt=\"Sample logo\">\n<script src=\"assets/app.js\"></script>\n<a href=\"about.html\">About</a>\n<a href=\"https://example.com/external\">External</a>\n</body>\n</html>\n@@ about.html\n<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><title>About</title><link rel=\"stylesheet\" href=\"/assets/site.css\"></head><body><p>About page</p></body></html>\n@@ assets/site.css\nbody{font-family:sans-serif;background:url(\"/assets/pattern.svg\")}\n@@ assets/app.js\nconsole.log(\"removed\");\n@@ assets/logo.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\" role=\"img\" aria-label=\"Sample logo\"><rect width=\"64\" height=\"64\" rx=\"8\" fill=\"#1d4ed8\"/><circle cx=\"32\" cy=\"32\" r=\"16\" fill=\"#ffffff\"/></svg>\n@@ assets/pattern.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 8 8\" width=\"8\" height=\"8\"><path d=\"M0 0h4v4H0zM4 4h4v4H4z\" fill=\"#e5e7eb\"/></svg>" ZIP of static files: [] Root-relative prefix: "" Stop when active content is found: false
    You get
    Packaged 5 files into 1.9 KiB; 5 references rewritten, 2 active items removed and 1 reference unresolved.

    Options

    Path prefix
    The prefix maps root-relative references into the supplied archive. References outside it remain reported rather than silently redirected.
    Active content
    The stop setting refuses active findings for review. The other mode removes the documented active subset and lists changes; it is not a general sanitization certificate.

    Supported inputs and limits

    ZIP up to 6 MiB and 60 entries, 300 KiB per entry and 6 MiB expanded total. Safe relative paths; base elements and server-script files are refused. Exported HTML blocks scripts, connections, forms and remote resources. Static supported subset only. No crawling, scripts execution, server application packaging, complete functional preservation or general untrusted-HTML safety guarantee.

    Where your input is processed

    This tool processes your input in this browser. Your text and files are not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

    A static archive can omit essential behavior

    Removing scripts can change a page that depended on them. Remote addresses are not fetched, and unresolved assets cannot receive an offline guarantee. Review the manifest and each important page before publishing or replacing a source tree.

    Questions about Offline Static-Site Bundle Packager

    Can it package a dynamic application?

    It prepares the supplied static subset and does not preserve server or script behavior.

    Are remote assets downloaded?

    No. Their references remain reported and unresolved for offline use.

    Is the output certified safe HTML?

    No. The removal pass is bounded; review the exported files before publishing.

    Project manager: Tony Hines · Content updated 4 October 2026 · Report a problem