Security is the product.
An app builder asks for real trust: your ideas, your data, your customers’ data, your API keys. This page is the isolation model we actually run — numbered like the spec it comes from, because it is one.
Enforced, not promised.
Kernel isolation
Every project runs in its own Firecracker microVM. One project's code — malicious or just buggy — cannot read another project's files, memory, or traffic.
A separate preview apex
Previews are served from a different apex domain than the control plane, so a script the agent writes into your app can never see the session cookie that controls your account.
The secret-file firewall
The agent cannot read .env, id_rsa, *.pem and their relatives — enforced at the tool layer, not politely requested in a prompt. It holds even when your own message asks, and even through the bash tool.
An encrypted vault
API keys and database credentials you connect are envelope-encrypted with a per-user key. A dump of our database is not a dump of your credentials.
Scanning before publish
Every publish is scanned for key-shaped strings before the deploy goes out — the canonical vibe-coding failure is a service key in dist/index.html, and it is caught in the pipeline, not on Pastebin.
An enforced content policy
Phishing kits, credential harvesters, and malware don't get hosted under our apex. Enforcement is server-side classification plus takedown — with an appeals path, and refunded credits when we get it wrong.
Rate limits
Signups, failed logins, and agent turns are rate-limited per user and per IP, so one abuser cannot burn the platform down for everyone else.
Legal that diffs
The Terms and Privacy Policy are version-controlled and published with plain-language summaries. Material changes come with 30 days' notice.
What we hold, and what we refuse to.
| Data | Held? | The detail that matters |
|---|---|---|
| Your projects and chat history | YES | That's the product. Messages roll off after 12 months; export is always available. |
| Connected API keys | YES | Envelope-encrypted in the vault; injected into your sandbox at runtime, never written into snapshots. |
| Card numbers | NEVER | Stripe holds them. We store the plan and the ledger, never the card. |
| Your content, as training data | NEVER | We do not train models on your prompts, code, or apps — and our providers are contractually barred from it. |
| Secret files in published bundles | NEVER | Blocked by name at publish, and the bundle is scanned for key-shaped strings besides. |
Found something?
We run coordinated disclosure from day one. Write to security@launchpad.app — the same address published in our security.txt. We respond within 72 hours, and we say thank you in the changelog.