Skip to main content
Local state disappears on reload. When your app needs data that persists across sessions — user accounts, posts, settings, saved items — you need a backend. Openv2 gives you two paths: a managed backend provisioned automatically per project, or a connection to any backend you already have.

OpenV2 Cloud (managed Supabase)

OpenV2 Cloud provisions a scoped Supabase instance for each of your projects. You get a real PostgreSQL database without any setup. What’s included:
  • PostgreSQL database scoped to your project — your app’s tables are isolated from other projects
  • Supabase URL and anon key injected into the project automatically, so the Supabase JS SDK works without any manual configuration
  • Supabase Auth for email/password and OAuth sign-in flows
  • Row Level Security (RLS) support — ask the AI to write policies in plain language

Setting up auth and tables

You don’t need to write SQL manually. Describe what you want in plain language and the AI handles the rest:
“Add email login with Supabase Auth and a posts table with RLS so users only see their rows.”
The AI will generate the schema, enable RLS, write policies, and wire up the Supabase client in your app code.

If you see “cloud not configured”

This message means OpenV2 Cloud is not enabled in your current environment. Use your own backend (below) or keep data in local state while you wait for it to be enabled.

Your own backend

You can connect any HTTP API or your own Supabase project.
1

Add your environment variables

Tell the AI which environment variables your app needs. For values that should be accessible in the Expo client, use the EXPO_PUBLIC_ prefix:
EXPO_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
The AI will wire these into the project configuration and reference them in the client code.
2

Keep privileged keys off the client

Never paste a service role key or any secret API key into your app bundle. Anyone who downloads your app can extract strings from the binary. Privileged keys belong on a server you control — not in EXPO_PUBLIC_* variables.
3

Prompt the AI to connect your API

Describe the integration you need, including the base URL and any auth header pattern:
“Connect my existing API at https://api.example.com. Auth is a Bearer token stored in SecureStore after login. Wire up a lib/api.ts client with typed responses.”

Prompting strategies for backend work

Backend features are easier to get right when you build them in the right order. Model your data first. Before writing any UI, describe your entities — what they are, who owns them, and whether they’re public or private. A clear mental model leads to a cleaner schema. Auth before features. If your app has user accounts, set up login and session management before building any features that depend on a logged-in user. Adding auth later requires revisiting every screen that touches user data. State RLS requirements explicitly. When prompting for Supabase tables, say exactly what the access rules are: “users can only read and write their own rows,” or “posts are public to read but only the author can update them.” Migrate in small steps. Ask for one table or one schema change at a time, and ask the AI to include rollback notes with any migration SQL. Large migrations are harder to debug if something goes wrong.
OpenV2 Cloud is your app’s database — your app data lives in your project’s scoped Supabase instance, separate from Openv2’s own platform data (accounts, chat history, etc.).

Integrations

Wire up payments, maps, AI features, and any third-party HTTP API.

Billing & plans

Understand credit usage and what’s included in each plan.