Cloudflare's Void and Encore both let an agent write code that gets its infrastructure provisioned on deploy. Void targets Vite apps on Cloudflare, and Encore targets TypeScript and Go backends in your own AWS or GCP account. Here is how they differ for internal tools.
Cloudflare open-sourced Void in October 2026 with a pitch aimed at the same problem many teams have with internal tools: employees build apps with coding agents, and IT does not want to hand cloud access to every one of them.
The New Stack's coverage describes the three parts as an SDK, a CLI that provisions Cloudflare resources on deploy, and a platform companies host to manage those apps. Encore solves an overlapping problem with a different runtime and a different cloud.
Void comes from VoidZero, the team behind Vite, which Cloudflare acquired. You add it as a Vite plugin and write server routes and pages in the same project. Importing void/db gives the app a local database in development, and void deploy provisions D1 in production and applies migrations. Projects can instead use PostgreSQL or MySQL that you host, connected through Hyperdrive. Imports for AI, queues and other resources work the same way, and the CLI records resource IDs in a lock file you commit.
The platform is the part aimed at internal tools. A company installs it in its own Cloudflare account on Workers for Platforms with R2, a PostgreSQL database for platform state and a login provider. Employees run void connect against it and deploy with the same command, while admins manage users, project access, resource limits, logs and rollbacks. Employees do not need their own Cloudflare credentials to ship.
Apps run on the Workers runtime, so Node APIs and long-running processes follow Workers' rules. The default D1 is built on SQLite, which the SQLite project describes as a strong fit for many workloads with fewer concurrent writers than a client-server database. If your internal data is in Postgres on AWS, the app reaches it through Hyperdrive, either over the public internet or through a tunnel you set up.
Encore combines an open source SDK for TypeScript and Go with a platform that provisions and deploys each service's infrastructure into your own cloud account. A service declares its database, Pub/Sub topics, cron jobs and secrets in code, and the platform creates them on AWS, for example RDS for databases and SNS with SQS for topics, inside a VPC it sets up per environment.
// refunds/refunds.ts
import { api } from "encore.dev/api";
import { SQLDatabase } from "encore.dev/storage/sqldb";
import { Topic } from "encore.dev/pubsub";
const db = new SQLDatabase("refunds", { migrations: "./migrations" });
export const refundRequested = new Topic<{ refundID: number }>("refund-requested", {
deliveryGuarantee: "at-least-once",
});
export const request = api(
{ expose: true, auth: true, method: "POST", path: "/refunds" },
async (p: { orderID: number; reason: string }): Promise<{ id: number }> => {
const row = await db.queryRow<{ id: number }>`
INSERT INTO refunds (order_id, reason) VALUES (${p.orderID}, ${p.reason}) RETURNING id`;
await refundRequested.publish({ refundID: row!.id });
return { id: row!.id };
},
);
encore run starts Postgres locally and runs the topic and its subscribers on your machine, and the agent can inspect traces and schemas through the local MCP server. An agent that adds the topic above has also declared the queue behind it and can run the change locally before review.
On the governance side, an Admin can require manual infrastructure approval per environment, and only Admins can approve it.
Roles decide who can deploy and who can change cloud connections. On the Encore Pro plan, pull requests get preview environments with their own databases. The agent pushes code, and cloud access sits with Encore's IAM role, not the agent.
Encore covers the backend, and the frontend comes from you, either served with api.static or deployed to a frontend host. Custom roles beyond Admin, Member and Viewer are an add-on to the Encore Pro plan.
Run in your terminal to get started locally.
Void is an open source Vite SDK, CLI and self-hosted platform that deploys full-stack JavaScript apps to Cloudflare Workers with D1 or, through Hyperdrive, PostgreSQL and MySQL. Encore is an open source SDK for TypeScript and Go backends plus a platform that provisions and deploys them into your own AWS or GCP account, with RDS Postgres, Pub/Sub, cron jobs and object storage.
Encore. If the data is in AWS, Encore runs the tool in a VPC in your account next to it, while Void runs on Cloudflare and reaches AWS data through Hyperdrive over the internet or a tunnel.
Ask the agent to move the server routes into Encore API endpoints and the data into a database declared with the SDK, then run it with encore run, which starts Postgres locally. Connect your AWS account in Encore and push to deploy. Encore's AI integration docs cover generating rules files so the agent follows Encore's conventions.
Deploy to your cloud on AWS and Google Cloud
without managing infrastructure
Encore lets developers and agents define application infrastructure directly in code, then automatically provisions it from local development to production in your AWS or GCP account.