Keep Convex or switch to PocketBase
# 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.
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 appConvex auth (clerk/auth0)PocketBase built-in authConvex file storagePocketBase file fieldsRealtime (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.