Prisma ORM 8 is here.Read the docs

Local app

Run your app locally on the runtime Prisma Compute deploys, wire it to a local database, and bring up the whole app with Composer.

Building locally with Prisma is ordinary app development: you run your framework's dev server, query a database, and iterate. What the platform adds is parity: the pieces you develop against locally behave like the ones you deploy to.

Compute runs Bun

Prisma Compute runs deployed apps on Bun. There is no proprietary runtime layer to emulate locally: run your app with Bun on your machine and you are exercising the same runtime your deployment uses. Bun's built-in APIs, like its S3 client, work identically in both places.

Day to day, iteration stays your framework's usual loop. A scaffolded Prisma ORM app starts with:

bun run dev

For a Bun-native server, run the entry file directly:

bun run src/index.ts

The Bun runtime guide walks through a full local build on Bun.

Wire in a local database

Point your app at a local Prisma Postgres instance instead of a hosted one. Start it from your project directory:

bunx prisma dev

It prints a DATABASE_URL you copy into .env; migrations and queries then run against your machine. Local Postgres covers instances, background mode, and management commands.

This .env wiring is hand-wired configuration, and it belongs to the direct dev-server loop: when you deploy an app configured this way, you swap DATABASE_URL for a hosted Prisma Postgres connection string, with no application code changes. A Composer app declares the wiring instead. The service depends on postgres() and reads its connection string as db.url from service.load(), so the same declaration resolves to a local database under dev and a hosted one on deploy, and there is no variable to swap.

Run the app with dev

Apps deploy to Compute as Prisma Composer apps: you declare your services in TypeScript and deploy stands them up. The same declarations run locally. One command brings the whole app up, whether it is one service or several, with its databases and buckets wired together:

bun run build
bunx prisma@latest dev module.ts

dev runs the same pipeline a deploy runs, but against local emulators standing in for Prisma Compute and Prisma Postgres. No cloud credentials are involved, and the local databases and buckets persist between runs until you pass --fresh. When the app runs locally, deploying it is the same declarations against the hosted platform.

Local development in Composer documents the full workflow: warm restarts, log filtering, and what is local versus what is real.

Next steps

On this page