ZeroCode privacy policy
Who we are
ZeroCode is operated by Zero Billion, Inc. Reach us at ansh@zerobillion.ai.
This policy describes what ZeroCode collects, why, and what you can do about it. It covers the Android app and the ZeroCode server it talks to.
There is no account, and no sign-in
ZeroCode does not ask for your name, email address, phone number or any social login. On first launch the app asks our server for an anonymous device session: a randomly generated account identifier and a token, stored on your device. That identifier is how the server knows which projects are yours.
It is generated from randomness on our server. It is not derived from your Android ID, your advertising ID, your hardware, or anything else about your device, and we do not read those. We hold no information that identifies you by name — though, like any service, we do process your IP address to operate and protect the server, which is described below.
You may set a display name when you publish an app. That name is chosen by you, is shown next to what you published, and is the only name we ever store.
Because there are no accounts in the ordinary sense, ZeroCode has no profiles, no friends or followers, no comments, no direct messages and no other person-to-person contact of any kind. That is also why there is nobody to block: the only thing one person can put in front of another is a published app, and those can be reported and removed.
What you send us
The description you type is sent to our server and forwarded to a third-party language model provider, which writes the app. We store your description so the conversation makes sense on your next turn and so you can see what you asked for.
- What we store: your descriptions and the assistant’s replies, the files that make up each app you build, build and error logs, and the anonymous account identifier they belong to.
- What we do not collect: contacts, location, photos, camera or microphone input, advertising or device identifiers, or anything else from your device. The app requests only internet and network-state permissions and contains no code that reads any of the above. Technical request data is covered in the next section.
Your description and the code that gets written travel through OpenRouter, which routes them to the model provider we have selected. We do not send OpenRouter or the provider your account identifier. Which model is in use is shown in the app under Settings.
OpenRouter states that it does not retain prompt or completion bodies unless an account opts into logging. What the underlying provider does is a separate matter: retention and training policies vary by provider and by endpoint, and we cannot guarantee on your behalf that a given provider does not retain or train on what passes through it. Treat anything you type as leaving our systems, and do not put personal or sensitive information into an app description.
OpenRouter privacy policy: https://openrouter.ai/privacy
OpenRouter provider logging and privacy: https://openrouter.ai/docs/guides/privacy/provider-logging/
Technical data our servers process
ZeroCode is served through Cloudflare and runs on hosted infrastructure. Like any service reachable over the internet, operating it means processing some technical data about the request itself, whether or not you are signed in — and there is no sign-in here.
- Your IP address, and the time of each request.
- Request metadata: the path, method, response status, and how long it took.
- Device and network metadata your app or browser sends, such as the user agent and connection information.
- Operational and security logs, including rate-limit and abuse-prevention records.
We use these to run the service, diagnose failures, and stop abuse — in particular, your IP address is what rate limiting counts against, which is how one person cannot exhaust the server for everyone else. We do not use any of it for advertising, cross-site tracking, profiling or sale. We do not run any advertising or analytics SDK in the app.
Cloudflare processes this data as part of delivering and protecting the service, under its own terms, and our hosting provider does the same. Operational logs are short-lived and kept only as long as they are useful for diagnosis and abuse prevention.
How a generated app runs, and what it can reach
An app you make is a bundle of ordinary web files. Tapping it in ZeroCode runs it inside a locked-down WebView within the ZeroCode app. This is worth stating plainly because it is the part that affects you most.
- It has no network access at all. Every request it makes is answered from its own files, and anything else is refused before it leaves the device.
- It cannot read the filesystem, and no `file://` access of any kind is enabled.
- It is refused every device permission — camera, microphone, location and the rest — without being able to prompt you.
- It cannot navigate anywhere, open a window, start a download, or call into ZeroCode. There is no JavaScript bridge.
- It runs on its own private origin, so anything one app saves cannot be read by another.
What it can do is save its own progress on your device, using ordinary browser storage. That data stays on your device, is not uploaded, and goes away when you clear the app’s storage or uninstall ZeroCode.
Exporting an app is a separate, deliberate step you have to ask for. It builds an installable Android package containing the same bundle, which you save or install yourself. An exported app requests no permissions at all and runs the same sandbox.
Publishing, reporting and removal
Nothing you make is public unless you publish it. Publishing shares the playable bundle, the name and description you wrote, and the display name you chose — and nothing else. Not your prompts, not your conversation, not your other apps.
Before you publish, you have to confirm that the app is yours and follows our content rules: nothing illegal, hateful, sexual, deceptive, or copied from someone else. Our server refuses to publish without that confirmation.
Anyone can report a published app from the screen where it is playing. Reports are reviewed, and enough reports hide a listing straight away. You can unpublish your own app at any time, which stops it being playable. Anyone who already exported it as an Android package keeps that copy — that is how Android works, and we cannot remove it from their device.
Payments
Subscriptions are sold through Google Play. We never see your card, and we do not receive your name or billing address. Google gives us a purchase token, which our server checks with Google to decide whether your subscription is active. We store that token, the product you bought and its status, against your anonymous account identifier.
Google’s own handling of your payment is covered by Google’s privacy policy, not this one.
How long we keep things, and how to delete them
We keep your projects and builds until you delete them or delete your account. Build logs are kept while the project exists. Usage counts are kept for the current billing period and the one before it.
- Delete one app: remove the project in ZeroCode. Its files and builds go with it.
- Unpublish: removes the public listing and stops the app being playable by others.
- Delete everything: ZeroCode shows a deletion code under Settings. Enter it at the deletion page linked below and every project, build, published app, report, usage record and session for your account is erased from our server.
The deletion page works without the app installed, which is what makes it usable after you have uninstalled. Deleting your ZeroCode data does not cancel a Google Play subscription — cancel that in Google Play.
Children
ZeroCode is not directed to children under 13, and we do not knowingly collect anything from them. Explore contains apps published by other people, which are moderated by reporting rather than by prior review. If you believe a child has published something or that we hold a child’s data, write to ansh@zerobillion.ai and we will delete it.
Changes
If this policy changes in a way that affects what we collect or why, we will change the effective date above and note it in the app’s release notes.