Legal
Privacy policy
LEGAL_OPERATOR_NAME and LEGAL_CONTACT_EMAIL in the hosting environment and rebuild, so this page names who runs the site and how to reach them. Google's sign-in review expects both.In short
- Most of Publishly runs in your browser. Your recordings, screenshots, designs and app files stay on your device unless you use a feature that needs our server, listed below.
- You don't need an account. If you sign in with Google, projects are saved in your own Google Drive, in files Publishly creates. We run no database and keep no copies.
- AI features send what they need to Google's Gemini API, on your own Gemini key if you've added one. Offline mode sends nothing.
- No ads, no analytics, no tracking cookies, and we never sell your data.
1. Who we are
Publishly is a web app for making app store screenshots, device mockups, promo videos, store listing text and app translations, and for checking an app before it goes to Google Play. This website is run by the operator of this website (“we”, “us”), who is responsible for the personal data described here.
Questions, or requests about your data: the contact address (not set yet).
2. What stays on your device
The editor, the video studio, image and video export, the Android strings studio and the app report all work inside your browser. APK files you open are read in the browser and are not uploaded. When you choose the on-device layout engine, your browser downloads an open AI model (Florence-2) from Hugging Face, so Hugging Face sees that download request; the model then runs locally. Chrome's built-in translator, when you pick it, also runs on your device.
Your browser keeps:
| Where | What |
|---|---|
| IndexedDB | Your current project and video, brand kits, app string translations, your translation memory, app reports and cached voice-over clips, so work survives a reload. |
| Local storage | Your Gemini key (if you add one), light or dark theme, saved styles, small preferences such as the video resolution, and — if you pair this browser with the Android helper — its port and pairing token. |
Clearing this site's data in your browser removes all of it. We can't see or recover it.
Two optional tools run on your own computer. The Android helper (npx publishly connect) lets this site drive your emulators and USB phones: the page talks to it directly at 127.0.0.1, so your APK, screenshots and recordings go from the page to your computer, not through our server. The command-line renderer (npx publishly render) opens this site's renderer page in a browser on your computer and draws your project file there; only the page's code is downloaded, and the project never leaves your machine.
3. Signing in with Google and Google Drive
Signing in is optional. It asks Google for your basic profile (name, email address, profile picture and account ID) and the drive.file permission. With drive.file, Publishly can only see and change files it created or that you open with it, never the rest of your Drive.
- Where your sign-in is kept: in an encrypted, http-only cookie in your browser, which holds your profile and the token that lets Publishly reach your Drive. It isn't stored on our server.
- What goes into your Drive: a “Play Store Screenshots” folder with your projects, videos, brand kits and their images, your translation memory, plus the version history you save. Everything stays in your Drive under your control.
- Sharing: only when you use “Share preview”, Publishly makes that one preview readable by anyone with the link, or asks Drive to email an invitation to the address you type.
- Stopping: sign out to remove the cookie from this browser, or disconnect to also withdraw Publishly's access. You can also remove it at myaccount.google.com/connections. Your Drive files stay until you delete them.
Publishly's use and transfer of information received from Google APIs to any other app will adhere to the Google API Services User Data Policy, including the Limited Use requirements. We use Google user data only to provide the features you ask for. We don't use it for advertising, don't sell it, don't use it to train AI models, and no person reads it.
4. AI features
These features send data through our server to Google's Gemini API, only when you use them:
- Choosing screens and writing captions: reduced-size frames from your recording or screenshots.
- Reading captions off screenshots, and matching a store listing's style or layout: those screenshots.
- Translation: your captions, or your app's strings, plus any screenshots you add for context. Strings already in your translation memory aren't sent.
- Store listing text and voice-over scripts: your app's name, description and on-screen words.
- Voice-over: the script to be spoken. Music: your description, tempo, energy and brightness (Lyria RealTime), or your description and tempo (Lyria 3, which Google offers on paid keys only).
Our server passes each request on and returns the answer. It doesn't store the content. If you've added your own Gemini key, it stays in your browser, is sent with each AI request, and is used only for that request. It is never saved or logged on our server. Without a key, the site's own key is used if the operator has turned it on.
Google handles this data under its Gemini API terms. On Google's free tier, Google may use what you send to improve its products, so don't send anything confidential with a free key. Offline mode and the no-AI drafts don't send anything.
5. Other requests our server makes for you
- Importing a store listing: fetches the public Google Play page, or asks Apple's public iTunes lookup, for the app you name.
- Checking a privacy policy link: fetches the web page you enter, without your cookies. Addresses on private or internal networks are refused.
- Library versions in the app report: reads public version lists from Google's Maven repository. Nothing about your app is sent.
6. Firebase Test Lab (optional)
Recording or reviewing an app with Firebase Test Lab asks Google for one more permission on your sign-in: access to your Google Cloud projects (cloud-platform). Publishly uploads your APK to a storage bucket in your project, starts the test there and reads the results back. The test runs, and is billed, under your project and Google's terms. Short-lived access tokens are fetched from your sign-in when a test needs one and kept only in the open page's memory; disconnecting Publishly (see above) withdraws this permission too.
8. Server logs
Like any website, our hosting provider may record standard request logs (IP address, time, page requested and browser type) to keep the service running and secure. They aren't used to profile you, and they're kept only as long as the host's normal log retention. To stop one visitor from overloading the service, the server counts requests per IP address in memory for one minute at a time; that count is never written anywhere. If a page crashes, your browser sends us the error message, the technical trace and the path of the page (for example /studio) so we can fix it. That report carries no cookies, account details, project content or API keys, and it goes into the same server log.
10. How long data is kept
Our server keeps nothing after it has answered a request, apart from the server logs above. Cookies last as shown above. Browser storage lasts until you clear it. Drive files last until you delete them.
11. Security
The site is served over HTTPS. The sign-in cookie is encrypted and can't be read by scripts, and addresses our server fetches are checked so they can't reach private networks. No system is perfectly secure, so please keep your Google account and Gemini key safe, and tell us if you find a problem.
12. Children
Publishly is a tool for app developers. It isn't directed at children under 13, or under the age of digital consent where you live, and we don't knowingly collect their data.
13. Your choices and rights
Most of your data is already in your hands: in your browser, which you can clear, and in your Google Drive, which you can edit or delete. Depending on where you live (for example under the GDPR or the CCPA), you may also have the right to access, correct, delete or move your personal data, and to object to or restrict its use. To use these rights, or to complain, contact the contact address (not set yet). You can also contact your local data protection authority.
14. Changes to this policy
If this policy changes, we'll update the date at the top. If a change is significant, we'll also say so on the site before it takes effect.
15. Contact
The operator of this website · the contact address (not set yet)