Reglas: las invariantes
Van en el repositorio, se comparten con todo el equipo y se cargan según su trigger. Las reglas de las tiendas van aquí porque deben cumplirse en cada cambio futuro, no solo en la tarea de hoy.
Windsurf
Si creaste tu app web en Windsurf con Cascade, estás a un despliegue de producción de tener apps nativas: WebViewGold carga esa URL en un envoltorio nativo de iOS y Android que envías a las tiendas. Una cosa cambió en 2026: Windsurf ahora es Devin Desktop, y su agente Devin Local sustituyó a Cascade. Tus reglas se mantienen; los workflows y las memorias necesitan una pequeña mudanza. Esta guía cubre ambos casos.
Desde $109 de pago único por plataforma, o deja que nuestro equipo lo haga todo desde $698.
WebViewGold te da un proyecto nativo de Xcode y otro de Android Studio cuya pantalla principal carga tu URL de producción en un WKWebView o Android WebView, además de extras nativos como notificaciones push, una pantalla sin conexión y el menú de compartir. Tu proyecto de Windsurf sigue siendo la única base de código, y cada despliegue aparece en ambas apps.
El trabajo del agente es que la app web supere la revisión como app: diseño móvil, páginas legales, eliminación de cuenta, ningún callejón sin salida y al menos una capacidad nativa para que la app sea algo más que un sitio web (Directriz 4.2). Los fundamentos específicos de este stack están en la página de Windsurf al App Store.
Guárdala como .windsurf/rules/native-app.md si sigues trabajando con Cascade (Windsurf antiguo o el plugin de JetBrains), o como .devin/rules/native-app.md en Devin Desktop. Ambos usan el mismo front matter trigger, y always_on carga la regla en cada sesión. Windsurf limitaba los archivos de reglas a 12.000 caracteres, así que mantenla ligera.
---
trigger: always_on
---
# Native app context
- This project is published as iOS and Android apps with WebViewGold, which loads
https://app.example.com in a native WebView. Every deploy is live in both apps.
- There is no separate mobile codebase. Do not propose React Native, Flutter or Capacitor.
- Detect the app with isNativeApp() in src/lib/platform.ts (user agent contains
"MyAppNative", set in WebViewGold). No other user agent checks.
- Native features are URL schemes (registerpush://, shareapp://message?=TEXT&url=URL,
bioauth://, qrcode://). Look up the exact syntax in
https://www.webviewgold.com/llms-full.txt, call them only inside the app,
and keep a web fallback.
# Never
- Use a preview or *.windsurf.build URL as the app URL.
- Open OAuth in popups or new windows (the Social Login Helper handles Google).
- Sell digital goods through Stripe links inside the iOS app.
- Ship placeholder text, "coming soon" buttons or dead links.
# Always
- /privacy, /terms and an in-app Delete account (server-side) exist and work.
- Sign in with Apple appears wherever Google or another social login appears.
- Layout works at 320 px; fixed bars pad env(safe-area-inset-top/bottom);
tap targets are at least 44 px.
- Loading, empty and error states for every fetch.
¡Gran trabajo! Nunca tuve que usar código para nada, pero logré trabajar con esto y tener mi App lista. ¡Fácil y rápido! ¡También con gran ayuda de los creadores!
Los workflows de Cascade son archivos Markdown en .windsurf/workflows/ que inicias con un comando de barra que lleva el nombre del archivo; Cascade nunca ejecuta uno por su cuenta. En Devin Desktop los mismos pasos se convierten en un skill: una carpeta .devin/skills/store-readiness/ con este SKILL.md. Escribe /store-readiness, o el agente lo usa por sí solo cuando tu petición coincide con la descripción. Para un workflow de Cascade, guarda los pasos numerados como .windsurf/workflows/store-readiness.md con solo una descripción en el front matter.
---
name: store-readiness
description: Audit and fix this web app for App Store and Google Play review before a WebViewGold build
---
1. Read the native-app rule. List the routes and the auth, payment and analytics code.
2. Mobile: open every main route in the Preview at 390 px and 320 px. Fix horizontal
overflow, tap targets under 44 px, inputs under 16 px font size and fixed bars
without safe-area padding.
3. Legal: make /privacy and /terms real (based on what the code collects) and link
them from the footer and the settings screen.
4. Accounts: if sign-up exists, add Delete account in settings (server-side deletion,
sign out, confirmation) and a public /delete-account page.
5. Sign-in: add Sign in with Apple next to any other social login.
6. States: loading, empty and error-with-retry for every fetch; a friendly 404.
7. App mode: hide store badges, install prompts and builder badges when isNativeApp().
8. Payments: list where digital goods are sold. Report only, change nothing.
9. Run lint, tests and build. Summarize the changes and what I must test on a phone.Van en el repositorio, se comparten con todo el equipo y se cargan según su trigger. Las reglas de las tiendas van aquí porque deben cumplirse en cada cambio futuro, no solo en la tarea de hoy.
Trabajos repetibles de varios pasos, como esta pasada de preparación, un checklist de lanzamiento o el triaje de un rechazo. Ejecútalos cuando los necesites.
Cascade crea memorias por su cuenta. Pertenecen al workspace en el que se crearon y se quedan en tu equipo, así que ni tus compañeros ni otras herramientas las ven nunca. No confíes nunca en una memoria para una regla de las tiendas; pide al agente que la escriba en una regla.
Devin Desktop lee AGENTS.md en la raíz y en subcarpetas como reglas siempre activas, igual que Cursor, Codex y GitHub Copilot. Si combinas herramientas, pon allí la sección de la app nativa una sola vez (comparativa de archivos de instrucciones).
El mismo orden funciona con Cascade y con Devin Local.
Haz commit de ambos archivos. Abre una conversación nueva y pide al agente que resuma las reglas que sigue; la regla native-app debería aparecer en la respuesta.
Escribe /store-readiness (o el nombre del workflow en Cascade). Revisa cada cambio en el diff, comprueba las rutas en el Preview y después en el navegador de tu teléfono.
Los App Deploys de Cascade publican en una dirección name.windsurf.build, están pensados para vistas previas y escriben un windsurf_deployment.yaml con los datos del proyecto. Para la app, reclama el sitio en tu propia cuenta de Netlify o conecta el repositorio Git a Netlify, y después añade tu dominio (por qué importa el dominio). En Devin Desktop, despliega directamente con Netlify, porque los App Deploys no están disponibles para Devin Local.
Config.swift: host, webviewurl, useragent_iphone, useragent_ipad. Config.java: HOST, HOME_URL, USER_AGENT. Configura los activadores del Social Login Helper si usas inicio de sesión con Google, y elige un proveedor de push (OneSignal, Firebase o Pushwoosh) si quieres notificaciones. La documentación de configuración para Android recoge todas las claves.
Con un Mac, archiva en Xcode; genera un App Bundle firmado en Android Studio. Si prefieres delegar esta parte, el equipo de Full Service configura y compila ambas apps por ti en 72 horas.
Haz que el agente redacte la política de privacidad, la descripción para la tienda y las notas para la revisión a partir del código; el envío lo haces tú. Los cambios web llegan con cada despliegue, y solo los cambios en el envoltorio nativo necesitan una nueva compilación.
Úsalo si prefieres una sola ejecución guiada en lugar del skill, o solo para la parte del despliegue. Se detiene después de la configuración de Netlify para que puedas revisar primero la compilación.
Vamos a publicar esta app web como apps nativas de iOS y Android con WebViewGold, que carga nuestra URL de producción en un WebView nativo. Sigue la regla native-app. Trabaja en este orden y espera mi confirmación después del paso 2. 1. Compilación de producción: asegúrate de que "npm run build" funciona desde un checkout limpio y documenta cada variable de entorno en .env.example (solo los nombres, sin valores). 2. Netlify: añade un netlify.toml con el comando de compilación y el directorio de publicación para este framework. Si es una single-page app, añade una redirección comodín a /index.html con estado 200 para que /privacy, /terms y /delete-account carguen directamente. Enumera las variables de entorno que debo añadir en el panel de Netlify. No uses App Deploys para producción. 3. Helper nativo: añade src/lib/platform.ts con isNativeApp(), que comprueba si el user agent contiene "MyAppNative". 4. Ejecuta el skill (o el workflow) store-readiness y corrige lo que encuentre. 5. Escribe docs/store/review-notes.md: qué hace la app, un hueco para la cuenta demo y las funciones nativas que un revisor puede probar. 6. Resume todos los cambios y dame un plan de pruebas en el teléfono: registro, inicio de sesión con Google y con Apple, eliminación de la cuenta, modo avión, abrir /privacy directamente.
.windsurfrules antiguo y un .devin/rules nuevo que se contradicen. Se cargan los dos, así que unifícalos..devin/global_rules.md y .windsurf/global_rules.md, solo se carga el primero.No. Windsurf pasó a llamarse Devin Desktop en junio de 2026. Es el mismo editor con los mismos ajustes y extensiones, y el plugin de Windsurf para los IDE de JetBrains se sigue ofreciendo.
En Devin Desktop, las conversaciones nuevas empiezan con Devin Local, y ya no se pueden iniciar conversaciones con Cascade. Cascade sigue en el plugin de Windsurf para JetBrains. La regla de esta guía funciona con ambos agentes; usa un workflow con Cascade y un skill con Devin Local.
Sí. Devin Desktop importa por defecto .windsurfrules, .windsurf/rules/*.md y .windsurf/global_rules.md. Las reglas nuevas van en .devin/rules/, que tiene prioridad cuando existen ambas.
Cargaría, pero no lo hagas. Los App Deploys están pensados para vistas previas, el subdominio no se puede cambiar después y la URL va compilada dentro de tu app. Usa tu propio dominio en Netlify u otro hosting.
Para una compilación manual de iOS en Xcode, sí. El Cloud Builder de WebViewGold compila y sube ambas apps desde el navegador, y el equipo de Full Service puede hacer la configuración y la compilación por ti.
El mismo resultado, con distinta cantidad de trabajo por tu parte. Las tres incluyen la garantía de aprobación y soporte humano 24/7.
$109 por plataforma, pago único
La licencia de WebViewGold: un proyecto de Xcode o Android Studio listo para usar. Pega tu URL, define nombre e icono, activa funciones, compila y envía. Actualizaciones gratuitas para siempre.
Ver planes en la página principal$349 por licencia, complemento de pago único
Sin Mac, sin Xcode, sin Android Studio: configura en el navegador, compilamos ambas apps en la nube y las entregamos a App Store Connect y a Play Console.
Cómo funciona el Cloud Builder Prueba la demo gratuita$698 por plataforma $798
Envíanos tu URL y tu icono. Nuestro equipo configura, compila y entrega tu app en 72 horas, en marca blanca y con los proyectos fuente. Ambas plataformas por $1,158.
Detalles del Full Service Con tecnología dePrecios de la Oferta de invierno válidos hasta el 31 de diciembre de 2026.
Garantía de aprobación en App Store & Google Play – o te devolvemos el dinero en 14 días
¿Prefieres delegarlo? Full Service: configuramos, compilamos y entregamos en 72 horas, desde $698 por plataforma. ¿Preguntas? Chatea con nosotros 24/7.
Los reembolsos se conceden bajo las condiciones indicadas en nuestras FAQ: un rechazo por motivos ajenos al contenido por parte de Apple y/o Google, reclamado dentro de los 14 días posteriores a la compra.