Different approaches to building your backend.
Convex is a reactive backend platform where you write TypeScript functions that automatically sync with your frontend. It includes a document database, file storage, and scheduling. Queries are reactive by default, meaning your UI updates automatically when data changes.
Convex is optimized for real-time applications and tight frontend integration. Everything runs on Convex's managed platform with their proprietary database.
Encore is a backend framework where you write TypeScript or Go services with full control over your business logic. You define APIs, databases, and other resources in code, and Encore provisions the corresponding AWS or GCP infrastructure.
Encore uses PostgreSQL for data storage, giving you the full power of SQL. Infrastructure runs in your own cloud account with native AWS/GCP services.
See how Encore and Convex differ across key capabilities.

Convex runs entirely on their managed platform with a proprietary database. Your data and compute are tied to Convex's infrastructure. There's no self-hosting option.
Encore provisions resources in an AWS or GCP account you control. You can see your databases in the AWS Console, set up VPC peering, configure IAM policies, and use any cloud service alongside your Encore resources.
This matters for compliance, data residency requirements, or when you need to avoid vendor lock-in with a proprietary database.
Learn more about infrastructure ownership →Convex provides a CLI that runs a local development server. Your functions execute locally while the database runs on Convex's cloud. This provides a good development experience but requires internet connectivity.
Encore runs encore run and automatically provisions local PostgreSQL, Pub/Sub emulation, and cron scheduling. Everything runs locally with a dashboard showing distributed tracing.
Encore's local environment is fully offline-capable and mirrors production infrastructure.
Learn more about local development →Convex uses a proprietary document database with TypeScript queries. It's optimized for reactive updates but doesn't support SQL. You're locked into Convex's data model and query language.
Encore uses PostgreSQL (RDS or Cloud SQL) in your cloud account. You get the full power of SQL, including complex joins, transactions, and the mature PostgreSQL ecosystem. Your data is portable.
import { SQLDatabase } from "encore.dev/storage/sqldb";
const db = new SQLDatabase("analytics", {
migrations: "./migrations",
});
// Full SQL power with type safety
const results = await db.query<Event>`
SELECT e.*, u.name as user_name
FROM events e
JOIN users u ON e.user_id = u.id
WHERE e.created_at > NOW() - INTERVAL '7 days'
ORDER BY e.created_at DESC
`;Convex provides logs and function metrics in their dashboard. For tracing requests across multiple functions or external services, you'd need to add instrumentation yourself.
Encore includes distributed tracing, metrics, and structured logging out of the box. Every request is traced across services automatically. No instrumentation code needed.
This works locally too. Run your app and get full tracing in the local development dashboard.
See observability docs →With Convex, your backend logic is in TypeScript functions, which AI agents like Cursor and Claude Code can work with. However, the proprietary database and query model require learning Convex-specific patterns.
Encore uses standard TypeScript with SQL for databases. AI agents work with familiar patterns and can generate code using well-known libraries and techniques. Infrastructure is defined alongside application code, giving AI full context.
Built-in guardrails, auto-documentation, and observability ensure your systems stay maintainable, even when AI writes most of the code.
Learn about AI-assisted development →See how teams are shipping faster with Encore.
"Encore is our foundation for all new development. Since adopting it, we've seen a 2-3x increase in development speed."

"Encore is an unfair advantage. At Pave we've moved 2x faster than we did at Monzo."

"We've reduced time spent on DevOps by 95%, and we're now on track to save $60K annually."

Common questions about Encore vs Convex.
Encore deploys to your own AWS or GCP account using standard PostgreSQL with full SQL support. Convex uses a proprietary document database with Convex-specific query patterns. While Convex offers self-hosting, your code is tied to Convex's programming model either way.
Encore is designed for backend development with microservices, APIs, and standard SQL databases. Convex is focused on real-time applications with reactive queries but uses a proprietary database. For most backend use cases, Encore provides more flexibility with standard technologies.
No, Convex uses a document database with its own query language (TypeScript functions). This works well for Convex's reactive model but means your queries aren't portable. Encore uses standard PostgreSQL, giving you full SQL support and compatibility with any PostgreSQL tools.
Encore runs completely offline with local PostgreSQL and all infrastructure emulated locally at no cost. Convex has a local dev server but historically required internet connectivity for the database.
Yes, Convex open-sourced their backend and offers self-hosting. However, even self-hosted, your code uses Convex-specific patterns and their document database model. Encore uses standard cloud services (RDS, Cloud SQL) that you can manage independently if needed.
Encore is designed for microservices with automatic service discovery, type-safe inter-service calls, and distributed tracing. Convex is optimized for single-application backends with reactive data. Different tools for different architectures.