Privacy and security by design

Your web app needs a home. Not your whole Mac.

Make useful personal tools without giving them unrestricted access to your system. HTML to App uses macOS App Sandbox in both the workspace and exported apps, with a few-click workflow for local web projects with an HTML entry page.

Two boundaries worth knowing

How you package a project and how its app runs are separate security decisions. A convenient command or a familiar app window does not tell you what either can access.

While you package

A shell is not a project-only sandbox

Ordinary Terminal commands run with your account's permissions unless you add restrictions. Changing into a project folder does not confine a script to that folder. Running a downloaded project's build or install scripts can therefore give that code access beyond the project.

That does not mean Terminal has root privileges or Full Disk Access by default. File permissions and macOS privacy controls still apply. See Apple's command-line guide and file-access protections.

HTML to App packages ready-to-run web projects without running their build scripts. It copies and configures its precompiled launcher. Projects that need a web build step must be built separately, with that toolchain's own security considerations.

When your app runs

A web renderer is not the whole app

A browser engine can isolate web content while the native app hosting it remains outside macOS App Sandbox. If an exploit reaches that host, the host's available permissions matter. Renderer sandboxing and app-level sandboxing protect different boundaries. Electron's process-sandboxing guide explains this distinction between renderer and main processes.

HTML to App also sandboxes the native launcher. This adds OS-enforced limits on the host's access to files and system resources. Apple describes App Sandbox as a way to limit the damage a compromised app can cause, not a guarantee against every vulnerability.

Other tools can support app-level sandboxing too. For example, Electron documents a separate App Sandbox configuration. Compare the actual configuration, not just whether a tool has a terminal or a window.

Specific access, not unlimited access

The sandbox is not zero access. The workspace works with project folders you approve. Here is what the current exported apps can access.

The app's own container

Each exported app can read and write its own sandbox container for settings and local data. It does not receive unrestricted access to the rest of your home folder.

Files and folders you authorize

Open and save dialogs authorize selected locations. Reference-mode apps get read-only access to the selected source folder. Editor-role Finder integration allows write-back within the specific opened file or folder tree, not arbitrary locations elsewhere on disk.

Read-only Downloads access

Every export includes read-only permission for the Downloads folder by default, even when individual files there have not been selected. It does not grant write access to Downloads. macOS privacy protections still apply.

Network and device permissions

Outgoing network access is enabled, so project code can contact online services. Camera, microphone, and location access depend on your export settings and macOS authorization. Sandboxing does not mean that every project runs offline.

Grant the smallest file or folder scope your tool needs. A folder grant includes its contents, so a dedicated project folder is a better choice than your entire home folder. Read Apple's sandbox file-access guide or the native file bridge documentation.

Local by design

Creating, editing, and exporting projects happens on your Mac. No project upload is needed.

No app analytics or telemetry

HTML to App and its exported launcher do not collect usage analytics or send project files to a developer-operated service. Your project list and app settings stay on your Mac.

Your project's code still matters

Your project's JavaScript can call APIs or include tracking. Its HTML pages and CSS can also reference remote resources. Code with access to a file may send its contents over the network. Review what you run and what you share with it. The website's analytics are separate from the app. Read the privacy policy.

First launch is a separate choice

Packaging does not need a Terminal build pipeline. macOS may still ask you to approve the first launch of your own trusted export.

The optional script is outside the sandbox

You can review and explicitly install an optional script that removes quarantine from the specific exported app. The script runs outside App Sandbox and, once installed and up to date, runs automatically after later exports. Manual handling remains available.

Read the full first-launch guidance before choosing automation.

Local launch approval, not Apple approval

This does not remove the exported app's sandbox, grant privacy permissions, or provide notarization or App Store approval. Exports remain for personal use and local testing, not ready-made public distribution. If macOS reports damage or malicious software, stop and investigate.

A stronger boundary, not a reason to trust every download

Sandboxing reduces risk. It cannot promise to stop every exploit or protect files you have deliberately made available to a project.

Choose what you run and share

  • Review downloaded JavaScript, HTML pages, stylesheets, remote dependencies, and requested permissions before running a project.
  • Test editors with disposable copies. A project allowed to write a document can still damage that document.

Keep the protection in perspective

  • Keep macOS updated so the system WebKit engine receives security fixes.
  • Use Check Project to find resource problems. It is not a malware scanner or a security audit.