Do it yourself
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main pageGemini CLI
Gemini CLI can build and deploy your web app from the terminal; WebViewGold turns the deployed URL into native iOS and Android apps. This guide gives you a GEMINI.md that keeps every change store-safe, a Firebase Hosting deploy path, a paste-ready readiness prompt and the settings for Config.swift and Config.java. One 2026 change comes first: Google moved consumer accounts from Gemini CLI to Antigravity CLI, so check which tool you are actually running.
From $109 one-time per platform, or let our team do it all from $698.
A WebViewGold app is a native iOS or Android project whose main screen is a WebView pointed at your production URL. Gemini CLI never has to produce Swift or Kotlin for this: it keeps working on the web project, you deploy, and both store apps show the new version on the next launch. The native side is a short list of documented options in Config.swift and Config.java, plus your icon, name and signing.
Gemini CLI is a good fit because it already lives where the work happens. It reads your files, proposes edits and runs shell commands (with your approval, or directly through ! shell mode), so the same session can fix a layout bug, run the build and call the Firebase CLI. When you also want it to see the WebViewGold projects, add their folder with /directory add or start with --include-directories, and keep signing out of its reach.
If you started in Firebase Studio (which Google is winding down: no new workspaces since June 22, 2026, shutdown on March 22, 2027) or exported a prototype from Google AI Studio, export the code to a local folder or GitHub and continue here. Your Firebase Auth, Firestore and App Hosting backends keep running independently of those editors. Comparing tools first? The AI coding agents overview covers every agent we have guides for.
Gemini CLI loads ~/.gemini/GEMINI.md plus every GEMINI.md in your workspace and its parent folders, concatenates them and sends them with each prompt (documentation). Run /init to draft one from your code, then add a section like this. /memory show displays exactly what was loaded.
# Project context
## Native app context (WebViewGold)
- This web app also ships as iOS and Android apps built with WebViewGold. The apps
load https://app.example.com in a WKWebView / Android WebView. Every deploy is live
in both apps; only changes in ios/ or android/ need a new store build.
- Hosting: Firebase Hosting, static build in dist/. Deploy only when I ask, with
`npm run build && firebase deploy --only hosting`.
- The apps send a custom user agent containing the token WebViewGoldApp.
Branch on isNativeApp() in src/lib/native.ts, never on generic WebView sniffing.
- Native features are URL schemes handled by the wrapper (registerpush://,
getonesignalplayerid://, shareapp:// ...). Use only schemes documented in
https://www.webviewgold.com/llms-full.txt and keep a browser fallback.
## Store rules every change must respect
- Layout works from 320 px wide; fixed bars use env(safe-area-inset-*);
tap targets at least 44 x 44 px; no hover-only controls.
- /privacy, /terms, /delete-account and the in-app Delete account action keep working.
- Sign in with Apple stays next to any other social login (Apple 4.8).
- No new web checkout for digital goods without asking me (Apple 3.1.1).
- No popup windows for sign-in or payment inside the app.
- Only publishable keys in client code. A Gemini API key, Stripe secret key or
service account never goes into a VITE_ variable or into src/.
## Out of bounds
- Do not edit ios/ or android/ unless the task says so.
- Never touch signing, provisioning, keystores or the WebViewGold purchase code.
@./docs/store-checklist.md
I am very happy I bought this app! Extremely easy and great documentation. Was in contact with the customer service, they replied very quickly and very friendly. They solved my question within a day. 10/10 would recommend.
Already have an AGENTS.md for Codex or other agents, or planning to move to Antigravity CLI? Keep one file and tell Gemini CLI to read it via context.fileName in the project's .gemini/settings.json. The same file can register the Firebase MCP server, which gives the agent Firebase tools (including a deploy tool) on top of plain shell commands. The AGENTS.md template and the CLAUDE.md template contain longer rule sets you can merge in.
{
"context": {
"fileName": ["AGENTS.md", "GEMINI.md"]
},
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}Plan for a day of work; accounts and store reviews are the slow part.
Let Gemini CLI build features as usual, but test every screen at a phone width (375 px in your browser's device toolbar) from the start. Ask it to add the isNativeApp() helper early so later prompts can rely on it.
Run the one-time setup below yourself (firebase login opens a browser), then let the agent run builds and deploys with your approval. Your site is served at PROJECT_ID.web.app; connect a custom domain in the Firebase console before you build the apps, because the URL is compiled into them. Server-rendered Next.js or Angular apps belong on Firebase App Hosting instead (Blaze plan required).
Paste the prompt below. Start in Plan Mode (/plan) if your version offers it, read the plan, then let it implement. Enable checkpointing in settings so /restore can undo a bad edit.
Reviewers apply Guideline 4.2 to web-based apps. Push notifications are the usual answer: on iOS set askforpushpermissionatfirstrun to false and call registerpush:// after onboarding, then store the subscription ID from getonesignalplayerid:// (or getfirebaseplayerid://) on the user profile.
iOS (Config.swift): host, webviewurl, useragent_iphone, useragent_ipad, push switches. Android (Config.java): HOST, HOME_URL, USER_AGENT, PUSH_ENABLED or FIREBASE_PUSH_ENABLED. The table further down maps each setting.
Xcode and Android Studio if you have them; otherwise the Cloud Builder builds both apps in the browser and uploads them to App Store Connect and the Play Console. Ask Gemini CLI to draft the privacy answers and review notes from the real code, then submit.
In firebase init hosting, choose your build folder (dist for Vite, build for Create React App) and answer yes to the single-page app rewrite if you use client-side routing.
# one-time setup (run the login yourself, it opens a browser)
npm install -g firebase-tools
firebase login
firebase init hosting
# every release
npm run build
firebase deploy --only hosting
# temporary preview URL, e.g. for a test build of the app
firebase hosting:channel:deploy store-check --expires 7dIt asks for a plan first, because several items (auth, payments) need your decision before code changes.
Read GEMINI.md first. This web app will also ship as native iOS and Android apps through WebViewGold, which loads our Firebase Hosting URL in a WebView. Audit the project and give me a numbered plan before you change anything. Wait for my OK. Audit: 1. Mobile: viewport meta tag, no horizontal scroll from 320 px, safe-area padding on the fixed header and tab bar, 44 px tap targets, no hover-only menus. 2. Firebase Auth: list every sign-in method and every signInWithPopup call (popups are unreliable inside an embedded WebView). Explain the WebView-safe options; do not switch flows yet. Remind me to add our custom domain under Authentication > Settings > Authorized domains. 3. Sign in with Apple: if Google or another social login exists, plan the Apple provider as an equal option. 4. Account deletion: a Delete account action in settings backed by a callable Cloud Function or server route that deletes the user's Firestore documents, Storage files and Auth record, then signs out. Plus a public /delete-account page. 5. Privacy: /privacy and /terms routes written from what the code actually collects (Analytics, Crashlytics, Firestore fields, third-party SDKs). 6. Security rules: report Firestore or Storage rules that allow access without request.auth or across users. 7. Secrets: list every key in src/, env files and firebase config. The Firebase web config is expected; a Gemini API key, Stripe secret key or service account file in client code must move server-side. 8. States: loading, empty and error states with retry on every screen that fetches data. 9. App-only UI: add isNativeApp() (user agent contains WebViewGoldApp) and hide download-our-app banners, builder badges and cookie walls inside the app. 10. firebase.json: confirm the SPA rewrite and that /privacy and /delete-account load directly with HTTP 200. After I approve: implement in small commits, run npm run build after each, never deploy, and finish with a list of what I must do by hand in the Firebase console, App Store Connect and the Play Console.
| What | Web project (Gemini CLI) | WebViewGold iOS | WebViewGold Android |
|---|---|---|---|
| Start URL | Firebase Hosting + custom domain | host, webviewurl | HOST, HOME_URL |
| App detection | isNativeApp() checks for the token | useragent_iphone, useragent_ipad | USER_AGENT |
| Push via OneSignal | Call registerpush:// (iOS), save onesignalplayerid | kPushEnabled, oneSignalID | PUSH_ENABLED, OneSignal IDs in build.gradle |
| Push via Firebase Cloud Messaging | Save the ID from getfirebaseplayerid:// | kFirebasePushEnabled + your GoogleService-Info.plist | FIREBASE_PUSH_ENABLED + your google-services.json |
| Injected variables | Read IDs without calling a scheme first | autoInjectVariable | AUTO_INJECT_VARIABLES |
firebase deploy against production halfway through a refactor. Keep approvals on for shell commands and deploy yourself.~/.gemini/ is concatenated too and may contradict your project rules. Check /memory show once per project.web.app address and switching to your own domain later. That is a new store build; attach the domain first.gemini with a consumer login. They stopped working on June 18, 2026; switch them to a paid API key or to Antigravity CLI./memory show lists only the context files you expect.read, write: if true.Yes, for Gemini Code Assist Standard and Enterprise customers and with paid Gemini API keys or Gemini Enterprise Agent Platform credentials, according to Google. Free individual accounts and Google AI Pro and Ultra subscribers were moved to Antigravity CLI on June 18, 2026. The workflow and context files in this guide work with both.
Both work. GEMINI.md is the Gemini CLI default; AGENTS.md is read by Antigravity, Codex, Cline, Kiro and others. If more than one agent touches the repository, write AGENTS.md and add it to context.fileName in .gemini/settings.json.
No. WebViewGold loads any HTTPS URL, so Vercel, Netlify, Cloud Run or your own server work the same way. Firebase Hosting is simply convenient when your app already uses Firebase Auth and Firestore.
Yes. Add the WebViewGold folder with /directory add, ask it to read the configuration files first and to change values only. Keep signing, keystores and bundle identifiers for yourself in Xcode and Android Studio.
No. Review looks at behavior, completeness, privacy and payments. Which tool wrote the code is neither visible nor relevant.
Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main page$349 per license, one-time add-on
No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.
How the Cloud Builder works Try the free demo$698 per platform $798
Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.
Full Service details Powered byWinter Sale prices valid until December 31, 2026.
App Store & Google Play approval guarantee – or your money back within 14 days
Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.
Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.