Skip to main content
Percher is still being built, but you can try it out with a free account right now!

Migrating from Convex

Keep Convex or switch to PocketBase

Ask your agent
Move my Convex app over to Percher.Read the guide at percher.app/docs/migrate-convex
Keep my Convex, but host the app on Percher.Read the guide at percher.app/docs/migrate-convex
For agents and developers

Option 1: Keep Convex (easiest)

# percher.toml
[data]
mode = "convex"

[data.convex]
deployment_url = "https://your-project.convex.cloud"

# CONVEX_URL and VITE_CONVEX_URL are injected automatically.
# Your existing Convex client, queries, and mutations keep working.

Option 2: Switch to PocketBase

Concept mapping:

useQuery(api.tasks.list)pb.collection('tasks').getList()
useMutation(api.tasks.create)pb.collection('tasks').create({})
Convex schema (schema.ts)PocketBase collections (admin UI or API)
Convex functions (convex/)API routes in your app
Convex auth (clerk/auth0)PocketBase built-in auth
Convex file storagePocketBase file fields
Realtime (automatic)pb.collection('x').subscribe('*', fn)

Key difference: Convex runs server functions in their cloud. With PocketBase, your API routes run in your app container. Move Convex functions to Express/Hono/Next.js API routes.