AMOOSEDWEB COMPILER v0.15.0 https://amoosed.com/compiler.html DOWNLOADS Portable compiler: /amoosed-compiler-portable.zip (Node.js 22+) npm CLI tarball: /amoosedweb-cli-0.15.0.tgz (local package, not on npm registry) Chrome extension: /amoosed-extension.zip (extract and Load unpacked) QUICK START 1. Extract the portable compiler ZIP. Keep runtime/ beside amw.cjs. 2. Run: node amw.cjs init my-site 3. Edit my-site/site/ for the ordinary website and binary carriers. 4. Edit my-site/app/ for the Amoosed mode HTML, CSS, and JavaScript app. 5. Edit document.json for the boot introduction and bundle.json for carrier paths, chunk size, and protected resources. 6. Change into my-site and run build.cmd on Windows or sh build.sh on macOS/Linux. The helper creates and verifies builds/local-0001/. 7. Run: amw serve builds/local-0001 (use the printed build path). 8. Open the local address in Chrome with the Amoosed extension installed. The starter includes a public Hello World app, encrypted members example, and my-site/README.txt with detailed editing, key, and rotation instructions. On the first successful build, the compiler generates a private member key under my-site/.amw/keys/ and prints its path. Do not publish or commit it. The new project is an independent Git repository; .amw/ is ignored. CLOUDFLARE PAGES From my-site, run release.cmd YOUR_PAGES_PROJECT on Windows or sh release.sh YOUR_PAGES_PROJECT on macOS/Linux to package and verify without uploading. Each run creates distribution/release-NNNN/pages/. To publish, run publish.cmd YOUR_PAGES_PROJECT or sh publish.sh YOUR_PAGES_PROJECT. This builds a fresh release, guides you through Wrangler login and Pages project creation, then deploys only pages/. Pass your existing production branch as a second argument if it differs from the current Git branch. Configure the custom domain in Cloudflare. Read the generated DEPLOY.txt for manual Wrangler commands. The source-and-key snapshot stays outside the public Pages folder. Make an encrypted offline backup of it. Use a fresh distribution folder per release. FILE SHARE STARTER Run: node amw.cjs init-share game-share game.zip readme.pdf This creates a normal landing page and a private Amoosed file list with original names, exact byte sizes, and verified Download buttons. It copies the files into app/files/ as opaque resources and spreads the chunks over image carriers. After building, share the generated .amwkey or ICO privately with friends, or make a key-link QR for the final HTTPS site URL. The normal HTML does not link those carriers, so visiting it does not download them. The carrier URLs remain publicly reachable if known; the key controls decoding, not HTTP access to those bytes. A key or QR can be copied by anyone who gets it. Files are assembled in browser memory before saving. Each resource is limited to 1 GiB, with a 4 GiB starter cap. UPGRADES Commit or stash project changes, install a newer compiler, then run amw update-project my-site. Review and commit the project diff. Rebuild into a new output folder. Do not hand-edit generated carrier or Pages files. EXISTING SITES Replace site/ with the current static website build while keeping its ordinary pages, favicon, and selected carrier files. List their relative paths in bundle.json. Full app mode also needs the /amoosed.com/ routes; WordPress requires a route adapter. Media optimization that strips or recompresses appended bytes breaks the alternative app. FEATURES AND KEY MODES - List existing opaque binary carrier paths in bundle.json. The compiler splits app files into verified chunks among them and writes a versioned index. Ordinary site pages and media remain readable without the extension. - The extension side panel is the Amoosed-owned mode and key UI. Your full app runs as HTML, CSS, JavaScript, images, WASM, and downloads under the website's own /amoosed.com/app/ route after the boot loader verifies it. - With the default hosted index, favicon.ico supplies the public index key. This encodes public chunks but does not make them secret. - Set "indexDelivery":"external" in bundle.json for a private entry. The encrypted index goes into a carrier; the ordinary favicon stays as it was. The compiler writes private .amwkey and compatible .ico credentials under my-site/.amw/indexes/, never in the public output. - List "protected":["members/"] with a keyId to encrypt only selected resources. The starter already demonstrates this. The separate member .amwmember and .hex keys stay under .amw/keys/. QR SHARING AND PRIVACY Run: amw key-link KEY.amwkey https://your-site.example/ invitation.svg This prints a private HTTPS boot link and writes an SVG QR carrying the encrypted-index locator and key in a URL fragment. Put it on a physical card or poster if you want people there to discover the private edition. The site checks the credential against the current carrier release before storing it for that origin in the browser. The fragment is not sent with the HTTP request. A separate member QR can be created with: amw member-link KEY.amwmember https://your-site.example/ /amoosed.com/app/members/index.html member.svg The website owner can publish static encrypted carriers without running membership accounts. The QR is still a COPYABLE BEARER KEY. Anyone who photographs or forwards it gets the same access; downloaded plaintext cannot be recalled. Browser history, sync, scanner apps, screenshots, clipboard, and same-origin scripts may expose the fragment. Site and CDN servers may still keep ordinary visit logs. Use HTTPS and avoid third-party scripts when privacy matters. This is not DRM or per-person subscription. KEY ROTATION Run: amw rotate-project my-site members|site|both Build to a fresh folder, publish the new index and changed carriers as one set, and share the new credential. Hosted site-key rotation changes public encoding but does not revoke access. Old complete releases and already downloaded content remain usable by people who kept them. Run amw --help for lower-level bundle, verify-bundle, pack, unpack, and member-file commands. Read my-site/README.txt for project-specific steps.