TL;DR
Convex is a reactive backend for TypeScript developers: your queries, mutations and actions are TypeScript functions, the database keeps every client up to date in real time and transactions are serializable by default. Everything beyond that, from access checks to the admin tools your team works in, is code you write. pylo is a backend platform where data model, permissions, flows, admin UI, forms, events and AI access are one integrated system, for developers and the rest of the team. If you build a highly interactive app and your team uses TypeScript, Convex is excellent. If your app runs business processes that non-developers need to work with, pylo gives you the permissions, automation and back office from day one.
What is pylo?
pylo is a Backend-as-a-Service platform from Germany that you can use to build the operating system for your company. You model entities, fields and relations in the admin panel or through the API, and pylo generates a typed GraphQL API instantly. The same permission model governs that API, the admin UI, forms, flows and the MCP server. pylo flows run business processes and automations on top of your own data model and connect to the tools you already use. With pylo you build apps, automations and products on one coherent data base across your whole team.
What is Convex?
Convex, Inc. is based in San Francisco. Its backend combines a document-relational database with TypeScript functions: queries read data, mutations change it in serializable transactions and actions call the outside world. Clients subscribe to queries over WebSockets and update automatically when data changes. Convex adds full-text and vector search, scheduled functions and cron jobs, file storage, HTTP actions and components such as workflows and rate limiters. Auth comes through Convex Auth or providers like Clerk, WorkOS and Auth0. The backend is source-available under the Functional Source License, can be self-hosted and becomes Apache 2.0 two years after each release.
At a glance
Convex | pylo | |
|---|---|---|
What you get | A reactive database where your backend is made of TypeScript functions | A finished backend: data model, API, permissions, flows, admin UI, forms, analytics |
Data model | Documents in tables with references by ID, optional schema in TypeScript code | Entities, fields and relations, visual or through the API, live in the admin panel |
API | Your own queries, mutations and actions over WebSockets, reactive by default, HTTP actions | Typed GraphQL with subscriptions, schema generated per user, webhooks |
Permissions | No declarative layer, checks in each function, row-level security helpers as code | Tenant isolation plus configurable ARO/ACO with hierarchy and field-level access |
Auth | Convex Auth (beta), Clerk, WorkOS, Auth0 or custom OIDC | Email/password, Microsoft and Google SSO, API keys |
Business logic | TypeScript actions, scheduled functions, cron jobs, workflow component | Visual flow engine with cron, webhook and event triggers, pre-defined integrations plus TypeScript custom actions |
Admin UI for non-devs | Developer dashboard with data browser, logs and metrics | Configurable list/detail views with state-based field visibility and different components for different datatypes |
Forms | Build your own | Built in, powerful editor, public or authenticated, directly mapped to entities |
Analytics | Basic metrics, export to other tools for analytics | Every change emitted as an event with before/after values, you can bring your own events and build dashboards on everything with deeply integrated permissions |
AI access | MCP server for coding agents, read-only on production by default | MCP with the user's permissions; writes become proposals you approve |
Open source / self-host | Source-available (FSL), self-hostable, Apache 2.0 after two years | No |
Hosting | AWS in the US, Ireland, Sydney and Canada, non-US regions cost 30% more | Hetzner, Germany |
Data modelling for the whole team
In Convex the data model exists in code: you define tables and validators in a TypeScript schema file, deploy it with the CLI and get end-to-end types in your functions and your frontend. For a TypeScript team this feels great, for everyone else, the model is invisible until a developer changes it.
In pylo you add an entity, a field or a relation in the admin panel and the typed GraphQL API updates at once, without any kind of migration or redeployment. Field types include relations, enums, JSON, public or private files, rich text, dates, booleans and number/text formatters, with validation built in. You filter across relations and group aggregations by any field, even across deeply nested data structures. The people who understand the data can change the model in a visual, easy to understand way, not only the developers.
Permissions that follow the data everywhere
Convex has no declarative permission layer, that means you check the user's identity and access at the start of every query, mutation and action and Convex's helper library offers row-level security wrappers that are also just code you add. That is flexible, but it also means every new function is a place where a check can be missing.
pylo separates tenants at the row level. Inside a tenant, any entity can act as the requester (ARO) and any entity as the requested object (ACO), with hierarchies and field-level rules. Every path into the data is GraphQL, so the same rules apply to the API, the admin panel, forms, flows and MCP. You configure permissions once instead of repeating checks in every function.
pylo flows instead of hand-written functions
On Convex, business logic is TypeScript: actions call external APIs, scheduled functions and cron jobs run later or on a schedule and the workflow component adds multi-step processes with retries. It is powerful, and every process is code that a developer writes, reviews and deploys.
In pylo you build the same logic in a visual workflow engine called pylo flows, where any event in pylo can start a flow, additionally you can use cron schedules and incoming webhooks. pylo flows include retries, custom rate limiting, error handling and full event logs and everything is statically typed. pylo ships integrations for email sending and a growing selection of third-party systems, but you can easily code your own flow actions in TypeScript.
An admin dashboard your operations team will actually use
The Convex dashboard is a developer tool: you browse and edit documents, run queries, read logs and watch metrics. There are no list views per role, no state-dependent fields and no forms for the people who run the business, so teams build a back office on top.
pylo's admin UI is built for your whole team, no matter if they are developers or not: you compose list and detail views from predefined components, decide who sees what and show or hide fields depending on a record's state. The pylo form builder maps forms directly to your entities, including relations, with public or authenticated access, hidden fields, conditional rendering and submission limits per form or per user.
Events and dashboards built in with pylo analytics
Convex describes itself as less suited to analytics workloads and recommends exporting data to other tools for reporting. The dashboard shows metrics about your functions, not about your business.
In pylo, every create, update and delete emits an event with the full before and after state, which you can enrich with your own event data through our API. On top of your events and regular pylo data you can build customized dashboards directly next to your data and workflows.
AI and MCP with guardrails
Convex is very strong for AI-assisted development: its MCP server lets coding agents inspect tables, read data, run queries and deployed functions and read logs and it is read-only on production deployments by default. Their AI tool Chef builds full apps on Convex from a prompt. The MCP server is a developer tool, not a way for your team to work with production data.
pylo's MCP server is made for both, developers who want to use agentic coding and team members who want to analyze their data. The AI gets exactly the connected user's read permissions, nothing else. pylo never applies an AI's writes directly, instead they arrive as proposals that a human accepts or declines, so you can let an assistant work on production data without kicking the human out of the loop.
File handling
Convex stores files and serves them through URLs that your functions generate, with access control written in those functions. pylo stores files in EU-hosted object storage with public or private links, no file size limit and for any file type, as fields on your entities with the same permissions as the rest of the record.
Agencies and multi-tenant work
With pylo, agencies can run many client workspaces from one user account; each workspace is its own tenant separated by RLS and one login switches between them. On Convex, each client gets its own project, and Professional is billed per developer. Inside each client's app, you build tenant separation, roles and the back office yourself.
Pricing
Convex | pylo | |
|---|---|---|
Free | $0, up to 6 developers, 1M function calls, 0.5 GB database, 1 GB files per month | 0€, 5,000 records, 500 flow actions, 1 GB files, unlimited users and API requests |
Entry paid | Professional $25 per developer/month, 25M function calls, 50 GB database, 100 GB files | Starter 49€ per workspace/month, including 100k records, 5k flow actions with additional overages |
Larger | Business and Enterprise from $2,500/month, with SSO and contractual SLAs | Business 999€/month, including 2M records, 250k flow actions, with additional overages |
Users | Billed per developer on Professional | Unlimited on every plan |
Metered | Function calls, action compute, database storage and I/O, file storage, egress; 30% more outside the US | Only flow actions, records, and file storage/traffic |
Convex has a generous free plan and fair usage prices and for a small team of developers it is cheap to start. Usage outside the US costs 30% more, so an EU deployment in Ireland pays a premium.
pylo's price already includes pylo flows, the admin UI, forms, analytics and personal onboarding, which on Convex you would build or buy separately. Every pylo plan has every feature and unlimited users, plans differ only in included usage.
Hosting, compliance and reliability
All pylo content data, data models and databases live in data centres in Germany, our subprocessor list is public and names every non-EU parent company openly. A GDPR data processing agreement is part of the terms and we never use customer data to train AI models. Paid plans come with a 99.5% availability SLA, hourly encrypted backups kept for 30 days at a separate German location and support from the team that builds the product.
Convex runs on AWS with regions in the US, Ireland, Sydney and Canada; the EU region opened in 2026. Convex, Inc. is a US company and holds SOC 2 Type II, with HIPAA available. Contractual SLAs come with the Business and Enterprise plans. If you self-host, all of that is up to you.
Where Convex is the better choice
We would rather tell you than have you find out later:
Every query is reactive by default: the client updates automatically when data changes, without setting up subscriptions.
Full-text and vector search built in.
A strong setup for AI coding agents, with an MCP server and the Chef app builder stack.
Source-available and self-hostable; pylo can't be self-hosted.
Enterprise certifications like SOC 2 Type II and HIPAA
If your developers build a highly interactive app in TypeScript, Convex is an excellent choice. pylo is for teams whose app runs business processes that non-developers need to work with and who'd rather configure permissions, automation and a back office than code them.
Where pylo is a great Convex alternative
We think these are the main reasons to pick pylo over Convex:
The business layer is already built. API, permissions, flows, admin UI, forms, events and MCP come with your data model. You don't write them as functions yourself.
Schema changes without a deploy. Add an entity or field and the typed GraphQL API is live immediately, without touching code or redeploying.
Permissions you configure once. API, admin panel, forms, flows and MCP all go through the same permission layer, down to single fields, instead of checks in every function.
Business logic without deployments. The flow builder covers event, cron and webhook triggers, with retries, rate limiting, typed actions and full logs. Custom actions are plain TypeScript.
Non-developers can work without you. Configurable admin views, state-dependent fields and a full form builder let operations teams handle their own changes. Not every change has to become a developer ticket.
Analytics you don't have to instrument. pylo records every change as an event with before and after state, and dashboards sit right next to the data.
AI access that's safe for production. MCP runs with the connected user's exact read permissions, and every write goes through human approval as a proposal.
Predictable pricing. pylo doesn't bill per developer, function call or region. You get unlimited users and API requests and all features on every plan. Only three meters are billed: flow actions, records, and file storage/traffic.
Built for agencies. You can run many client workspaces with separate tenants and permissions, and switch between them with one login.
German hosting from a German company. pylo hosts user data in Germany and the DPA is part of the terms. You get a 99.5% SLA from the first paid plan, hourly backups with 30-day retention, and personal support from the people who build the product.
FAQs - Questions and answers about pylo
Does pylo support realtime like Convex? Yes, pylo's GraphQL API supports subscriptions and webhooks notify other systems when data changes. The difference is that Convex makes every query reactive by default, while in pylo you subscribe where you need it.
Is pylo open source? No, but you can export all data at any time as CSV or JSON or through the API. The data models, flow definitions and generated SDK code are yours to keep, even after you leave.
Can I self-host pylo? No, but if you need specific hosting options, we can discuss them as part of the Enterprise plan.
Does pylo scale? Yes, production workspaces of our customers already run with millions of records today.
Where exactly is my data? Content data is in data centres in Germany and backups are kept at a different German location.
Can I get access now? pylo is currently in private beta. Request access and we will set up your first entities with you on a call and onboard you personally for your first project.
The short answer
Pick the one that fits the team you have.
Pick Convex if…
Choose Convex if your developers build a highly interactive TypeScript app, want reactive queries and serializable transactions by default and are happy to write permissions, automation and admin tools as code themselves.
Pick pylo if…
Choose pylo if your app runs business processes that your whole team works with: you get a live data model, permissions configured once and enforced everywhere, flows, admin views and forms your non-developers can use, built-in event analytics and AI access with approval. It is also the better fit if you want predictable costs without per-developer pricing and hosting in Germany by a German company.
Moving over
Bring your schema, keep your data.
Moving from Convex to pylo starts with the data model: each Convex table becomes an entity, fields become fields and document references by ID become relations. Model the entities in pylo first, then export your data with the Convex CLI or a snapshot export and load it as JSON or CSV with pylo's import profiles. Import profiles let you map fields, use any field as the matching key and apply regex transformations during import. We handle large datasets of multiple gigabytes and you can re-run your import in dry-run mode until the mapping is right.
Access checks in your functions become pylo permissions, reactive queries become GraphQL subscriptions, and custom flow actions, scheduled functions, cron jobs and workflows become pylo flows. You can migrate users, but you need to reinvite them and have them choose a password again. Talk to us at any point of your migration and we will go through your schema with you and plan the migration together.
Keep comparing