diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index baf1a79018..9a7d7216b1 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -58,7 +58,7 @@ Prisma documentation site built with **Fumadocs** on **Next.js 16 App Router**. - `content/docs/` - v7 documentation (latest), served at `/docs/v7/*` - `content/docs.v6/` - v6 documentation, served at `/docs/v6/*` - Each section has a `meta.json` defining page order, icons, and hierarchy -- MDX frontmatter supports `badge: "early-access" | "deprecated" | "preview"` +- MDX frontmatter supports `badge: "early-access" | "release-candidate" | "beta" | "deprecated" | "preview"` **Key Directories:** diff --git a/.claude/launch.json b/.claude/launch.json index 89f9681413..75e2d44c79 100644 --- a/.claude/launch.json +++ b/.claude/launch.json @@ -7,6 +7,12 @@ "runtimeArgs": ["--filter", "docs", "exec", "next", "dev", "--port", "3105"], "port": 3105 }, + { + "name": "blog", + "runtimeExecutable": "pnpm", + "runtimeArgs": ["--filter", "blog", "exec", "next", "dev", "--port", "3002"], + "port": 3002 + }, { "name": "site", "runtimeExecutable": "pnpm", diff --git a/.claude/skills/README.md b/.claude/skills/README.md index 875432d2e0..7dee644c2a 100644 --- a/.claude/skills/README.md +++ b/.claude/skills/README.md @@ -30,7 +30,7 @@ Produces a blog-post **skeleton** (frontmatter, section headings, short stubs), 2. Point it at your local checkout of this repo so it can read current blog conventions. 3. Give it your author slug. If you're a first-time author, it scaffolds an author profile too. 4. Confirm the proposed slug, filename, date, and frontmatter. -5. It writes the skeleton, then adds contextual links: the first mention of Prisma Postgres, Prisma Compute, and Prisma Next links to docs for SEO, and topic mentions cross-link to related posts (for example, a bloom-filter mention links to the bloom-index post). +5. It writes the skeleton, then adds contextual links: the first mention of Prisma Postgres, Prisma Compute, and Prisma 8 links to docs for SEO, and topic mentions cross-link to related posts (for example, a bloom-filter mention links to the bloom-index post). 6. It hands back a link inventory and a next-step reminder. You flesh out the prose and open a draft PR. **Note:** the skill reads `content-write-blog/assets/positioning.md`, Prisma's internal positioning doc. It is **not committed to this public repo** (it's gitignored). Place it locally before drafting, or the skill will ask for it. diff --git a/.claude/skills/content-create-hero-image/README.md b/.claude/skills/content-create-hero-image/README.md index 32892491bf..b6d5c056fa 100644 --- a/.claude/skills/content-create-hero-image/README.md +++ b/.claude/skills/content-create-hero-image/README.md @@ -104,5 +104,5 @@ Mono for code/data. No stock imagery, generic AI visuals, logo wallpaper, random off-system colors, or on-canvas taglines. One cover, one idea. Open items the team is still validating: the Eclipse cover direction on new product posts; Compute -and Prisma Next have no dedicated color tokens yet (they inherit platform teal); and the skill +and Prisma 8 have no dedicated color tokens yet (they inherit platform teal); and the skill depends on extracted Figma resources rather than a live source in every environment. diff --git a/.claude/skills/content-create-hero-image/SKILL.md b/.claude/skills/content-create-hero-image/SKILL.md index 4a72e3c338..db15223a96 100644 --- a/.claude/skills/content-create-hero-image/SKILL.md +++ b/.claude/skills/content-create-hero-image/SKILL.md @@ -1,16 +1,17 @@ --- name: content-create-hero-image -description: Use when the operator wants a hero or meta image for a Prisma blog post; asks to create or generate a blog hero, cover, social card, Open Graph, or YouTube image; mentions cover art, a blog thumbnail, cover.svg/hero.svg/meta.png; references content-create-hero-image; or wants to interactively design cover imagery in Prisma's Eclipse house style. Produces an editable SVG hero plus a pixel-exact PNG meta image, and includes an interactive mode and a built-in design-review pass. +description: Use when the operator wants a hero or meta image for a Prisma blog post; asks to create or generate a blog hero, cover, social card, Open Graph, or YouTube image; mentions cover art, a blog thumbnail, cover.svg/hero.svg/meta.png; references content-create-hero-image; or wants to interactively design cover imagery in Prisma's 2026 brand (light paper, prism accents, Sora). Produces an editable SVG hero plus a pixel-exact PNG meta image, and includes an interactive mode and a built-in design-review pass. metadata: author: Prisma - version: "2026.6.23" + version: "2026.8.11" --- # Create blog hero & meta images -Produce the **hero** and **meta** (Open Graph) images for a Prisma blog post in the Eclipse -house style, styled from the bundled reference assets and from the most recent posts in the -operator's checkout, then wire them into the post's frontmatter. +Produce the **hero** and **meta** (Open Graph) images for a Prisma blog post in the **2026 +brand** — light paper surfaces, the prism accent family (cyan/yellow/red), Sora display type — +styled from the bundled reference assets and from the most recent posts in the operator's +checkout, then wire them into the post's frontmatter. The hero is a hand-authored, layered **SVG** — the editable source of truth — rendered to a **pixel-exact PNG**. The meta image is **raster (PNG)** because social platforms do not render @@ -29,11 +30,11 @@ Use [`README.md`](README.md) for usage and sample prompts; this `SKILL.md` is th - [`assets/tokens.json`](assets/tokens.json) — machine-readable tokens; the source of truth for hex/font values. - [`references/figma-source.md`](references/figma-source.md) — what `SOCIALS.fig` contains and how it was extracted. - [`references/figma-mcp.md`](references/figma-mcp.md) — **optional**: pull live specs/assets from the Prisma Figma workspace when a Figma MCP is connected. -- [`assets/logos/`](assets/logos/) — official Prisma logo/symbol, Prisma Next mark + lockup, Postgres/Compute icons (`README.md`). +- [`assets/logos/`](assets/logos/) — official Prisma logo/symbol, Prisma 8 mark + lockup, Postgres/Compute icons (`README.md`). - [`assets/fonts/`](assets/fonts/) — bundled brand fonts (Mona Sans, Inter, Geist Mono); used by the scripts. - [`assets/templates/cover.svg`](assets/templates/cover.svg) — parameterized starting template. -- [`assets/examples/`](assets/examples/) — one worked hero/meta pair per house content module; the quality bar for new work. -- [`assets/hero1.svg`](assets/hero1.svg)–[`hero4.svg`](assets/hero4.svg) — abstract reference heroes in the house style; study for palette, type, and motif alongside the worked examples. +- [`assets/examples/`](assets/examples/) — worked hero/meta pairs per content module. **Pre-rebrand (dark Eclipse era): study for composition and module structure ONLY — their palette, fonts, and surfaces are retired.** The current quality bar is the newest committed covers in `apps/blog/public/*/imgs/`. +- [`assets/hero1.svg`](assets/hero1.svg)–[`hero4.svg`](assets/hero4.svg) — abstract reference heroes, also pre-rebrand; same structure-only caveat. - [`scripts/embed-fonts.py`](scripts/embed-fonts.py) — inline the brand fonts into the SVG as base64 `@font-face`. **Run first.** - [`scripts/export-png.sh`](scripts/export-png.sh) — render the font-embedded SVG to PNG via headless Chrome so the PNG matches the SVG in a browser exactly. **Run second.** @@ -42,6 +43,25 @@ Use [`README.md`](README.md) for usage and sample prompts; this `SKILL.md` is th Two images: a `hero` shown on the post itself, and a `meta` image for Open Graph and social cards. A single design may serve both files. +**Contexts of use — design for all three.** A cover lives as (1) a **grid thumbnail** in the +blog index, cropped to ~16:9 by `object-cover` and rendered ~400px wide **directly beside the +post's real title**, on light AND dark card surfaces; (2) the full-size social/OG card; (3) the +in-post hero. The thumbnail-next-to-title context drives the hardest rules: + +- **Headline**: a compressed thesis of ≤6 words, or no copy at all — never a restatement of the + post title it will sit beside. Across a batch, vary composition (no-copy graphic-led, + corner-stripe brand moment, headline+module) so adjacent covers don't read as one template. +- **Kicker**: ≥20px with a ≥5.5px dot, or omit it — a 17px kicker is noise at thumbnail scale. +- **Sign-off**: prefer the **full-color lockup** (`assets/logos/prisma-lockup-color.svg`, + ~112px wide, inlined as a group) over the plain-text wordmark; the mark carries at thumbnail + scale where small grey type disappears. +- **Crop-safe zone**: every critical element (lockup, kicker, headline, module edges) stays + ≥72px from every canvas edge and must survive a centered 16:9 crop of the 1200×630 frame. +- **Dual-surface**: the artwork never theme-switches; it must read as an intentional object on + both white and ink (#1a1a1a) surrounds. Avoid vast empty pure-white regions — washes on + covers run a step stronger than page washes (~0.18–0.28 per stop) so the piece carries color + at small sizes and on dark. + 1. **Format.** - **hero: SVG by default** — the prisma.io/blog standard, and it suits the typographic, geometric heroes the blog favours. The SVG is the editable source of truth; always export @@ -57,10 +77,14 @@ cards. A single design may serve both files. - Other canvases (in-post hero `844×474`, YouTube `1280×720`, custom) are produced on request — change `width`/`height`/`viewBox` and scale font sizes proportionally (≈ ×0.70 for the 844-wide hero). -3. **Size budget.** Keep the meta PNG **under 1 MB** (1x normally lands ~200–500 KB; re-export - at 1x if a denser export overshoots). Keep the SVG lean: **subset, embedded fonts** (see step - 6) land each hero around ~20–30 KB. Prefer vector paths over embedded raster; flag any SVG - over ~1 MB. +3. **Size budget.** Keep the meta PNG **under 1 MB**. A 1x export normally lands ~200–500 KB; + a cover whose art is mostly smooth wash gradients can overshoot (one landed at 1.4 MB), so + check the file and re-export at 1x, or flatten a redundant wash layer, if it does. Keep the + SVG lean with **subset, embedded fonts** (step 6): a typographic cover lands ~30–55 KB, and + a code/terminal-heavy one ~55–75 KB because the mono glyph subset is larger. Above ~120 KB, + check that fonts actually subset (the venv python needs `fonttools` + `brotli`; without them + `embed-fonts.py` silently falls back to embedding whole WOFF2 files). Prefer vector paths + over embedded raster; flag any SVG over ~1 MB. 4. **Naming.** Base names `hero` and `meta`, extension following the format: `hero.svg` (or `hero.png` when raster) and `meta.png`. **No content hashes, no dimensions** in filenames. For N explored directions, suffix the base name (`hero-a.svg`/`meta-a.png`, …). @@ -141,8 +165,8 @@ the Workflow'"_. | 3 | **Custom copy** (if text) | quote the post's own thesis as the suggestion | the post's thesis verbatim; blank = no text | | 4 | **What should the graphic symbolise?** | restate the post's core idea in concrete terms | the literal mechanism from the post | | 5 | **Isometric skew on the graphic?** | "Default yes for card/table modules; flow/loop diagrams usually read best **flat**." | yes for cards/tables, flat for flows | -| 6 | **Background family** | name the product's surface | teal (Postgres/Compute/Next/platform); indigo only for ORM | -| 7 | **Mood** | launch / educational / conceptual / editorial / technical | educational, dark | +| 6 | **Accent color** | name the owning product | cyan (ORM / Prisma 8 / platform); yellow (Postgres); red (Compute) | +| 7 | **Mood** | launch / educational / conceptual / editorial / technical | educational, light paper | | 8 | **Product logo** | which mark, if any | the post's product mark when it clarifies; else just the `Prisma` wordmark | | 9 | **How many directions to explore?** | 1–4 distinct concepts | 1 (offer up to 4) | @@ -154,8 +178,8 @@ obeys the anti-patterns and the design-review bar — creative ≠ slop. ### 3. Choose a visual direction -Decide a concept that's literal-but-elegant, never generic. Pick: surface (dark default / light -editorial), product accent, eyebrow label, the **content module** that fits the content (see +Decide a concept that's literal-but-elegant, never generic. Pick: surface (light paper default / +ink dark only with a stated reason), product accent, kicker label, the **content module** that fits the content (see `design-system.md` → _Content modules_: pipeline/flow, data/log panel, terminal, code card, comparison card), and whether a product lockup belongs in the composition. Anchor every choice in `design-system.md`. One accent, one idea, strong hierarchy, generous space. @@ -185,9 +209,10 @@ the message (e.g. a chart) — keep the layer groups (`background`, `badge`, `he chars). Set the eyebrow/badge pill width to roughly `(label length × 14) + 48`. Include the `
. This check fails if any
+# /docs/orm/v8/reference/error-reference#. This check fails if any
# known code is missing from the page, even if the sync workflow breaks.
#
# Runs on pushes to main, on PRs that touch the page or its tooling, and on a
@@ -14,7 +14,7 @@ on:
branches: [main]
pull_request:
paths:
- - apps/docs/content/docs/orm/next/reference/error-reference.mdx
+ - apps/docs/content/docs/orm/v8/reference/error-reference.mdx
- apps/docs/scripts/generate-error-reference.mjs
- .github/workflows/error-reference-check.yml
- .github/workflows/sync-error-reference-docs.yml
@@ -49,4 +49,4 @@ jobs:
node-version: "20"
- name: Verify page lists every known error code
- run: node prisma-src/scripts/list-error-codes.mjs --root prisma-src --verify apps/docs/content/docs/orm/next/reference/error-reference.mdx
+ run: node prisma-src/scripts/list-error-codes.mjs --root prisma-src --verify apps/docs/content/docs/orm/v8/reference/error-reference.mdx
diff --git a/.github/workflows/sync-error-reference-docs.yml b/.github/workflows/sync-error-reference-docs.yml
index b4221c23bf..da80f04d98 100644
--- a/.github/workflows/sync-error-reference-docs.yml
+++ b/.github/workflows/sync-error-reference-docs.yml
@@ -42,18 +42,18 @@ jobs:
run: node ./scripts/generate-error-reference.mjs --source ../../prisma-src/docs/reference/error-reference.md
- name: Verify page lists every known error code
- run: node prisma-src/scripts/list-error-codes.mjs --root prisma-src --verify apps/docs/content/docs/orm/next/reference/error-reference.mdx
+ run: node prisma-src/scripts/list-error-codes.mjs --root prisma-src --verify apps/docs/content/docs/orm/v8/reference/error-reference.mdx
- name: Check for changes
id: changes
run: |
- if [[ -z "$(git status --porcelain --untracked-files=all -- apps/docs/content/docs/orm/next/reference/error-reference.mdx)" ]]; then
+ if [[ -z "$(git status --porcelain --untracked-files=all -- apps/docs/content/docs/orm/v8/reference/error-reference.mdx)" ]]; then
echo "changed=false" >> $GITHUB_OUTPUT
echo "No changes detected"
else
echo "changed=true" >> $GITHUB_OUTPUT
echo "Changes detected:"
- git status --short -- apps/docs/content/docs/orm/next/reference/error-reference.mdx
+ git status --short -- apps/docs/content/docs/orm/v8/reference/error-reference.mdx
fi
- name: Commit and push
@@ -65,8 +65,8 @@ jobs:
run: |
git config user.email "prismabots@gmail.com"
git config user.name "Prismo"
- git add apps/docs/content/docs/orm/next/reference/error-reference.mdx
- git commit -m "chore(docs): sync Prisma Next error reference"
+ git add apps/docs/content/docs/orm/v8/reference/error-reference.mdx
+ git commit -m "chore(docs): sync Prisma 8 error reference"
git push "https://x-access-token:${BOT_TOKEN}@github.com/${TARGET_REPO}.git" "HEAD:${TARGET_REF}"
- name: Trigger Vercel deploy
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ff091afaa0..c3dd1ae90b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -139,7 +139,7 @@ PR titles should follow the same convention as commits:
Writing or editing a page in `apps/docs` or `apps/blog`? Start with the [`docs-writer` guide](.claude/skills/docs-writer/README.md). The "Writing style in one minute" section at the top is all you need to make a solid first contribution; the rest is there when you want it.
-It covers how we write docs for Prisma Postgres, Prisma Compute, and Prisma Next: page shape, how to write a step, what to cut, and a final-pass checklist, with a worked example for each kind of page.
+It covers how we write docs for Prisma Postgres, Prisma Compute, and Prisma 8: page shape, how to write a step, what to cut, and a final-pass checklist, with a worked example for each kind of page.
- **Using Claude Code?** The guide loads as a skill automatically. Ask it to write or improve a page.
- **Not using Claude Code?** Read [`SKILL.md`](.claude/skills/docs-writer/SKILL.md) as a checklist and [`how-to-use.md`](.claude/skills/docs-writer/references/how-to-use.md) for examples.
diff --git a/apps/blog/content/blog/advanced-database-schema-management-with-atlas-and-prisma-orm/index.mdx b/apps/blog/content/blog/advanced-database-schema-management-with-atlas-and-prisma-orm/index.mdx
index bd73b72160..3fd4e993ec 100644
--- a/apps/blog/content/blog/advanced-database-schema-management-with-atlas-and-prisma-orm/index.mdx
+++ b/apps/blog/content/blog/advanced-database-schema-management-with-atlas-and-prisma-orm/index.mdx
@@ -394,4 +394,4 @@ In this tutorial, you learned how to integrate Atlas into an existing Prisma ORM
Check out the [example repo](https://github.com/prisma/prisma-atlas/) if you want to have a quick look at the final result of this tutorial.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/agentic-engineering-at-prisma/index.mdx b/apps/blog/content/blog/agentic-engineering-at-prisma/index.mdx
index ae9ca0e2be..59810fbe2a 100644
--- a/apps/blog/content/blog/agentic-engineering-at-prisma/index.mdx
+++ b/apps/blog/content/blog/agentic-engineering-at-prisma/index.mdx
@@ -6,7 +6,8 @@ authors:
- "Tyler Hogarth"
metaTitle: "Agentic Engineering at Prisma"
metaDescription: "Part of Prisma's agentic software development series on how it ships software with AI agents, covering the process, roles, and documentation layer that make cross-repo agent work possible."
-heroImagePath: "/agentic-engineering-at-prisma/imgs/hero.png"
+heroImagePath: "/agentic-engineering-at-prisma/imgs/hero.svg"
+heroImageAlt: "The five Drive lifecycle stages as a rail, Plan, Execute, Review, Ship, and Delivery review, with the agent-owned Execute stage highlighted"
metaImagePath: "/agentic-engineering-at-prisma/imgs/meta.png"
tags: ["ai"]
series: agentic-engineering
diff --git a/apps/blog/content/blog/agents-md-for-databases/index.mdx b/apps/blog/content/blog/agents-md-for-databases/index.mdx
index ac95bd2152..333d233424 100644
--- a/apps/blog/content/blog/agents-md-for-databases/index.mdx
+++ b/apps/blog/content/blog/agents-md-for-databases/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "AGENTS.md for Databases: Rules for Safe, Fast Coding Agents"
metaDescription: "A copy-pasteable AGENTS.md section for database work: ephemeral Postgres via npx create-db, safe migrations, and JSON output for Claude Code, Cursor, and Codex."
heroImagePath: "/agents-md-for-databases/imgs/hero.svg"
-heroImageAlt: "An AGENTS.md file open in an editor, with database rules highlighted"
+heroImageAlt: "An ink code card with an AGENTS.md filename tab holding the five database rules, with the npx create-db@latest --json line marked in yellow"
metaImagePath: "/agents-md-for-databases/imgs/meta.png"
tags:
- "ai"
@@ -62,7 +62,7 @@ Be clear about what the rehearsal proves: the migration applies cleanly to real
### Prefer machine-readable output
-Terminal output with spinners and box-drawing characters is written for humans. An agent can read it, but it spends tokens on decoration and invites misextraction; a named JSON field is unambiguous. Where a CLI offers structured output, the agent should use it: `create-db` has `--json`, the Prisma CLI supports it on commands like `prisma version --json`, and the [Prisma Next](https://www.prisma.io/docs/cli/next) CLI (the next-generation Prisma ORM, currently in Early Access) carries `--json` across its command surface, from `db schema` to `migration show`. The rule generalizes beyond Prisma: prefer a `--json` flag anywhere one exists, and parse fields instead of scraping text.
+Terminal output with spinners and box-drawing characters is written for humans. An agent can read it, but it spends tokens on decoration and invites misextraction; a named JSON field is unambiguous. Where a CLI offers structured output, the agent should use it: `create-db` has `--json`, the Prisma CLI supports it on commands like `prisma version --json`, and the [Prisma 8](https://www.prisma.io/docs/cli/v8) CLI (the next-generation Prisma ORM, currently a Release Candidate) carries `--json` across its command surface, from `db schema` to `migration show`. The rule generalizes beyond Prisma: prefer a `--json` flag anywhere one exists, and parse fields instead of scraping text.
### Connection strings live in the environment
diff --git a/apps/blog/content/blog/announcing-query-insights-for-prisma-postgres/index.mdx b/apps/blog/content/blog/announcing-query-insights-for-prisma-postgres/index.mdx
index 6bd0e3bab6..0395618c60 100644
--- a/apps/blog/content/blog/announcing-query-insights-for-prisma-postgres/index.mdx
+++ b/apps/blog/content/blog/announcing-query-insights-for-prisma-postgres/index.mdx
@@ -7,8 +7,9 @@ authors:
- "Aidan McAlister"
metaTitle: "Announcing Query Insights For Prisma Postgres"
metaDescription: "Query Insights gives you built-in visibility into how your database queries behave in production. It is included in Prisma Postgres and works out of the box without any setup."
-metaImagePath: "/announcing-query-insights-for-prisma-postgres/announcing-query-insights-for-prisma-postgres-og.png"
-heroImagePath: "/announcing-query-insights-for-prisma-postgres/announcing-query-insights-for-prisma-postgres-og.png"
+metaImagePath: "/announcing-query-insights-for-prisma-postgres/imgs/meta.png"
+heroImagePath: "/announcing-query-insights-for-prisma-postgres/imgs/hero.svg"
+heroImageAlt: "The Queries tab of a Prisma Postgres database: average latency, queries per second, a latency chart, and grouped query shapes with the slowest one highlighted"
---
Query Insights gives you built-in visibility into how your database queries behave in production. It is included in Prisma Postgres and works out of the box without any setup.
diff --git a/apps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdx b/apps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdx
index eb2a675c90..961a56d668 100644
--- a/apps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdx
+++ b/apps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdx
@@ -260,4 +260,4 @@ No. TypedSQL types each query at generate time, so the SQL text must be static.
TypedSQL gives you raw SQL with the type safety of the Prisma Client API: write a query in `prisma/sql`, run `npx prisma generate --sql` against a live database, and call the generated function with `$queryRawTyped` for fully typed results. On Prisma ORM 7 it stays behind the `typedSql` Preview flag, works with the `prisma-client` generator's custom output directory, and fits any PostgreSQL or modern MySQL setup, including [Prisma Postgres](https://www.prisma.io/docs/postgres). The [TypedSQL documentation](https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/typedsql) covers the full reference, including argument annotations and database support.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/app-hosting-compute-platforms-for-ai-agents-2026/index.mdx b/apps/blog/content/blog/app-hosting-compute-platforms-for-ai-agents-2026/index.mdx
index a24d84e750..55bf3c2cb0 100644
--- a/apps/blog/content/blog/app-hosting-compute-platforms-for-ai-agents-2026/index.mdx
+++ b/apps/blog/content/blog/app-hosting-compute-platforms-for-ai-agents-2026/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "App Hosting and Compute Platforms for AI Agents in 2026"
metaDescription: "A field guide to the 2026 wave of app-hosting and compute platforms (Prisma Compute, Neon, Cloudflare Containers, Hosting.com, Unkey, and Insforge) and how close each gets to one coherent stack for agents."
heroImagePath: "/app-hosting-compute-platforms-for-ai-agents-2026/imgs/hero.svg"
-heroImageAlt: "Field guide, 2026: app hosting and compute for AI agents. Prisma Compute, Hosting.com, Cloudflare Containers, Unkey Deploy, Neon Compute, and Insforge."
+heroImageAlt: "An evaluation matrix of six platforms, Prisma Compute, Neon Compute, Cloudflare Containers, Hosting.com, Unkey Deploy and Insforge, scored on when they shipped, whether a database is included, and whether the stack is integrated"
metaImagePath: "/app-hosting-compute-platforms-for-ai-agents-2026/imgs/meta.png"
tags:
- "platform"
@@ -31,7 +31,7 @@ So, here is a field guide to who shipped what recently, and how close they get t
[Prisma Compute](/launching-prisma-compute-public-beta) is TypeScript app hosting that runs in the same regions as [Prisma Postgres](https://www.prisma.io/postgres), so app-to-database queries stay low-latency. It targets the workloads typical serverless still struggles with: WebSockets, background jobs, cron tasks (first-class in `prisma.config.ts`), and agents that need to stay warm and stateful.
-Deployments are versioned with preview URLs. [Prisma Next](/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) (early access) adds a contract-first ORM with a machine-readable `contract.json`, so the ORM, Postgres, and Compute now share one schema.
+Deployments are versioned with preview URLs. [Prisma 8](/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) (Release Candidate) adds a contract-first ORM with a machine-readable `contract.json`, so the ORM, Postgres, and Compute now share one schema.
On the agent side, `SKILL.md` files, agent rules, and native MCP support give the AI a clean interface for the full loop: init, schema changes, data access, deploy, logs, and redeploy. pgvector and extensions make feeding structured context easier with less manual ETL.
diff --git a/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-auth-mngp1ps7kip4/index.mdx b/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-auth-mngp1ps7kip4/index.mdx
index 330a72f1bc..916c2725db 100644
--- a/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-auth-mngp1ps7kip4/index.mdx
+++ b/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-auth-mngp1ps7kip4/index.mdx
@@ -671,4 +671,4 @@ As next steps, you could:
Your database runs on [Prisma Postgres](https://www.prisma.io/postgres), which you can manage in the [Prisma Console](https://console.prisma.io). If AI agents are part of your workflow, the [Prisma MCP server](https://www.prisma.io/docs/postgres/integrations/mcp-server) lets them create and manage databases as they need them. In the next and final part of this series, you'll set up CI and deploy the backend with [Prisma Compute](https://www.prisma.io/compute), which runs your app on the same platform as your database.
-This series teaches Prisma ORM 7, the current production release. To see where Prisma ORM is heading for AI-assisted development, read [The Next Evolution of Prisma ORM](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm). Prisma Next is the agent-native evolution of the ORM, available in Early Access today, and it becomes Prisma 8 at GA. The type-safe, schema-as-contract approach you used here, where the same models drive your queries, your credentials, and your migrations, is exactly what Prisma Next builds on, with structured output that humans and coding agents can build on safely. The [performance benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark) covers what the rewrite means for throughput and client size.
+This series teaches Prisma ORM 7, the current production release. To see where Prisma ORM is heading for AI-assisted development, read [The Next Evolution of Prisma ORM](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm). Prisma 8 is the agent-native evolution of the ORM, now available as a Release Candidate. The type-safe, schema-as-contract approach you used here, where the same models drive your queries, your credentials, and your migrations, is exactly what Prisma 8 builds on, with structured output that humans and coding agents can build on safely. The [performance benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark) covers what the rewrite means for throughput and client size.
diff --git a/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-data-modeling-tsjs1ps7kip1/index.mdx b/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-data-modeling-tsjs1ps7kip1/index.mdx
index 5db91bc226..eacb50b86a 100644
--- a/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-data-modeling-tsjs1ps7kip1/index.mdx
+++ b/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-data-modeling-tsjs1ps7kip1/index.mdx
@@ -904,4 +904,4 @@ In the next parts of this series, you'll learn more about:
The database you created with `npx create-db` runs on [Prisma Postgres](https://www.prisma.io/postgres), which you can claim and manage in the [Prisma Console](https://console.prisma.io). If AI agents are part of your development workflow, the [Prisma MCP server](https://www.prisma.io/docs/postgres/integrations/mcp-server) lets them create and manage databases as they need them. And when you reach the deployment part of this series, [Prisma Compute](https://www.prisma.io/compute) runs your backend on the same platform as your database.
-This series teaches Prisma ORM 7, the current production release. If you want to see where Prisma ORM is heading for AI-assisted development, read [The Next Evolution of Prisma ORM](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm). Prisma Next is the agent-native evolution of the ORM, available in Early Access today, and it becomes Prisma 8 at GA. It builds on the idea at the heart of this article: your schema acts as a single data contract, and every query against it is type-safe and returns structured output that humans and coding agents can build on safely. It runs in parallel with an existing project so you can migrate incrementally, and the [performance benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark) covers what the rewrite means for throughput and client size.
+This series teaches Prisma ORM 7, the current production release. If you want to see where Prisma ORM is heading for AI-assisted development, read [The Next Evolution of Prisma ORM](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm). Prisma 8 is the agent-native evolution of the ORM, now available as a Release Candidate. It builds on the idea at the heart of this article: your schema acts as a single data contract, and every query against it is type-safe and returns structured output that humans and coding agents can build on safely. It runs in parallel with an existing project so you can migrate incrementally, and the [performance benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark) covers what the rewrite means for throughput and client size.
diff --git a/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-deployment-bbba1ps7kip5/index.mdx b/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-deployment-bbba1ps7kip5/index.mdx
index dbd339cc0c..1c6383cc5b 100644
--- a/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-deployment-bbba1ps7kip5/index.mdx
+++ b/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-deployment-bbba1ps7kip5/index.mdx
@@ -247,4 +247,4 @@ Over the four parts, you designed a data model, built a REST API with Hono, secu
If AI agents are part of your workflow, the [Prisma MCP server](https://www.prisma.io/docs/postgres/integrations/mcp-server) lets them create and manage Prisma Postgres databases as they need them.
-This series teaches Prisma ORM 7, the current production release. To see where Prisma ORM is heading for AI-assisted development, read [The Next Evolution of Prisma ORM](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm). Prisma Next is the agent-native evolution of the ORM, available in Early Access today, and it becomes Prisma 8 at GA. It builds on the same schema-as-contract idea you relied on across this series, with structured, type-safe output that humans and coding agents can build on safely, and you can adopt it incrementally alongside an existing project. The [performance benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark) covers what the rewrite means for throughput and client size.
+This series teaches Prisma ORM 7, the current production release. To see where Prisma ORM is heading for AI-assisted development, read [The Next Evolution of Prisma ORM](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm). Prisma 8 is the agent-native evolution of the ORM, now available as a Release Candidate. It builds on the same schema-as-contract idea you relied on across this series, with structured, type-safe output that humans and coding agents can build on safely, and you can adopt it incrementally alongside an existing project. The [performance benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark) covers what the rewrite means for throughput and client size.
diff --git a/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-rest-api-validation-dcba1ps7kip3/index.mdx b/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-rest-api-validation-dcba1ps7kip3/index.mdx
index 886902de72..75041b1c9d 100644
--- a/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-rest-api-validation-dcba1ps7kip3/index.mdx
+++ b/apps/blog/content/blog/backend-prisma-typescript-orm-with-postgresql-rest-api-validation-dcba1ps7kip3/index.mdx
@@ -608,4 +608,4 @@ In the next parts of this series, you'll learn more about:
Your database runs on [Prisma Postgres](https://www.prisma.io/postgres), which you can manage in the [Prisma Console](https://console.prisma.io). If AI agents are part of your development workflow, the [Prisma MCP server](https://www.prisma.io/docs/postgres/integrations/mcp-server) lets them create and manage databases as they need them. When you reach the deployment part of this series, [Prisma Compute](https://www.prisma.io/compute) runs your backend on the same platform as your database.
-This series teaches Prisma ORM 7, the current production release. If you want to see where Prisma ORM is heading for AI-assisted development, read [The Next Evolution of Prisma ORM](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm). Prisma Next is the agent-native evolution of the ORM, available in Early Access today, and it becomes Prisma 8 at GA. The type-safe, schema-as-contract approach you used here to keep validation and queries in sync is exactly what Prisma Next builds on: every query returns structured output that humans and coding agents can build on safely, and you can adopt it incrementally alongside an existing project. The [performance benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark) covers what the rewrite means for throughput and client size.
+This series teaches Prisma ORM 7, the current production release. If you want to see where Prisma ORM is heading for AI-assisted development, read [The Next Evolution of Prisma ORM](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm). Prisma 8 is the agent-native evolution of the ORM, now available as a Release Candidate. The type-safe, schema-as-contract approach you used here to keep validation and queries in sync is exactly what Prisma 8 builds on: every query returns structured output that humans and coding agents can build on safely, and you can adopt it incrementally alongside an existing project. The [performance benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark) covers what the rewrite means for throughput and client size.
diff --git a/apps/blog/content/blog/building-open-chat/index.mdx b/apps/blog/content/blog/building-open-chat/index.mdx
index d9c75e8d17..c0a958c78e 100644
--- a/apps/blog/content/blog/building-open-chat/index.mdx
+++ b/apps/blog/content/blog/building-open-chat/index.mdx
@@ -8,7 +8,7 @@ metaTitle: "How I Built a Chat App That Never Drops a Token"
metaDescription: "A personal walkthrough of building Open Chat (oss.chat): durable, resumable AI chat on Durable Streams, Prisma Streams, TanStack DB, and Prisma Compute. How each piece works and what it enables."
excerpt: "How I built Open Chat: durable, resumable AI chat where the answer is safe the instant it exists. It runs on Durable Streams, Prisma Streams, TanStack DB, and Prisma Compute."
heroImagePath: "/building-open-chat/imgs/hero.svg"
-heroImageAlt: "Open Chat: a durable log of message.created and message.delta events, with an SSE tail that resumes from offset 412. Chat that never drops a token, durable-log-backed streaming."
+heroImageAlt: "An append-only event log for one chat: message.created, message.delta and message.completed rows on a durable stream, with the live delta highlighted"
metaImagePath: "/building-open-chat/imgs/meta.png"
tags:
- "platform"
@@ -138,7 +138,7 @@ const { data: messages } = useLiveQuery(messagesCollection);
The payoff is in the re-renders. When an event arrives, exactly the affected rows update: streaming a long answer re-renders _one_ message, not the page. And because both relational collections and the stream-fed collection are queryable the same way, a component can join "the chats I own" with "the live status of the one I'm viewing" in a single declarative query. The live event stream and the typed Postgres data meet in the same place.
-That typed Postgres data comes from [Prisma Next](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app): one contract file describes users, chats, and credits, and compiles to a fully typed client. `db.orm.Chat.where({ userId }).orderBy(c => c.updatedAt.desc()).all()` autocompletes every column. The relational half of the app gets the same "no surprises" feeling the streaming half does.
+That typed Postgres data comes from [Prisma 8](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app): one contract file describes users, chats, and credits, and compiles to a fully typed client. `db.orm.Chat.where({ userId }).orderBy(c => c.updatedAt.desc()).all()` autocompletes every column. The relational half of the app gets the same "no surprises" feeling the streaming half does.
**What it enables:** one query language for two kinds of data. The chat list, the credit balance, and the live token stream all read the same way, so there's no glue layer and no second state manager to keep in sync.
diff --git a/apps/blog/content/blog/bun-rust-rewrite-prisma-compute/index.mdx b/apps/blog/content/blog/bun-rust-rewrite-prisma-compute/index.mdx
index 9676a95cee..c849525b73 100644
--- a/apps/blog/content/blog/bun-rust-rewrite-prisma-compute/index.mdx
+++ b/apps/blog/content/blog/bun-rust-rewrite-prisma-compute/index.mdx
@@ -6,8 +6,8 @@ authors:
- "Alexey Orlenko"
metaTitle: "We put Bun's Rust rewrite in production on Prisma Compute"
metaDescription: "Why Prisma Compute's public beta runs on Bun's Rust rewrite canary: the memory and connection-pool failures we hit on stable Bun, and what changed."
-heroImagePath: "/bun-rust-rewrite-prisma-compute/imgs/hero.png"
-heroImageAlt: "Bun, Rust, and Prisma Compute"
+heroImagePath: "/bun-rust-rewrite-prisma-compute/imgs/hero.svg"
+heroImageAlt: "Peak resident memory in the Bun.S3File.arrayBuffer() loop inside a 1 GiB container: stable 1.3.14 runs past 900 MiB and is OOM-killed at iteration 96, while the Rust rewrite canary stays flat at 118 MiB to 4096 iterations"
metaImagePath: "/bun-rust-rewrite-prisma-compute/imgs/meta.png"
tags:
- "platform"
diff --git a/apps/blog/content/blog/caching-database-queries-with-prisma-accelerate/index.mdx b/apps/blog/content/blog/caching-database-queries-with-prisma-accelerate/index.mdx
index ca9e24734a..5bc9107d79 100644
--- a/apps/blog/content/blog/caching-database-queries-with-prisma-accelerate/index.mdx
+++ b/apps/blog/content/blog/caching-database-queries-with-prisma-accelerate/index.mdx
@@ -92,4 +92,4 @@ Caching remains one of the genuinely hard problems of software engineering. Cach
With caching built into [Prisma Postgres](https://www.prisma.io/docs/postgres/database/caching) on a per-query basis, the implementation part stops being the hard part, and you can spend the time on the decisions instead. Create a database with `npx create-db`, add a `cacheStrategy` to your hottest query, and measure the difference.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/claude-generated-50-websites-overnight-prisma-compute/index.mdx b/apps/blog/content/blog/claude-generated-50-websites-overnight-prisma-compute/index.mdx
index 8102ea7c2f..46206c4c9b 100644
--- a/apps/blog/content/blog/claude-generated-50-websites-overnight-prisma-compute/index.mdx
+++ b/apps/blog/content/blog/claude-generated-50-websites-overnight-prisma-compute/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "Claude Generated 50 Websites Overnight with Prisma Compute"
metaDescription: "Ali Fatemi gave Claude the Prisma docs and CLI, then used Prisma Compute to turn AI-generated websites into working URLs."
heroImagePath: "/claude-generated-50-websites-overnight-prisma-compute/imgs/hero.svg"
-heroImageAlt: "A dark pipeline showing claude, Prisma Compute, and live URLs under the headline 50 websites overnight."
+heroImageAlt: "Fifty small deployment tiles in a dense grid with one picked out in red, standing for the roughly 50 sites an agent generated overnight and deployed inside one Prisma app"
metaImagePath: "/claude-generated-50-websites-overnight-prisma-compute/imgs/meta.png"
excerpt: "Ali Fatemi gave Claude the Prisma docs and CLI, then used Prisma Compute to turn generated websites into working URLs."
tags:
diff --git a/apps/blog/content/blog/client-extensions-preview-8t3w27xkrxxn/index.mdx b/apps/blog/content/blog/client-extensions-preview-8t3w27xkrxxn/index.mdx
index 14b2c86f3a..e24bf3555f 100644
--- a/apps/blog/content/blog/client-extensions-preview-8t3w27xkrxxn/index.mdx
+++ b/apps/blog/content/blog/client-extensions-preview-8t3w27xkrxxn/index.mdx
@@ -1280,4 +1280,4 @@ No. Calling `$extends` returns a new, extended client instance and leaves the or
Extensions are how you teach Prisma Client the conventions of your codebase: the 15 patterns above are starting points, and the [examples repo](https://github.com/prisma/prisma-client-extensions) keeps runnable versions of each. They work the same against any Postgres, including a [Prisma Postgres](https://www.prisma.io/docs/postgres) database you can create in seconds with `npx create-db`.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/create-prisma-deploy-prisma-compute/index.mdx b/apps/blog/content/blog/create-prisma-deploy-prisma-compute/index.mdx
index 84e7b9ae0c..5d30ba5bec 100644
--- a/apps/blog/content/blog/create-prisma-deploy-prisma-compute/index.mdx
+++ b/apps/blog/content/blog/create-prisma-deploy-prisma-compute/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "Deploy Prisma Apps with create-prisma"
metaDescription: "create-prisma now scaffolds Compute-ready Prisma apps with prisma.compute.ts, compute:deploy, Prisma Postgres, and Prisma Skills add-ons."
heroImagePath: "/create-prisma-deploy-prisma-compute/imgs/hero.svg"
-heroImageAlt: "Scaffold a deploy-ready app with create-prisma: bun create prisma@latest, then choose a template, generate a typed config, and add Postgres and Skills."
+heroImageAlt: "An ink terminal card running bun create prisma@latest, with a checklist of what the scaffold writes: prisma.compute.ts, Prisma Postgres, Prisma Skills, and a compute:deploy script"
metaImagePath: "/create-prisma-deploy-prisma-compute/imgs/meta.png"
excerpt: "create-prisma now scaffolds Compute-ready Prisma apps with prisma.compute.ts, compute:deploy, Prisma Postgres, and Prisma Skills add-ons."
series: prisma-compute
diff --git a/apps/blog/content/blog/data-migrations-in-prisma-next/index.mdx b/apps/blog/content/blog/data-migrations-in-prisma-next/index.mdx
index 60ba524927..f437e0130b 100644
--- a/apps/blog/content/blog/data-migrations-in-prisma-next/index.mdx
+++ b/apps/blog/content/blog/data-migrations-in-prisma-next/index.mdx
@@ -1,14 +1,14 @@
---
-title: "Data Migrations in Prisma Next"
+title: "Data Migrations in Prisma 8"
slug: "data-migrations-in-prisma-next"
date: "2026-05-06"
authors:
- "Will Madden"
- "Ankur Datta"
-metaTitle: "Data migrations in Prisma Next"
-metaDescription: "Write data migrations in TypeScript with Prisma Next. Backfill columns and transform data alongside schema changes using a type-safe query builder."
+metaTitle: "Data migrations in Prisma 8"
+metaDescription: "Write data migrations in TypeScript with Prisma 8. Backfill columns and transform data alongside schema changes using a type-safe query builder."
heroImagePath: "/data-migrations-in-prisma-next/imgs/hero.svg"
-heroImageAlt: "Data migrations in Prisma Next"
+heroImageAlt: "A migration flow: addColumn leaves displayName nullable, a highlighted dataTransform step backfills it to Anonymous, then setNotNull makes the column required"
metaImagePath: "/data-migrations-in-prisma-next/imgs/meta.png"
tags:
- "orm"
@@ -17,11 +17,13 @@ series: prisma-next
seriesIndex: 5
---
-Sooner or later, you need a migration to change data as well as schema. In Prisma Next, that happens inside your migration in TypeScript, with the same [query builder](https://www.prisma.io/docs/orm/next/fundamentals/writing-data) you use in your app.
+> _Editor's note: Prisma 8 was developed under the working name Prisma Next. This post has been updated to use the final name._
-In the [previous post](https://pris.ly/ts-migrations-pn) we covered [how migrations change the database schema](https://www.prisma.io/docs/orm/next/migrations/how-migrations-work): a TypeScript migration file with a list of operations, compiled to JSON, applied by the [migration runner](https://www.prisma.io/docs/orm/next/migrations/applying-a-migration). Start there if any of those terms are unfamiliar.
+Sooner or later, you need a migration to change data as well as schema. In Prisma 8, that happens inside your migration in TypeScript, with the same [query builder](https://www.prisma.io/docs/orm/v8/fundamentals/writing-data) you use in your app.
-Take a common example. You've added a `displayName` column to `User` in [`contract.prisma`](https://www.prisma.io/docs/orm/next/contract-authoring/the-data-contract) and you want to make it `NOT NULL`. There's a snag: there are already rows in the table, and they don't have a `displayName` yet, so setting the column `NOT NULL` fails, every existing row violates the constraint.
+In the [previous post](https://pris.ly/ts-migrations-pn) we covered [how migrations change the database schema](https://www.prisma.io/docs/orm/v8/migrations/how-migrations-work): a TypeScript migration file with a list of operations, compiled to JSON, applied by the [migration runner](https://www.prisma.io/docs/orm/v8/migrations/applying-a-migration). Start there if any of those terms are unfamiliar.
+
+Take a common example. You've added a `displayName` column to `User` in [`contract.prisma`](https://www.prisma.io/docs/orm/v8/contract-authoring/the-data-contract) and you want to make it `NOT NULL`. There's a snag: there are already rows in the table, and they don't have a `displayName` yet, so setting the column `NOT NULL` fails, every existing row violates the constraint.
A simple approach to solve this problem is to:
@@ -74,9 +76,9 @@ Whichever path you pick, your data transformation doesn't have access to the sam
People have asked for the obvious fix, being able to use the Prisma client _inside_ a migration, for years (the [docs](https://www.prisma.io/docs/orm/prisma-migrate/workflows/customizing-migrations) point at the SQL or out-of-band script as the official answers; and there are many open issues with suggestions for how to integrate the TypeScript client and migrations: [#11194](https://github.com/prisma/prisma/issues/11194), [#4688](https://github.com/prisma/prisma/issues/4688), [#6345](https://github.com/prisma/prisma/issues/6345), [#10050](https://github.com/prisma/prisma/issues/10050)).
-## In Prisma Next, you write the data step in TypeScript
+## In Prisma 8, you write the data step in TypeScript
-Here is the same example, written as a Prisma Next migration. The initial file is written for you by [`migration plan`](https://www.prisma.io/docs/orm/next/migrations/generating-a-migration) when you change your `contract.prisma`. The `dataTransform()` line you'd add by hand:
+Here is the same example, written as a Prisma 8 migration. The initial file is written for you by [`migration plan`](https://www.prisma.io/docs/orm/v8/migrations/generating-a-migration) when you change your `contract.prisma`. The `dataTransform()` line you'd add by hand:
```typescript
// migrations/20260422T0748_add_user_display_name/migration.ts
@@ -110,13 +112,13 @@ override get operations() {
`addColumn` and `setNotNull` are the same operation factories introduced in the [last post](https://pris.ly/ts-migrations-pn). They emit `ALTER TABLE` statements for you, so you don't have to write them by hand. The new piece, `dataTransform`, works the same way.
-It takes two callbacks: a `check` that asks "does this still need to run?" and a `run` that performs the change. In both callbacks, you have access to the Prisma Next query builder. Its types come from your data contract and provide the same autocomplete and type checking you'd expect anywhere else in your application code. And since it's just TypeScript, you can also import constants and shared code, rather than duplicating them in your migrations.
+It takes two callbacks: a `check` that asks "does this still need to run?" and a `run` that performs the change. In both callbacks, you have access to the Prisma 8 query builder. Its types come from your data contract and provide the same autocomplete and type checking you'd expect anywhere else in your application code. And since it's just TypeScript, you can also import constants and shared code, rather than duplicating them in your migrations.
-To Prisma Next, a data transformation is just another kind of migration operation. It boils down to the same data structure: a simple object with a `precheck`, `execute` statement and `postcheck`.
+To Prisma 8, a data transformation is just another kind of migration operation. It boils down to the same data structure: a simple object with a `precheck`, `execute` statement and `postcheck`.
## What `dataTransform` compiles to
-When you run the `migration.ts` file, it outputs a JSON file: `ops.json`. `migration.ts` is what you edit; `ops.json` is what Prisma Next produces from it, and what the migration runner will read. Both are committed to your repo, side by side.
+When you run the `migration.ts` file, it outputs a JSON file: `ops.json`. `migration.ts` is what you edit; `ops.json` is what Prisma 8 produces from it, and what the migration runner will read. Both are committed to your repo, side by side.
Here's what the `dataTransform` above compiles to in `ops.json`:
@@ -153,14 +155,14 @@ A few things follow from this:
- **You know the SQL is correct when you write it:** Your `dataTransform` is type-checked against your contract, so a typo or a column that didn't exist won't compile.
- **Your team can review the SQL too:** `ops.json` shows up in the PR alongside `migration.ts`. A reviewer can read your typed query in `migration.ts` to understand your intention and the SQL it compiled to in `ops.json` to see exactly what will be executed on the database.
-- **Your CD pipeline never runs your TypeScript:** The Prisma Next migration runner only ever reads `ops.json`; the `migration.ts` file is never executed again. Which means there's no way to accidentally execute TypeScript code the `migration.ts` file pulls in with production credentials.
+- **Your CD pipeline never runs your TypeScript:** The Prisma 8 migration runner only ever reads `ops.json`; the `migration.ts` file is never executed again. Which means there's no way to accidentally execute TypeScript code the `migration.ts` file pulls in with production credentials.
- **Your migration operations are checked when they run:** Every operation's precheck prevents running it if the database isn't in the expected state, and its postcheck ensures it had the intended effect. Unlike raw SQL files, mistakes are caught early and the error tells you precisely which operation failed and why.
Together, these tools also make it safe to delegate to an agent to write a migration. Their work is type checked, the resulting SQL is available for review, `ops.json` is signed against the `migration.ts` it came from so an agent can't tweak the SQL behind your back, and the migration, when it runs, has guard rails on every operation.
## Each migration has its own contract
-Look at the top of any Prisma Next migration file:
+Look at the top of any Prisma 8 migration file:
```typescript
import endContractJson from "./end-contract.json" with { type: "json" };
@@ -184,10 +186,10 @@ This is what lets a data transformation reference columns the same migration is
## MongoDB gets data transformations too
-Here's a `dataTransform` against a [Mongo collection](https://www.prisma.io/docs/orm/next/data-modeling/mongodb), backfilling a `status` field on a `products` collection so it can be made required:
+Here's a `dataTransform` against a [Mongo collection](https://www.prisma.io/docs/orm/v8/data-modeling/mongodb), backfilling a `status` field on a `products` collection so it can be made required:
```typescript
-import { dataTransform } from "@prisma-next/target-mongo/migration";
+import { dataTransform } from "@prisma/orm-mongo/target/migration";
dataTransform(endContract, "backfill-product-status", {
check: () =>
@@ -206,14 +208,14 @@ Same `check` and `run` callbacks. Same compilation to a JSON file. Same kind of
## Try it yourself
-If you're as excited about this as we are, go ahead and try it out! [Prisma Next is now in Early Access](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app).
+If you're as excited about this as we are, go ahead and try it out! [The Prisma 8 Release Candidate is available](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app).
```bash
pnpx prisma-next init
```
-This command will set up Prisma Next in a new or existing project with a simple example contract. Write a schema change with a data step in the same file, plan it, read the JSON it compiled to, and apply it.
+This command will set up Prisma 8 in a new or existing project with a simple example contract. Write a schema change with a data step in the same file, plan it, read the JSON it compiled to, and apply it.
Tell us what worked and what didn't on [Discord](https://pris.ly/discord) in the `#prisma-next` channel, and **star and watch [prisma/prisma-next](https://pris.ly/pn-gh) on GitHub** to follow development. We'd love to hear your feedback!
-Prisma Next is in Early Access. Prisma 7 is the current generally available release, so if you're using it, keep using it. When Prisma Next is ready for general use, it becomes Prisma 8.
+Prisma 8 is a Release Candidate. Prisma 7 is the current generally available release, so if you're using it, keep using it.
diff --git a/apps/blog/content/blog/drive-and-the-maker/index.mdx b/apps/blog/content/blog/drive-and-the-maker/index.mdx
index c64da60e81..252a284e8f 100644
--- a/apps/blog/content/blog/drive-and-the-maker/index.mdx
+++ b/apps/blog/content/blog/drive-and-the-maker/index.mdx
@@ -6,7 +6,8 @@ authors:
- "Tyler Hogarth"
metaTitle: "Drive and the Maker"
metaDescription: "Part of Prisma's agentic software development series on how it ships software with AI agents, going deep on Drive, the development process, and the Maker role."
-heroImagePath: "/drive-and-the-maker/imgs/hero.png"
+heroImagePath: "/drive-and-the-maker/imgs/hero.svg"
+heroImageAlt: "A line pulled from the essay set in large type on paper with a soft prism wash: when routine implementation is cheap, coordination and ritual become the expensive things."
metaImagePath: "/drive-and-the-maker/imgs/meta.png"
tags: ["ai"]
series: agentic-engineering
diff --git a/apps/blog/content/blog/evaluating-object-storage-providers-for-prisma-compute/index.mdx b/apps/blog/content/blog/evaluating-object-storage-providers-for-prisma-compute/index.mdx
index 731e0d598d..c6c3df1919 100644
--- a/apps/blog/content/blog/evaluating-object-storage-providers-for-prisma-compute/index.mdx
+++ b/apps/blog/content/blog/evaluating-object-storage-providers-for-prisma-compute/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "Evaluating Object Storage Providers for Prisma Compute"
metaDescription: "We benchmarked Tigris and Cloudflare R2 from six Prisma Compute regions using a latency-sensitive virtual filesystem workload, with AWS S3 and S3 Express as a baseline."
heroImagePath: "/evaluating-object-storage-providers-for-prisma-compute/imgs/hero.svg"
-heroImageAlt: "Tigris finished about 3x faster than Cloudflare R2 on the mixed read/write phase across six Prisma Compute regions"
+heroImageAlt: "An evaluation matrix of three object stores on the criteria that separated them: egress price, bucket model, and read median for 10 KiB reads from Frankfurt, with Tigris the highlighted row"
metaImagePath: "/evaluating-object-storage-providers-for-prisma-compute/imgs/meta.png"
tags:
- "platform"
diff --git a/apps/blog/content/blog/evolving-agentic-engineering-at-prisma/index.mdx b/apps/blog/content/blog/evolving-agentic-engineering-at-prisma/index.mdx
index 6bdebeb2cb..d1c467211c 100644
--- a/apps/blog/content/blog/evolving-agentic-engineering-at-prisma/index.mdx
+++ b/apps/blog/content/blog/evolving-agentic-engineering-at-prisma/index.mdx
@@ -7,6 +7,7 @@ authors:
metaTitle: "Evolving Agentic Engineering at Prisma"
metaDescription: "A follow-up on what we learned after putting Drive into practice: where an opinionated process helped, where it became too heavy, and why we are moving toward leaner skills, stronger plans, and cheaper execution as models and harnesses improve."
heroImagePath: "/evolving-agentic-engineering-at-prisma/imgs/hero.svg"
+heroImageAlt: "A before and after drawing: seven items an encoded process makes you own, beside three lean skill contracts, spec to plan, plan to milestone, and diff to review"
metaImagePath: "/evolving-agentic-engineering-at-prisma/imgs/meta.png"
tags: ["ai"]
series: agentic-engineering
@@ -47,7 +48,7 @@ The process moved us from individual experimentation to team-level learning. Tha
The first path was a heavy process and framework. The skills were verbose and descriptive. They encoded assumptions about how planning, execution, and review should happen, and they went as far as defining which sub-agents to create for certain kinds of work, then retaining those sub-agents so their context could persist across the workflow. The result was a large, multi-sub-agent system.
-This was not a theoretical exercise. In [Prisma Next](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm), this approach let us make tens of thousands of changes at high quality. The scale was real, and the quality came from tight planning, controlled execution, and a review loop that stopped the work drifting away from the intended outcome.
+This was not a theoretical exercise. In [Prisma 8](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm), this approach let us make tens of thousands of changes at high quality. The scale was real, and the quality came from tight planning, controlled execution, and a review loop that stopped the work drifting away from the intended outcome.
I want to be careful about where the credit goes. The important part was not "using multiple agents". It was the execution and review loop. Each task and milestone ran iteratively: the agent executed, the work was reviewed, feedback was applied, and the next task started with better context. A large agent workflow only works if it has strong feedback loops. Without them, scale just gives you a larger pile of uncertain output.
diff --git a/apps/blog/content/blog/give-your-agent-a-database/index.mdx b/apps/blog/content/blog/give-your-agent-a-database/index.mdx
index e9af22459b..2518976d7e 100644
--- a/apps/blog/content/blog/give-your-agent-a-database/index.mdx
+++ b/apps/blog/content/blog/give-your-agent-a-database/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "npx create-db: Instant Postgres for Your Coding Agent"
metaDescription: "npx create-db gives coding agents a temporary Postgres database in seconds, no sign-up. JSON output lets Cursor, Claude Code, and Codex test on real Postgres."
heroImagePath: "/give-your-agent-a-database/imgs/hero.svg"
-heroImageAlt: "A terminal running npx create-db --json and returning a Postgres connection string"
+heroImageAlt: "A three step flow: a coding agent runs npx create-db@latest --json and gets a real Prisma Postgres database at db.prisma.io that deletes itself after 24 hours"
metaImagePath: "/give-your-agent-a-database/imgs/meta.png"
tags:
- "ai"
diff --git a/apps/blog/content/blog/gremlin-turning-open-tasks-into-pull-requests/index.mdx b/apps/blog/content/blog/gremlin-turning-open-tasks-into-pull-requests/index.mdx
index d4b8596fa0..31c41dd8d2 100644
--- a/apps/blog/content/blog/gremlin-turning-open-tasks-into-pull-requests/index.mdx
+++ b/apps/blog/content/blog/gremlin-turning-open-tasks-into-pull-requests/index.mdx
@@ -6,8 +6,9 @@ authors:
- "Tyler Hogarth"
metaTitle: "Gremlin: turning open tasks into pull requests"
metaDescription: "Gremlin is an autonomous engineering agent for small, well-scoped tasks. It uses Mastra for orchestration and OpenCode in a sandbox to turn Sentry issues, Linear tasks, and Slack instructions into reviewable pull requests."
-heroImagePath: "/gremlin-turning-open-tasks-into-pull-requests/imgs/hero.png"
-heroImageAlt: "Gremlin Cloud Agent illustration with infrastructure icons, terminal output, and deployment status panels"
+heroImagePath: "/gremlin-turning-open-tasks-into-pull-requests/imgs/hero.svg"
+heroImageAlt: "A pipeline where Sentry issues, Linear tasks, and Slack threads fan into one chain, gather context, sandbox, validate, and end in an Open PR tile"
+metaImagePath: "/gremlin-turning-open-tasks-into-pull-requests/imgs/meta.png"
tags: ["ai"]
---
diff --git a/apps/blog/content/blog/how-prisma-build-with-agentic-ai/index.mdx b/apps/blog/content/blog/how-prisma-build-with-agentic-ai/index.mdx
index 8adff52862..b44587bc04 100644
--- a/apps/blog/content/blog/how-prisma-build-with-agentic-ai/index.mdx
+++ b/apps/blog/content/blog/how-prisma-build-with-agentic-ai/index.mdx
@@ -5,9 +5,10 @@ date: "2026-03-30"
authors:
- "Arthur Gamby"
metaTitle: "Agentic Engineering: How Prisma Builds with AI"
-metaDescription: "In three months, Prisma fundamentally changed how it builds software by rethinking the relationship between engineers and AI agents. Here's what we learned building Prisma Next with agentic engineering."
+metaDescription: "In three months, Prisma fundamentally changed how it builds software by rethinking the relationship between engineers and AI agents. Here's what we learned building Prisma 8 with agentic engineering."
metaImagePath: "/how-prisma-build-with-agentic-ai/imgs/meta.png"
-heroImagePath: "/how-prisma-build-with-agentic-ai/imgs/meta.png"
+heroImagePath: "/how-prisma-build-with-agentic-ai/imgs/hero.svg"
+heroImageAlt: "An ink prompt card holding the three questions engineers ask of an agent, with how can I set it up to succeed marked in cyan"
tags: ["ai", "education"]
series: agentic-engineering
seriesIndex: 1
@@ -17,7 +18,7 @@ In three months, Prisma fundamentally changed how it builds software, not by ado
The result is a practice the team calls *agentic engineering*, and it looks nothing like "vibe coding."
-Here's what we've learned building Prisma Next this way, and the principles that kept quality high while velocity went through the roof.
+Here's what we've learned building Prisma 8 this way, and the principles that kept quality high while velocity went through the roof.
@@ -39,7 +40,7 @@ The distinction matters because it changes your relationship with the tool. If a
This is the counterintuitive insight at the heart of Prisma's approach: the faster you can build, the more time you should spend *not building*.
-Prisma Next didn't start with a prompt. It started with Will spending a weekend on a proof of concept, not to ship, but to validate a single architectural hypothesis. Once feasibility was confirmed, the real work began: writing extensive architecture docs describing subsystems and their interactions. That documentation became the foundation for everything the agents would later implement.
+Prisma 8 didn't start with a prompt. It started with Will spending a weekend on a proof of concept, not to ship, but to validate a single architectural hypothesis. Once feasibility was confirmed, the real work began: writing extensive architecture docs describing subsystems and their interactions. That documentation became the foundation for everything the agents would later implement.
"We don't just go in and say 'build us a new ORM' to our agents. We put a lot of effort up front into figuring out how we want whatever we're creating to behave."
diff --git a/apps/blog/content/blog/how-prisma-orm-became-the-most-downloaded-orm-for-node-js/index.mdx b/apps/blog/content/blog/how-prisma-orm-became-the-most-downloaded-orm-for-node-js/index.mdx
index 2b6011b431..1ec6850a74 100644
--- a/apps/blog/content/blog/how-prisma-orm-became-the-most-downloaded-orm-for-node-js/index.mdx
+++ b/apps/blog/content/blog/how-prisma-orm-became-the-most-downloaded-orm-for-node-js/index.mdx
@@ -110,7 +110,7 @@ Prisma's answer is one platform where the layers are designed to work together:
Every layer is operable through the same programmable interfaces: the CLI, the Management API, and the [MCP server](/announcing-prisma-s-mcp-server-vibe-code-with-prisma-postgres). That is what a single-agent experience means in practice. An agent can define a schema, provision a database, run migrations, deploy the application, and debug it, entirely in code, with one bill and predictable spend caps at the end.
-The ORM itself is being rebuilt around the same idea. [Prisma Next](/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), available in Early Access today and becoming Prisma 8 at general availability, is an agent-native TypeScript ORM. You describe your application as models and relationships in one central data contract; Prisma generates the migrations, and you or your agent write type-safe queries in terms of your models. Every query returns structured, machine-readable output, and every operation has guardrails and verifications, so an agent can parse what comes back and correct itself instead of guessing at a stack trace. The client is about 100 KB and runs at roughly 90% of raw `pg` throughput ([benchmark](/prisma-next-performance-benchmark)). Prisma 7 remains the production version today; teams adopt Prisma Next by running it in parallel and migrating incrementally.
+The ORM itself is being rebuilt around the same idea. [Prisma 8](/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), now a Release Candidate, is an agent-native TypeScript ORM. You describe your application as models and relationships in one central data contract; Prisma generates the migrations, and you or your agent write type-safe queries in terms of your models. Every query returns structured, machine-readable output, and every operation has guardrails and verifications, so an agent can parse what comes back and correct itself instead of guessing at a stack trace. The client is about 100 KB and runs at roughly 90% of raw `pg` throughput ([benchmark](/prisma-next-performance-benchmark)). Prisma 7 remains the production version today; teams adopt Prisma 8 by running it in parallel and migrating incrementally.
If download charts increasingly measure what agents choose, the way to earn that choice is to be the platform agents can operate end to end.
@@ -129,8 +129,8 @@ By npm downloads, Prisma ORM leads: 55.3 million downloads in the past 30 days a
A large share of registry-wide growth comes from AI coding agents. Agents install dependencies in fresh, cache-less sandboxes on every run, so one human prompt can trigger dozens of installs. Downloads of long-stable packages like lodash and express roughly tripled between January 2025 and June 2026 without a matching increase in human developers, and packages in agent-default stacks grew several times faster than that baseline.
-
-[Prisma Next](/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) is an agent-native TypeScript ORM, currently in Early Access, that becomes Prisma 8 at general availability. You describe your application as models and relationships in one central data contract; Prisma generates the migrations, and you or your agent write type-safe queries against your models, with structured machine-readable output and guardrails on every operation. Prisma 7 remains the production version of Prisma ORM today.
+
+[Prisma 8](/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) is an agent-native TypeScript ORM, currently a Release Candidate. You describe your application as models and relationships in one central data contract; Prisma generates the migrations, and you or your agent write type-safe queries against your models, with structured machine-readable output and guardrails on every operation. Prisma 7 remains the production version of Prisma ORM today.
diff --git a/apps/blog/content/blog/how-to-use-ai-safely-and-responsibly/index.mdx b/apps/blog/content/blog/how-to-use-ai-safely-and-responsibly/index.mdx
index 843ec473ae..a8eeefee04 100644
--- a/apps/blog/content/blog/how-to-use-ai-safely-and-responsibly/index.mdx
+++ b/apps/blog/content/blog/how-to-use-ai-safely-and-responsibly/index.mdx
@@ -7,8 +7,9 @@ authors:
- "Matthias Oertel"
metaTitle: "How to use AI coding tools safely and responsibly"
metaDescription: "Practical security guidelines for developers using AI coding assistants — token scopes, secrets management, sandboxing, prompt injection, and reviewing generated code."
-metaImagePath: "/how-to-use-ai-safely-and-responsibly/imgs/hero.png"
-heroImagePath: "/how-to-use-ai-safely-and-responsibly/imgs/hero.png"
+metaImagePath: "/how-to-use-ai-safely-and-responsibly/imgs/meta.png"
+heroImagePath: "/how-to-use-ai-safely-and-responsibly/imgs/hero.svg"
+heroImageAlt: "A policy card pairing the scoped permissions the post allows, bash(npm test), repo:read, and /sandbox, against the broad grants it refuses"
tags:
- "ai"
---
diff --git a/apps/blog/content/blog/how-xeito-builds-features-not-database-infrastructure-with-prisma/index.mdx b/apps/blog/content/blog/how-xeito-builds-features-not-database-infrastructure-with-prisma/index.mdx
index f1c15ece9e..1e6620c8f2 100644
--- a/apps/blog/content/blog/how-xeito-builds-features-not-database-infrastructure-with-prisma/index.mdx
+++ b/apps/blog/content/blog/how-xeito-builds-features-not-database-infrastructure-with-prisma/index.mdx
@@ -8,7 +8,7 @@ metaTitle: "How One Founder Builds a Live Sports Platform with Prisma"
metaDescription: "How Xeito uses Prisma ORM and Prisma Postgres to ship live scoring, leagues, payments, and player workflows without a database team."
excerpt: "Gabriel Gil Graña is building Xeito, a live sports platform, without turning database infrastructure into the work."
heroImagePath: "/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/hero.svg"
-heroImageAlt: "Build features, not database infrastructure."
+heroImageAlt: "A quote card: Gabriel Gil Graña of Xeito on wanting to spend his time creating features instead of managing memory, pool connections, storage limits, replicas and backups"
metaImagePath: "/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/meta.png"
tags:
- "case-study"
@@ -136,4 +136,4 @@ That is the platform promise Prisma should make to builders: make me successful
**Building a data-heavy product with a small team?**
-Start with [Prisma ORM](https://www.prisma.io/orm) and [Prisma Postgres](https://www.prisma.io/postgres). If you want the app and database in one Prisma project, explore [Prisma Compute](https://www.prisma.io/compute). If you want to see where Prisma's type-safe data layer is heading next, try [Prisma Next](https://pris.ly/pn-ea).
+Start with [Prisma ORM](https://www.prisma.io/orm) and [Prisma Postgres](https://www.prisma.io/postgres). If you want the app and database in one Prisma project, explore [Prisma Compute](https://www.prisma.io/compute). If you want to see where Prisma's type-safe data layer is heading next, try [Prisma 8](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/image-transformations-with-bun-on-prisma-compute/index.mdx b/apps/blog/content/blog/image-transformations-with-bun-on-prisma-compute/index.mdx
index 845de8c8e2..50c548231e 100644
--- a/apps/blog/content/blog/image-transformations-with-bun-on-prisma-compute/index.mdx
+++ b/apps/blog/content/blog/image-transformations-with-bun-on-prisma-compute/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "Image Transformations with Bun on Prisma Compute"
metaDescription: "Bun includes native image transformations, and Prisma Compute runs on Bun. Build image resize and format routes as ordinary app requests instead of paying for a separate image transformation service."
heroImagePath: "/image-transformations-with-bun-on-prisma-compute/imgs/hero.svg"
-heroImageAlt: "Request-time image pipeline on Prisma Compute: source to Bun.Image to webp. Image transforms as app logic."
+heroImageAlt: "A three-tile request-time pipeline: chair.jpg requested with w=640 and q=75, transformed by Bun.Image, returned as chair.webp cached immutable for a year"
metaImagePath: "/image-transformations-with-bun-on-prisma-compute/imgs/meta.png"
excerpt: "Bun ships native image transformations, and Prisma Compute runs on Bun, so you build image resize and format routes as ordinary app requests, with no separate image service to pay for or manage."
tags:
diff --git a/apps/blog/content/blog/improving-query-performance-using-indexes-2-MyoiJNMFTsfq/index.mdx b/apps/blog/content/blog/improving-query-performance-using-indexes-2-MyoiJNMFTsfq/index.mdx
index 7b3e04f4a2..2b4b06b0ff 100644
--- a/apps/blog/content/blog/improving-query-performance-using-indexes-2-MyoiJNMFTsfq/index.mdx
+++ b/apps/blog/content/blog/improving-query-performance-using-indexes-2-MyoiJNMFTsfq/index.mdx
@@ -393,6 +393,6 @@ In this part, you learned what the structure of indexes looks like, and signific
You also learned how to add indexes to multiple columns, how to define the index sort order, and how to measure query time in Prisma ORM 7 with a client extension now that middleware is gone.
-The workflow you used here carries beyond the local server. `npx prisma init --db` provisions a managed Prisma Postgres database with the same schema-first workflow, so the index you declared in code applies to production exactly the way it did locally. And if you are building new applications with AI coding agents, [Prisma Next](/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) (Early Access, becoming Prisma 8) extends the same idea further: the schema becomes a central data contract that you or your agent evolve with type-safe queries and structured, machine-readable output.
+The workflow you used here carries beyond the local server. `npx prisma init --db` provisions a managed Prisma Postgres database with the same schema-first workflow, so the index you declared in code applies to production exactly the way it did locally. And if you are building new applications with AI coding agents, [Prisma 8](/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) (Release Candidate) extends the same idea further: the schema becomes a central data contract that you or your agent evolve with type-safe queries and structured, machine-readable output.
In the [next article](/improving-query-performance-using-indexes-3-kduk351qv1), you will learn how to work with Hash indexes in your application using Prisma ORM.
diff --git a/apps/blog/content/blog/introducing-create-prisma/index.mdx b/apps/blog/content/blog/introducing-create-prisma/index.mdx
index 2c99b1af42..50800b72db 100644
--- a/apps/blog/content/blog/introducing-create-prisma/index.mdx
+++ b/apps/blog/content/blog/introducing-create-prisma/index.mdx
@@ -7,8 +7,8 @@ authors:
metaTitle: "Introducing Create-Prisma: Start a Prisma App With One Command"
metaDescription: "create-prisma is a new CLI that creates an app with Prisma set up, a starter schema, seed data, database scripts, and optional Prisma Postgres setup."
excerpt: "create-prisma is a new CLI that creates an app with Prisma set up, including a starter schema, seed data, database scripts, and optional Prisma Postgres setup."
-heroImagePath: "/introducing-create-prisma/imgs/hero.png"
-heroImageAlt: "Introducing create-prisma — a new CLI for starting Prisma apps"
+heroImagePath: "/introducing-create-prisma/imgs/hero.svg"
+heroImageAlt: "An ink terminal card running npm create prisma@latest, with a checklist of what the CLI generates: prisma/schema.prisma, prisma/seed.ts, prisma.config.ts, a .env file with DATABASE_URL, and the db:generate, db:migrate and db:seed scripts."
metaImagePath: "/introducing-create-prisma/imgs/meta.png"
tags:
- "announcement"
diff --git a/apps/blog/content/blog/launching-prisma-compute-public-beta/index.mdx b/apps/blog/content/blog/launching-prisma-compute-public-beta/index.mdx
index 408f6ddc17..3d6b465534 100644
--- a/apps/blog/content/blog/launching-prisma-compute-public-beta/index.mdx
+++ b/apps/blog/content/blog/launching-prisma-compute-public-beta/index.mdx
@@ -6,7 +6,7 @@ authors:
- "Shane Neubauer"
metaTitle: "Launching Prisma Compute in Public Beta"
metaDescription: "Prisma Compute is now in public beta: TypeScript app hosting that runs on the same infrastructure as your database. Point your agent at your project and tell it to deploy."
-heroImagePath: "/launching-prisma-compute-public-beta/imgs/hero.png"
+heroImagePath: "/launching-prisma-compute-public-beta/imgs/hero.svg"
heroImageAlt: "Prisma Compute, now in public beta"
metaImagePath: "/launching-prisma-compute-public-beta/imgs/meta.png"
pinned: true
diff --git a/apps/blog/content/blog/make-your-docs-agent-ready/index.mdx b/apps/blog/content/blog/make-your-docs-agent-ready/index.mdx
index 1f77303577..7726f9fd7c 100644
--- a/apps/blog/content/blog/make-your-docs-agent-ready/index.mdx
+++ b/apps/blog/content/blog/make-your-docs-agent-ready/index.mdx
@@ -8,7 +8,7 @@ metaTitle: "How to Make Your Docs Agent-Ready: llms.txt, Parity, MCP"
metaDescription: "Coding agents fail silently on truncated indexes, broken links, and missing metadata. What we fixed in the Prisma docs, and how to audit yours."
heroImagePath: "/make-your-docs-agent-ready/imgs/hero.svg"
metaImagePath: "/make-your-docs-agent-ready/imgs/meta.png"
-heroImageAlt: "A documentation site restructured so a coding agent can discover, fetch, and parse it"
+heroImageAlt: "An ink panel listing the docs endpoints an agent fetches: llms.txt at 7 KB, the per-area indexes, llms-full.txt at 4.5 MB, skill.md, and the MCP discovery document"
tags:
- "ai"
- "education"
@@ -62,7 +62,7 @@ The fix was to split it. Each product area now has its own index at `/docs/llms/
```markdown
## Product Area Indexes
-- [`Prisma ORM`](https://www.prisma.io/docs/llms/orm.txt): Current Prisma ORM docs: setup, schema modeling, Prisma Client, migrations, and references (excludes legacy v6 and Prisma Next).
+- [`Prisma ORM`](https://www.prisma.io/docs/llms/orm.txt): Current Prisma ORM docs: setup, schema modeling, Prisma Client, migrations, and references (excludes legacy v6 and Prisma 8).
- [`Prisma ORM v6 (legacy)`](https://www.prisma.io/docs/llms/orm-v6.txt): Legacy Prisma ORM v6 documentation, maintained for backwards compatibility only. Prefer the current Prisma ORM section for new work.
…
- [`Prisma Postgres`](https://www.prisma.io/docs/llms/postgres.txt): Prisma Postgres setup, connection strings, local development, operations, and guides.
diff --git a/apps/blog/content/blog/mongodb-without-compromise/index.mdx b/apps/blog/content/blog/mongodb-without-compromise/index.mdx
index 0337ff22cd..3588aff607 100644
--- a/apps/blog/content/blog/mongodb-without-compromise/index.mdx
+++ b/apps/blog/content/blog/mongodb-without-compromise/index.mdx
@@ -5,16 +5,16 @@ date: "2026-04-13"
authors:
- "Will Madden"
metaTitle: "MongoDB Without Compromise"
-metaDescription: "Prisma Next brings a MongoDB-native experience to TypeScript with type-safe queries, real migrations, polymorphic models, embedded collections, and typed aggregation pipelines."
+metaDescription: "Prisma 8 brings a MongoDB-native experience to TypeScript with type-safe queries, real migrations, polymorphic models, embedded collections, and typed aggregation pipelines."
heroImagePath: "/mongodb-without-compromise/imgs/hero.svg"
-heroImageAlt: "Prisma Next and MongoDB"
+heroImageAlt: "An untyped MongoDB document beside the Prisma 8 contract that types it, including the embedded Address type."
metaImagePath: "/mongodb-without-compromise/imgs/meta.png"
tags:
- "orm"
- "announcement"
---
-For the first time, [Prisma Next](https://www.prisma.io/docs/orm/next) brings the MongoDB-native experience to TypeScript. Type-safe queries, database migrations, polymorphic models, embedded collections and more. Designed in collaboration with the MongoDB DX team.
+For the first time, [Prisma 8](https://www.prisma.io/docs/orm/v8) brings the MongoDB-native experience to TypeScript. Type-safe queries, database migrations, polymorphic models, embedded collections and more. Designed in collaboration with the MongoDB DX team.
## What MongoDB development looks like today
@@ -25,7 +25,7 @@ If you've built a MongoDB app with TypeScript recently, you've probably gone thr
- You write a query and the types don't fully connect, so you cast, add guards, or accept a little `any`.
- You need an index, so you drop into the MongoDB shell or a deployment script and hope your database stays in sync with your code.
-In Prisma Next, you describe your [data model](https://www.prisma.io/docs/orm/next/data-modeling/mongodb) as a contract:
+In Prisma 8, you describe your [data model](https://www.prisma.io/docs/orm/v8/data-modeling/mongodb) as a contract:
```prisma
model User {
@@ -73,11 +73,11 @@ model Tutorial {
}
```
-From this contract, Prisma Next derives everything: TypeScript types, query validation, migration plans, and discriminated unions for polymorphic collections.
+From this contract, Prisma 8 derives everything: TypeScript types, query validation, migration plans, and discriminated unions for polymorphic collections.
## Type-safe queries
-All queries and their results are type checked in Prisma Next. If you miss a required field, TypeScript tells you, and the result types flow through your application logic from database to UI.
+All queries and their results are type checked in Prisma 8. If you miss a required field, TypeScript tells you, and the result types flow through your application logic from database to UI.
```typescript
const alice = await orm.users.create({
@@ -97,32 +97,32 @@ const recentPosts = await orm.posts
// recentPosts[0].author.bio -> string | null
```
-The [`.include('author')`](https://www.prisma.io/docs/orm/next/fundamentals/relations-and-joins) compiles to a `$lookup` pipeline stage. Skip the `.include()` and the author isn't loaded and isn't in the type. Your documents are typed all the way down, no matter how far you nest.
+The [`.include('author')`](https://www.prisma.io/docs/orm/v8/fundamentals/relations-and-joins) compiles to a `$lookup` pipeline stage. Skip the `.include()` and the author isn't loaded and isn't in the type. Your documents are typed all the way down, no matter how far you nest.
## Real migrations for MongoDB
MongoDB is not schema-less. Your deployment has real, persistent, server-side state, and that state directly affects correctness and performance. Yet most tools do not manage it properly.
-The `@@index` declarations in the contract above are not just documentation. They are managed by a [migration system](https://www.prisma.io/docs/orm/next/migrations/how-migrations-work) that versions, diffs, and deploys your database state.
+The `@@index` declarations in the contract above are not just documentation. They are managed by a [migration system](https://www.prisma.io/docs/orm/v8/migrations/how-migrations-work) that versions, diffs, and deploys your database state.
- **Indexes:** unique, compound, TTL, partial, geospatial, text, and wildcard. If an index is wrong, queries slow down. If a unique constraint is missing, duplicate data can slip in.
- **JSON Schema validators:** document-level validation rules generated from your model definitions. Even writes that bypass the ORM are still validated by the server.
- **Collection options:** capped collections, time series configuration, and collation settings.
-When you update your contract and run `prisma-next migration plan`, the planner compares the current state with the desired state:
+When you update your contract and run `migration plan`, the planner compares the current state with the desired state:
```shell
-$ prisma-next migration plan
+$ npx @prisma/cli@next migration plan
Migration: 20260409T1200_add_post_indexes
Create index on posts (authorId) [additive]
Create index on posts (createdAt, desc) [additive]
-2 operations. Run `prisma-next migrate` to execute.
+2 operations. Run `migrate` to execute.
```
-It includes pre-checks, post-checks, full history, branching, and rollback, following the same structure as Prisma Next's SQL migrations. Your indexes, validators, and collection options are versioned alongside your code and deployed through CI/CD.
+It includes pre-checks, post-checks, full history, branching, and rollback, following the same structure as Prisma 8's SQL migrations. Your indexes, validators, and collection options are versioned alongside your code and deployed through CI/CD.
The MongoDB Node.js Driver team identified the lack of migration tooling as a key source of friction in their user research. Until now, developers did not have proper tooling to manage MongoDB's server-side state as a versioned deployable artifact.
@@ -134,7 +134,7 @@ The MongoDB Node.js Driver team rated inheritance and polymorphism as the highes
Polymorphic collections are a standard MongoDB pattern, and most tools handle them poorly. Variant-specific fields become optional or `any`, or you split into separate collections and lose the ability to query across all documents.
-Look at the `@@discriminator(kind)` on `Post` and the `@@base` declarations on `Article` and `Tutorial` in the contract above. From these, Prisma Next generates TypeScript discriminated union types. When you query all posts, you get the full union. When you query a variant, the return type narrows:
+Look at the `@@discriminator(kind)` on `Post` and the `@@base` declarations on `Article` and `Tutorial` in the contract above. From these, Prisma 8 generates TypeScript discriminated union types. When you query all posts, you get the full union. When you query a variant, the return type narrows:
```typescript
const posts = await orm.posts.all();
@@ -161,11 +161,11 @@ for (const post of posts) {
Polymorphism connects to migrations too. An index on a variant-specific field, `difficulty` on `Tutorial` for example, automatically gets a `partialFilterExpression` derived from the discriminator, scoping the index to only documents where `kind === 'tutorial'`. The contract declares the full relationship between variants, discriminator values, and fields. No manual configuration.
-> **A note on versioned documents:** A common MongoDB pattern is versioned documents. A `version` field determines which fields apply. In Prisma Next, this is just a polymorphic model with `version` as the discriminator. Each version is a variant with its own typed fields. No special-case reading logic, no long-running data migration, no downtime.
+> **A note on versioned documents:** A common MongoDB pattern is versioned documents. A `version` field determines which fields apply. In Prisma 8, this is just a polymorphic model with `version` as the discriminator. Each version is a variant with its own typed fields. No special-case reading logic, no long-running data migration, no downtime.
## Typed aggregation pipelines
-When you need MongoDB's aggregation pipeline for grouping, projecting, or faceting, Prisma Next provides a [typed pipeline builder](https://www.prisma.io/docs/orm/next/fundamentals/advanced-queries):
+When you need MongoDB's aggregation pipeline for grouping, projecting, or faceting, Prisma 8 provides a [typed pipeline builder](https://www.prisma.io/docs/orm/v8/fundamentals/advanced-queries):
```typescript
const { pipeline, runtime } = orm;
@@ -198,7 +198,7 @@ Field references like `f.authorId` and `f.createdAt` check against your contract
}))
```
-When the pipeline builder doesn't cover what you need, you can drop to [raw MongoDB commands](https://www.prisma.io/docs/orm/next/reference/raw-queries):
+When the pipeline builder doesn't cover what you need, you can drop to [raw MongoDB commands](https://www.prisma.io/docs/orm/v8/reference/raw-queries):
```typescript
const raw = orm.raw.collection('posts');
@@ -211,13 +211,13 @@ const results = await runtime.execute(
);
```
-Full control, same `runtime.execute` entry point. ORM for most queries, typed pipeline builder for aggregation, raw commands as the escape hatch: the same layered approach Prisma Next uses for SQL.
+Full control, same `runtime.execute` entry point. ORM for most queries, typed pipeline builder for aggregation, raw commands as the escape hatch: the same layered approach Prisma 8 uses for SQL.
-## How Prisma Next compares to other tooling
+## How Prisma 8 compares to other tooling
-The ORM ecosystem has plenty of healthy competition, and we wanted to make sure Prisma Next stands out with a clear reason for developers to adopt it.
+The ORM ecosystem has plenty of healthy competition, and we wanted to make sure Prisma 8 stands out with a clear reason for developers to adopt it.
-| Concern | Raw `mongodb` driver | Mongoose | Prisma ORM (current) | Drizzle | **Prisma Next** |
+| Concern | Raw `mongodb` driver | Mongoose | Prisma ORM (current) | Drizzle | **Prisma 8** |
| --- | --- | --- | --- | --- | --- |
| Schema definition | ❌ None | 🟡 JS schemas, partial TS | 🟡 Prisma schema (no embedded docs) | ➖ N/A (SQL only) | ✅ Prisma contract (full embedding, polymorphism) |
| Type safety (queries) | 🟡 Top-level only | 🟡 Partial (`FilterQuery` -> `any`) | 🟡 Generated (no embedding) | ➖ N/A | ✅ Full (filters, operators, nested) |
@@ -235,7 +235,7 @@ The ORM ecosystem has plenty of healthy competition, and we wanted to make sure
## Where we are, where we're going
-Prisma Next is in Early Access. Prisma 7 is the current generally available release, so if you're using it, keep using it. Once Prisma Next is ready for general use, it will become Prisma 8, and upgrading will be a smooth process.
+Prisma 8 is a Release Candidate. Prisma 7 is the current generally available release, so if you're using it, keep using it. Once Prisma 8 is ready for general use, upgrading will be a smooth process.
**What works today**:
@@ -255,5 +255,5 @@ The MongoDB Node.js Driver team's input from user-journey research and feature-g
We believe this raises the bar for what MongoDB developers should expect from their tools.
- **Star + watch the repo:** [github.com/prisma/prisma-next](https://github.com/prisma/prisma-next)
-- **Try the Mongo demo app:** [examples/mongo-demo](https://github.com/prisma/prisma-next/tree/main/examples/mongo-demo)
+- **Try the Mongo demo app:** [examples/mongo-demo](https://github.com/prisma/prisma/tree/main/examples/mongo-demo)
- **Join the conversation:** [Discord](http://pris.ly/discord)
diff --git a/apps/blog/content/blog/nestjs-prisma-authentication-7D056s1s0k3l/index.mdx b/apps/blog/content/blog/nestjs-prisma-authentication-7D056s1s0k3l/index.mdx
index 4a0e299284..26507a1b49 100644
--- a/apps/blog/content/blog/nestjs-prisma-authentication-7D056s1s0k3l/index.mdx
+++ b/apps/blog/content/blog/nestjs-prisma-authentication-7D056s1s0k3l/index.mdx
@@ -845,4 +845,4 @@ In this chapter, you learned how to implement JWT authentication in your NestJS
This wraps up the series. Across five chapters, you built a REST API with NestJS 11 and Prisma ORM 7, added input validation, error handling, relational data and authentication; every piece verified on the current stack. From here, good next steps are [The Ultimate Guide to Testing with Prisma](https://www.prisma.io/blog/series/testing-with-prisma) for test coverage, the [Prisma Migrate docs](https://www.prisma.io/docs/orm/prisma-migrate/getting-started) for evolving your schema, and Prisma Postgres as the database for your production deployment.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/nestjs-prisma-error-handling-7D056s1kOop2/index.mdx b/apps/blog/content/blog/nestjs-prisma-error-handling-7D056s1kOop2/index.mdx
index 9978de87a6..145c27a4a4 100644
--- a/apps/blog/content/blog/nestjs-prisma-error-handling-7D056s1kOop2/index.mdx
+++ b/apps/blog/content/blog/nestjs-prisma-error-handling-7D056s1kOop2/index.mdx
@@ -404,4 +404,4 @@ In this chapter you learned how to handle Prisma errors, like the `P2002` unique
In the [next part](/nestjs-prisma-relational-data-7D056s1kOabc) of this series, you will add a `User` model and learn how to handle relational data in your API. If you want to go deeper on the Prisma side first, the [Prisma getting started guide](https://www.prisma.io/docs/getting-started), [Prisma Migrate docs](https://www.prisma.io/docs/orm/prisma-migrate/getting-started), and Prisma Postgres are the best next resources for taking the app from tutorial to production-ready workflow.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/nestjs-prisma-relational-data-7D056s1kOabc/index.mdx b/apps/blog/content/blog/nestjs-prisma-relational-data-7D056s1kOabc/index.mdx
index a225c418ff..ed7c0abe36 100644
--- a/apps/blog/content/blog/nestjs-prisma-relational-data-7D056s1kOabc/index.mdx
+++ b/apps/blog/content/blog/nestjs-prisma-relational-data-7D056s1kOabc/index.mdx
@@ -921,4 +921,4 @@ In this chapter, you learned how to model relational data in a NestJS applicatio
In the [next part](/nestjs-prisma-authentication-7D056s1s0k3l) of this series, you will secure these endpoints by adding JWT authentication to the API, and replace the plain text passwords with properly hashed ones. If you want to go deeper on relations first, the [Prisma relations docs](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations) cover one-to-many and other relation types in depth, and Prisma Postgres is an easy way to stand up the database layer for follow-on work.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/nestjs-prisma-rest-api-7D056s1BmOL0/index.mdx b/apps/blog/content/blog/nestjs-prisma-rest-api-7D056s1BmOL0/index.mdx
index eb17e3e2cb..d69aea3ca8 100644
--- a/apps/blog/content/blog/nestjs-prisma-rest-api-7D056s1BmOL0/index.mdx
+++ b/apps/blog/content/blog/nestjs-prisma-rest-api-7D056s1BmOL0/index.mdx
@@ -1025,4 +1025,4 @@ One of the main takeaways from this tutorial is how easy it is to build a REST A
In the [next part](/nestjs-prisma-validation-7D056s1kOla1) of this series, you will add input validation and transformation to this API. If you want to go deeper on the Prisma side first, start with the [Prisma getting started guide](https://www.prisma.io/docs/getting-started), learn more about [Prisma Migrate](https://www.prisma.io/docs/orm/prisma-migrate/getting-started), or create a Prisma Postgres database for your next NestJS project.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/nestjs-prisma-validation-7D056s1kOla1/index.mdx b/apps/blog/content/blog/nestjs-prisma-validation-7D056s1kOla1/index.mdx
index e512172845..407c3bf780 100644
--- a/apps/blog/content/blog/nestjs-prisma-validation-7D056s1kOla1/index.mdx
+++ b/apps/blog/content/blog/nestjs-prisma-validation-7D056s1kOla1/index.mdx
@@ -385,4 +385,4 @@ You might have noticed that NestJS heavily relies on decorators. This is a very
In the [next part](/nestjs-prisma-error-handling-7D056s1kOop2) of this series, you will learn how to handle errors in a NestJS and Prisma application, including the database errors that validation alone can't catch. If you want to go deeper on the Prisma side first, the [Prisma getting started guide](https://www.prisma.io/docs/getting-started) and [Prisma Migrate docs](https://www.prisma.io/docs/orm/prisma-migrate/getting-started) are good next steps, and Prisma Postgres is an easy way to stand up the database layer for follow-on work.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/organize-your-prisma-schema-with-multi-file-support/index.mdx b/apps/blog/content/blog/organize-your-prisma-schema-with-multi-file-support/index.mdx
index 9c1f0cdf8b..e32c9c3229 100644
--- a/apps/blog/content/blog/organize-your-prisma-schema-with-multi-file-support/index.mdx
+++ b/apps/blog/content/blog/organize-your-prisma-schema-with-multi-file-support/index.mdx
@@ -119,11 +119,11 @@ We've found a few patterns work well with this feature and will help you get the
If you'd like to see how this feature looks in the real world, check out our [fork of dub](https://github.com/prisma/dub) from dub.co, one of our favorite OSS projects!
-### Looking ahead: Prisma Next
+### Looking ahead: Prisma 8
-Schema organization is also central to [Prisma Next](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), the next generation of Prisma ORM, available in Early Access today and becoming Prisma 8 at GA. In Prisma Next, your schema is a single centralised data contract that both you and your coding agent work against, and you can author it in Prisma Schema Language or in TypeScript, keeping your data model in the same language as your application.
+Schema organization is also central to [Prisma 8](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), the next generation of Prisma ORM, now available as a Release Candidate. In Prisma 8, your schema is a single centralised data contract that both you and your coding agent work against, and you can author it in Prisma Schema Language or in TypeScript, keeping your data model in the same language as your application.
-It's fast, too: in [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, Prisma Next reaches roughly 90% of the raw `pg` driver's speed and ships a client of about 148.5 KB gzipped. Like Prisma ORM, it pairs with [Prisma Postgres](https://www.prisma.io/postgres) out of the box. For new projects, especially ones built with AI coding agents, it's the direction to watch.
+It's fast, too: in [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, Prisma 8 reaches roughly 90% of the raw `pg` driver's speed and ships a client of about 148.5 KB gzipped. Like Prisma ORM, it pairs with [Prisma Postgres](https://www.prisma.io/postgres) out of the box. For new projects, especially ones built with AI coding agents, it's the direction to watch.
## Where to go next
diff --git a/apps/blog/content/blog/performance-benchmarks-comparing-query-latency-across-typescript-orms-and-databases/index.mdx b/apps/blog/content/blog/performance-benchmarks-comparing-query-latency-across-typescript-orms-and-databases/index.mdx
index 58f58e7985..b3f9f518bd 100644
--- a/apps/blog/content/blog/performance-benchmarks-comparing-query-latency-across-typescript-orms-and-databases/index.mdx
+++ b/apps/blog/content/blog/performance-benchmarks-comparing-query-latency-across-typescript-orms-and-databases/index.mdx
@@ -12,8 +12,8 @@ tags:
- "orm"
---
-::::note[New: the Prisma Next performance benchmark]
-Since this post, we've benchmarked [Prisma Next](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: it reaches about 87% of the raw `pg` driver's peak throughput, sustains 52% more requests per second than Prisma 7, and ships as a 9× smaller bundle. [See the latest results](/prisma-next-performance-benchmark).
+::::note[New: the Prisma 8 performance benchmark]
+Since this post, we've benchmarked [Prisma 8](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: it reaches about 87% of the raw `pg` driver's peak throughput, sustains 52% more requests per second than Prisma 7, and ships as a 9× smaller bundle. [See the latest results](/prisma-next-performance-benchmark).
::::
We have created open-source [performance benchmarks](https://benchmarks.prisma.io) to compare query latencies for Prisma ORM, TypeORM and Drizzle ORM with different database providers such as PostgreSQL on AWS RDS, Supabase and Neon. Read on to learn about our methodology and which TypeScript ORM is the fastest.
diff --git a/apps/blog/content/blog/performance-engineering-aeduv0rei0jk/index.mdx b/apps/blog/content/blog/performance-engineering-aeduv0rei0jk/index.mdx
index 5a3f731dd9..28ef0e6d27 100644
--- a/apps/blog/content/blog/performance-engineering-aeduv0rei0jk/index.mdx
+++ b/apps/blog/content/blog/performance-engineering-aeduv0rei0jk/index.mdx
@@ -11,8 +11,8 @@ heroImagePath: "/performance-engineering-aeduv0rei0jk/imgs/hero-e43f947aa769d070
heroImageAlt: "How We're Constantly Improving the Performance of Prisma"
---
-::::note[New: the Prisma Next performance benchmark]
-For a current look at Prisma performance, we've benchmarked [Prisma Next](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: about 87% of the raw `pg` driver's peak throughput and 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
+::::note[New: the Prisma 8 performance benchmark]
+For a current look at Prisma performance, we've benchmarked [Prisma 8](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: about 87% of the raw `pg` driver's peak throughput and 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
::::
Fast and predictable performance is crucial for software to succeed. Therefore, ensuring great performance is one of
diff --git a/apps/blog/content/blog/postgres-bloom-index-the-overlooked-postgres-feature/BTreeDemoClient.tsx b/apps/blog/content/blog/postgres-bloom-index-the-overlooked-postgres-feature/BTreeDemoClient.tsx
index aa36ff5ac5..8c0c6146df 100644
--- a/apps/blog/content/blog/postgres-bloom-index-the-overlooked-postgres-feature/BTreeDemoClient.tsx
+++ b/apps/blog/content/blog/postgres-bloom-index-the-overlooked-postgres-feature/BTreeDemoClient.tsx
@@ -193,11 +193,7 @@ export function BTreeDemoClient({ baseCode, phases }: Props) {
const matched =
phase.matchedKey === k && phase.activeLeaf === i ? "true" : undefined;
return (
-
+
{k}
-
+
{Array.from({ length: SIZE }, (_, i) => {
const isLit = litBits.includes(i);
const isProbing = phase.activeHash !== null && HASHES[phase.activeHash].bit === i;
diff --git a/apps/blog/content/blog/postgres-bloom-index-the-overlooked-postgres-feature/index.mdx b/apps/blog/content/blog/postgres-bloom-index-the-overlooked-postgres-feature/index.mdx
index 95b4e72961..68cf923247 100644
--- a/apps/blog/content/blog/postgres-bloom-index-the-overlooked-postgres-feature/index.mdx
+++ b/apps/blog/content/blog/postgres-bloom-index-the-overlooked-postgres-feature/index.mdx
@@ -6,9 +6,9 @@ authors:
- "Ankur Datta"
metaTitle: "Bloom Filters in Postgres: The Index Type Most Developers Overlook"
metaDescription: "One bloom index can replace a stack of B-trees on wide tables with many filter combinations. A tour of the concept, the Postgres extension, and a benchmark you can run yourself."
-heroImagePath: "/postgres-bloom-index-the-overlooked-postgres-feature/imgs/bloom-filters-in-postgres.png"
-metaImagePath: "/postgres-bloom-index-the-overlooked-postgres-feature/imgs/bloom-filters-in-postgres.png"
-heroImageAlt: "Bloom Filters in Postgres"
+heroImagePath: "/postgres-bloom-index-the-overlooked-postgres-feature/imgs/hero.svg"
+metaImagePath: "/postgres-bloom-index-the-overlooked-postgres-feature/imgs/meta.png"
+heroImageAlt: "The item alice hashed by fnv1a, djb2 and murmur3, setting bits 2, 7 and 11 of a sixteen bit array, captioned one bloom signature per row."
tags:
- "prisma-postgres"
- "education"
diff --git a/apps/blog/content/blog/price-the-work-not-the-workflow/index.mdx b/apps/blog/content/blog/price-the-work-not-the-workflow/index.mdx
index 14d0b71b04..9a8ba9cabb 100644
--- a/apps/blog/content/blog/price-the-work-not-the-workflow/index.mdx
+++ b/apps/blog/content/blog/price-the-work-not-the-workflow/index.mdx
@@ -6,9 +6,9 @@ authors:
- "Luan van der Westhuizen"
metaTitle: "Price the Work, Not the Workflow"
metaDescription: "Agents can ship, preview, test, and retry in loops. Infrastructure pricing should charge for the work an app performs, not the workflow around it."
-heroImagePath: "/price-the-work-not-the-workflow/imgs/hero.png"
-metaImagePath: "/price-the-work-not-the-workflow/imgs/hero.png"
-heroImageAlt: "Agent-assisted development loop showing workflow activity around a small metered bill."
+heroImagePath: "/price-the-work-not-the-workflow/imgs/hero.svg"
+metaImagePath: "/price-the-work-not-the-workflow/imgs/meta.png"
+heroImageAlt: "Four separately priced meters, requests, provisioned memory, active CPU and outbound bandwidth, with deploys, previews, retries, seats and idle time struck out as not billed"
series: prisma-compute
seriesIndex: 8
tags:
diff --git a/apps/blog/content/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql/index.mdx b/apps/blog/content/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql/index.mdx
index 11ffb43df7..30a951bdff 100644
--- a/apps/blog/content/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql/index.mdx
+++ b/apps/blog/content/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql/index.mdx
@@ -10,8 +10,8 @@ metaImagePath: "/prisma-6-better-performance-more-flexibility-and-type-safe-sql/
heroImagePath: "/prisma-6-better-performance-more-flexibility-and-type-safe-sql/imgs/hero-1613e4843bb6239ae9f0e74962909b219dfafbc8-844x474.svg"
---
-::::note[New: the Prisma Next performance benchmark]
-Looking for the newest performance numbers? We've benchmarked [Prisma Next](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: about 87% of the raw `pg` driver's peak throughput and 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
+::::note[New: the Prisma 8 performance benchmark]
+Looking for the newest performance numbers? We've benchmarked [Prisma 8](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: about 87% of the raw `pg` driver's peak throughput and 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
::::
Today, we are releasing [Prisma v6](https://github.com/prisma/prisma/releases/tag/6.0.0)! Since the last major version, we have been hard at work incorporating user feedback, making Prisma ORM faster and more flexible, and adding amazing features like type-safe raw SQL queries.
diff --git a/apps/blog/content/blog/prisma-7-ama-clearing-up-the-why-behind-the-changes/index.mdx b/apps/blog/content/blog/prisma-7-ama-clearing-up-the-why-behind-the-changes/index.mdx
index 855331c319..7bf355073f 100644
--- a/apps/blog/content/blog/prisma-7-ama-clearing-up-the-why-behind-the-changes/index.mdx
+++ b/apps/blog/content/blog/prisma-7-ama-clearing-up-the-why-behind-the-changes/index.mdx
@@ -6,9 +6,9 @@ authors:
- "Ankur Datta"
metaTitle: "Prisma 7 Explained: Performance, Architecture, and AMA Answers"
metaDescription: "Prisma 7 introduces major architectural changes. We answer community AMA questions on performance, database support, the new client generator, and what’s next."
-metaImagePath: "/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/meta-64c44281ee8d3e0fe5e7e9bbd309603e5496945d-1266x711-26d35e93c9.png"
-heroImagePath: "/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/hero-fed37f83921ceeba6d0395d774c48ae9d5b68dcc-844x474-7cca11ee09.png"
-heroImageAlt: "Prisma 7 is a structural release focused on long-term architecture rather than surface-level features. Some things improved, others became stricter. This post answers questions from our recent AMA on X and explains where Prisma 7 stands today and where it’s headed."
+metaImagePath: "/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/meta.png"
+heroImagePath: "/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/hero.svg"
+heroImageAlt: "A question and answer from the Prisma 7 AMA set in large type: Prisma 7 vs Prisma 6 performance, is it faster or slower, answered with the line that it depends heavily on how you measure performance, with that phrase in cyan."
tags:
- "orm"
---
diff --git a/apps/blog/content/blog/prisma-7-performance-benchmarks/index.mdx b/apps/blog/content/blog/prisma-7-performance-benchmarks/index.mdx
index a2b97686f7..43022c632c 100644
--- a/apps/blog/content/blog/prisma-7-performance-benchmarks/index.mdx
+++ b/apps/blog/content/blog/prisma-7-performance-benchmarks/index.mdx
@@ -12,8 +12,8 @@ tags:
- "orm"
---
-::::note[New: the Prisma Next performance benchmark]
-The work described here landed in [Prisma Next](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM, and we've now benchmarked it: about 87% of the raw `pg` driver's peak throughput and 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
+::::note[New: the Prisma 8 performance benchmark]
+The work described here landed in [Prisma 8](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM, and we've now benchmarked it: about 87% of the raw `pg` driver's peak throughput and 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
::::
Prisma 7 shipped on **November 19th**. Since then, we have heard *a lot* from the community. Many of you love the new setup and the move away from Rust, while others have raised concerns about performance. This post is meant to be a transparent overview of what is happening and how we’re going to address it.
diff --git a/apps/blog/content/blog/prisma-compute-config-file/index.mdx b/apps/blog/content/blog/prisma-compute-config-file/index.mdx
index 8cdcc2dd06..2e8568836e 100644
--- a/apps/blog/content/blog/prisma-compute-config-file/index.mdx
+++ b/apps/blog/content/blog/prisma-compute-config-file/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "Configure Prisma Compute deploys in TypeScript"
metaDescription: "Prisma Compute now reads a typed TypeScript config file, so deploys are reproducible and monorepos work: declare one app or several, then ship the whole system with one command."
heroImagePath: "/prisma-compute-config-file/imgs/hero.svg"
-heroImageAlt: "One typed file for every app target: a prisma.compute.ts declaring an api app on Hono and a web app on Next.js"
+heroImageAlt: "An ink prisma.compute.ts code card declaring a monorepo config: an api app rooted at apps/api on Hono and a web app rooted at apps/web on Next.js"
metaImagePath: "/prisma-compute-config-file/imgs/meta.png"
excerpt: "Prisma Compute now reads a typed prisma.compute.ts, so deploys are reproducible and monorepos work: declare one app or several, then ship the whole system with one command."
series: prisma-compute
diff --git a/apps/blog/content/blog/prisma-compute-custom-domains/SequenceDiagram.tsx b/apps/blog/content/blog/prisma-compute-custom-domains/SequenceDiagram.tsx
index c48c28179c..cba90313f3 100644
--- a/apps/blog/content/blog/prisma-compute-custom-domains/SequenceDiagram.tsx
+++ b/apps/blog/content/blog/prisma-compute-custom-domains/SequenceDiagram.tsx
@@ -1,17 +1,17 @@
-const W = 750
-const BOX_W = 124
-const BOX_H = 34
-const BOX_R = 7
-const BOX_Y = 12
-const LIFE_Y0 = BOX_Y + BOX_H + 2
-const STEP_Y0 = LIFE_Y0 + 38
-const STEP_DY = 52
-const LOOP_W = 44
+const W = 750;
+const BOX_W = 124;
+const BOX_H = 34;
+const BOX_R = 7;
+const BOX_Y = 12;
+const LIFE_Y0 = BOX_Y + BOX_H + 2;
+const STEP_Y0 = LIFE_Y0 + 38;
+const STEP_DY = 52;
+const LOOP_W = 44;
-const PARTICIPANTS = ["User", "DNS provider", "Prisma Compute", "Certificate authority"]
-const PX = [76, 249, 430, 618]
+const PARTICIPANTS = ["User", "DNS provider", "Prisma Compute", "Certificate authority"];
+const PX = [76, 249, 430, 618];
-type Step = { from: number; to: number; label: string; dashed?: boolean }
+type Step = { from: number; to: number; label: string; dashed?: boolean };
const STEPS: Step[] = [
{ from: 0, to: 2, label: "Add custom domain" },
@@ -23,9 +23,9 @@ const STEPS: Step[] = [
{ from: 2, to: 3, label: "Serve challenge response", dashed: true },
{ from: 3, to: 2, label: "Issue TLS certificate", dashed: true },
{ from: 2, to: 2, label: "Encrypt and store certificate material" },
-]
+];
-const H = STEP_Y0 + STEPS.length * STEP_DY + 24
+const H = STEP_Y0 + STEPS.length * STEP_DY + 24;
export function SequenceDiagram() {
return (
@@ -99,13 +99,11 @@ export function SequenceDiagram() {
{/* steps */}
{STEPS.map((step, idx) => {
- const y = STEP_Y0 + idx * STEP_DY
- const isSelf = step.from === step.to
- const mid = isSelf
- ? PX[step.from] + LOOP_W + 8
- : (PX[step.from] + PX[step.to]) / 2
- const markerId = `url(#seq-arr${step.dashed ? "-d" : ""})`
- const arrowClass = `seq-arrow${step.dashed ? " seq-arrow-dashed" : ""}`
+ const y = STEP_Y0 + idx * STEP_DY;
+ const isSelf = step.from === step.to;
+ const mid = isSelf ? PX[step.from] + LOOP_W + 8 : (PX[step.from] + PX[step.to]) / 2;
+ const markerId = `url(#seq-arr${step.dashed ? "-d" : ""})`;
+ const arrowClass = `seq-arrow${step.dashed ? " seq-arrow-dashed" : ""}`;
return (
@@ -147,9 +145,9 @@ export function SequenceDiagram() {
{step.label}
- )
+ );
})}
- )
+ );
}
diff --git a/apps/blog/content/blog/prisma-compute-custom-domains/index.mdx b/apps/blog/content/blog/prisma-compute-custom-domains/index.mdx
index fb486f5763..fcea9a9676 100644
--- a/apps/blog/content/blog/prisma-compute-custom-domains/index.mdx
+++ b/apps/blog/content/blog/prisma-compute-custom-domains/index.mdx
@@ -6,8 +6,9 @@ authors:
- "Tyler Benfield"
metaTitle: "We Launched Prisma Compute with Custom Domains"
metaDescription: "Prisma Compute launched with custom domain support. Here's how we made the setup one DNS record while handling TLS certificate provisioning, storage, and routing behind the scenes."
-heroImagePath: "/prisma-compute-custom-domains/imgs/hero.png"
-heroImageAlt: "Custom domain in browser address bar"
+heroImagePath: "/prisma-compute-custom-domains/imgs/hero.svg"
+heroImageAlt: "The one DNS record a custom domain needs: a CNAME for shop.acme.com pointing at switchboard.cdg.prisma.build with a TTL of 300, and a status row reading active"
+metaImagePath: "/prisma-compute-custom-domains/imgs/meta.png"
tags:
- "platform"
series: prisma-compute
diff --git a/apps/blog/content/blog/prisma-compute-time-synchronization/index.mdx b/apps/blog/content/blog/prisma-compute-time-synchronization/index.mdx
index af83ff717c..14250bf53f 100644
--- a/apps/blog/content/blog/prisma-compute-time-synchronization/index.mdx
+++ b/apps/blog/content/blog/prisma-compute-time-synchronization/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "How Prisma Compute Keeps Time Accurate in Long-Running Applications"
metaDescription: "How Prisma Compute keeps wall-clock time accurate in long-running Firecracker microVMs, using the host-paired KVM PTP clock instead of an in-guest NTP daemon."
heroImagePath: "/prisma-compute-time-synchronization/imgs/hero.svg"
-heroImageAlt: "Average clock skew on an awake VM, drifting about 13.75 ms/h (3.82 ppm): -13.8 ms at one hour, -27.5 ms at two, -55 ms at four, -82.5 ms at six"
+heroImageAlt: "A drift drawing: the host paired clock read from /dev/ptp0 holds flat while an awake microVM's guest CLOCK_REALTIME falls away at 13.75 ms per hour (3.82 ppm), reaching about -82.5 ms after six hours"
metaImagePath: "/prisma-compute-time-synchronization/imgs/meta.png"
series: prisma-compute
seriesIndex: 9
diff --git a/apps/blog/content/blog/prisma-compute-vs-vercel-pricing/index.mdx b/apps/blog/content/blog/prisma-compute-vs-vercel-pricing/index.mdx
index 910bb8302e..b9fa6a978e 100644
--- a/apps/blog/content/blog/prisma-compute-vs-vercel-pricing/index.mdx
+++ b/apps/blog/content/blog/prisma-compute-vs-vercel-pricing/index.mdx
@@ -5,7 +5,7 @@ date: "2026-07-01"
authors:
- "Martin Janse van Rensburg"
heroImagePath: "/prisma-compute-vs-vercel-pricing/imgs/hero.svg"
-heroImageAlt: "The same 20M-request month costs about $98 on Prisma Compute at planned rates versus about $236 on Vercel (Pro), saving about $138 or 58% every month."
+heroImageAlt: "A line by line table of the same 20M-request month: about $98 total on Prisma Compute at planned rates against about $236 on Vercel (Pro)"
metaImagePath: "/prisma-compute-vs-vercel-pricing/imgs/meta.png"
series: prisma-compute
tags:
diff --git a/apps/blog/content/blog/prisma-data-proxy-xb16ba0p21/index.mdx b/apps/blog/content/blog/prisma-data-proxy-xb16ba0p21/index.mdx
index 651a6b0c44..daf1886605 100644
--- a/apps/blog/content/blog/prisma-data-proxy-xb16ba0p21/index.mdx
+++ b/apps/blog/content/blog/prisma-data-proxy-xb16ba0p21/index.mdx
@@ -119,4 +119,4 @@ You need pooling, but not necessarily a separate pooler. Prisma Postgres include
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/prisma-next-call-for-extension-authors/index.mdx b/apps/blog/content/blog/prisma-next-call-for-extension-authors/index.mdx
index 30f97933f5..2a619b11c9 100644
--- a/apps/blog/content/blog/prisma-next-call-for-extension-authors/index.mdx
+++ b/apps/blog/content/blog/prisma-next-call-for-extension-authors/index.mdx
@@ -1,14 +1,14 @@
---
-title: "Prisma Next: A Call for Extension Authors"
+title: "Prisma 8: A Call for Extension Authors"
slug: "prisma-next-call-for-extension-authors"
date: "2026-05-07"
authors:
- "Will Madden"
- "Ankur Datta"
-metaTitle: "Prisma Next: A Call for Extension Authors"
-metaDescription: "Prisma Next has a tiny core that knows nothing about specific databases. Postgres, vector search, and JSON-with-schema are extensions, on the same surface that's open to you. An invitation to build."
+metaTitle: "Prisma 8: A Call for Extension Authors"
+metaDescription: "Prisma 8 has a tiny core that knows nothing about specific databases. Postgres, vector search, and JSON-with-schema are extensions, on the same surface that's open to you. An invitation to build."
heroImagePath: "/prisma-next-call-for-extension-authors/imgs/hero.svg"
-heroImageAlt: "Prisma Next: A Call for Extension Authors"
+heroImageAlt: "A dark manifest card for an extension package listing the four layers it can contribute: contract, query, runtime and migration, over the line that registers it"
metaImagePath: "/prisma-next-call-for-extension-authors/imgs/meta.png"
tags:
- "orm"
@@ -18,30 +18,32 @@ series: prisma-next
seriesIndex: 6
---
-If you've ever wanted to integrate your tool, your database, or your library with Prisma, or you tried in Prisma 6 or 7 and gave up, this post is for you. Read the [Prisma Next Early Access announcement](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) for the full launch story.
+> _Editor's note: Prisma 8 was developed under the working name Prisma Next. This post has been updated to use the final name._
-[Prisma Next](https://www.prisma.io/docs/orm/next) has a deliberately tiny core that knows nothing about any specific database. Postgres support is an extension. Vector search is an extension. JSON-with-schema is an extension. Whatever Prisma Next can do, it does because someone wrote it using the same components that are available to you.
+If you've ever wanted to integrate your tool, your database, or your library with Prisma, or you tried in Prisma 6 or 7 and gave up, this post is for you. Read the [Prisma 8 Early Access announcement](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) for the full launch story.
+
+[Prisma 8](https://www.prisma.io/docs/orm/v8) has a deliberately tiny core that knows nothing about any specific database. Postgres support is an extension. Vector search is an extension. JSON-with-schema is an extension. Whatever Prisma 8 can do, it does because someone wrote it using the same components that are available to you.
The API surface is real, the same shape we used to build Postgres support ourselves, and ready to build against today.
## Postgres is an extension
-The Prisma Next framework knows about [contracts](https://www.prisma.io/docs/orm/next/contract-authoring/the-data-contract), plans, query lifecycle, and the policies that gate execution. It does _not_ know what Postgres, SQL, Mongo, vectors, or any column type other than `unknown` are.
+The Prisma 8 framework knows about [contracts](https://www.prisma.io/docs/orm/v8/contract-authoring/the-data-contract), plans, query lifecycle, and the policies that gate execution. It does _not_ know what Postgres, SQL, Mongo, vectors, or any column type other than `unknown` are.
-Every database we support and every native feature you've used in Prisma Next was added by an extension package on a public service provider interface (SPI). The Postgres target, the SQL family (its contract shape, operations, and lanes), the Postgres adapter and driver, the pgvector vector type and its similarity operators, and the arktype-JSON codec are all extensions.
+Every database we support and every native feature you've used in Prisma 8 was added by an extension package on a public service provider interface (SPI). The Postgres target, the SQL family (its contract shape, operations, and lanes), the Postgres adapter and driver, the pgvector vector type and its similarity operators, and the arktype-JSON codec are all extensions.
-There is no "core API" and "plugin API." There is one SPI, used by the team building Prisma Next and by anyone shipping a package today. Anything we build, you can build alongside us or in place of.
+There is no "core API" and "plugin API." There is one SPI, used by the team building Prisma 8 and by anyone shipping a package today. Anything we build, you can build alongside us or in place of.
## What an extension can ship
-An extension is a normal npm package: `@yourname/prisma-next-extension-foo`. Your users `pnpm add` it, [add one line to `prisma-next.config.ts`](https://www.prisma.io/docs/orm/next/extensions/using-extensions), and your additions show up in their contract, their queries, and (if you ship migrations) their migration plans.
+An extension is a normal npm package: `@yourname/prisma-next-extension-foo`. Your users `pnpm add` it, [add one line to `prisma-next.config.ts`](https://www.prisma.io/docs/orm/v8/extensions/using-extensions), and your additions show up in their contract, their queries, and (if you ship migrations) their migration plans.
An extension can include any subset of four layers, in any combination:
- **Contract layer**: column types, field builders, index types, and authoring constructs that show up in `contract.ts` and `contract.json` with your namespace and your validation rules. This is how pgvector adds dimensioned vector columns and how ParadeDB adds typed BM25 indexes
- **Query layer**: typed methods on the query builder. Users discover them through autocomplete; they compile to SQL via lowerers you provide. This is how pgvector adds `cosineDistance` on vector columns
-- **Runtime layer**: codecs that translate between the database wire format and your TypeScript types. Codecs can be synchronous (pgvector vectors decode to `number[]`) or asynchronous (encryption codecs decrypt on read with key material from an external service). [Runtime middleware](https://www.prisma.io/docs/orm/next/middleware/how-middleware-works) is also part of this slice, covering observability, audit, and policy interception around every query
-- **Migration layer**: custom DDL and data operations with pre/post checks and idempotency declarations, integrated into the migration planner. ParadeDB's planned BM25 index ops land here, and so does anything else that needs to participate in [the migration graph](https://www.prisma.io/docs/orm/next/migrations/the-migration-graph) rather than ship as a one-off script
+- **Runtime layer**: codecs that translate between the database wire format and your TypeScript types. Codecs can be synchronous (pgvector vectors decode to `number[]`) or asynchronous (encryption codecs decrypt on read with key material from an external service). [Runtime middleware](https://www.prisma.io/docs/orm/v8/middleware/how-middleware-works) is also part of this slice, covering observability, audit, and policy interception around every query
+- **Migration layer**: custom DDL and data operations with pre/post checks and idempotency declarations, integrated into the migration planner. ParadeDB's planned BM25 index ops land here, and so does anything else that needs to participate in [the migration graph](https://www.prisma.io/docs/orm/v8/migrations/the-migration-graph) rather than ship as a one-off script
Pick the layers you need. A useful extension can be one layer (a single codec, a single index type) or all four for a full vertical slice.
@@ -51,13 +53,13 @@ Three extensions ship in the repo today, each demonstrating a different combinat
### pgvector: three layers in one pack
-[@prisma-next/extension-pgvector](https://github.com/prisma/prisma-next/tree/main/packages/3-extensions/pgvector) is the canonical example. It ships a `vector(N)` column type on the contract layer, `cosineDistance` and `cosineSimilarity` operators on the query layer, and the codec that maps the SQL `vector` type to `number[]` on the runtime layer.
+[@prisma/orm-extension-pgvector](https://github.com/prisma/prisma/tree/main/packages/3-extensions/pgvector) is the canonical example. It ships a `vector(N)` column type on the contract layer, `cosineDistance` and `cosineSimilarity` operators on the query layer, and the codec that maps the SQL `vector` type to `number[]` on the runtime layer.
All three show up in the same project, file by file:
```typescript
// prisma-next.config.ts: register the pack
-import pgvector from "@prisma-next/extension-pgvector/control";
+import pgvector from "@prisma/orm-extension-pgvector/control";
export default defineConfig({
family: sql,
@@ -67,7 +69,7 @@ export default defineConfig({
});
// prisma/contract.ts: declare a dimensioned vector column
-import { vector } from "@prisma-next/extension-pgvector/column-types";
+import { vector } from "@prisma/orm-extension-pgvector/column-types";
const Post = model("Post", {
fields: {
@@ -88,19 +90,19 @@ const plan = sql
### arktype-json: codec and contract layers, library-author shape
-[@prisma-next/extension-arktype-json](https://github.com/prisma/prisma-next/tree/main/packages/3-extensions/arktype-json) is a per-library codec for JSON-with-schema columns. Pass it an arktype schema and you get back a typed JSON column whose TypeScript type matches the schema (`{ name: string; price: number }`) and whose values are validated against the schema on the wire.
+[@prisma/orm-extension-arktype-json](https://github.com/prisma/prisma/tree/main/packages/3-extensions/arktype-json) is a per-library codec for JSON-with-schema columns. Pass it an arktype schema and you get back a typed JSON column whose TypeScript type matches the schema (`{ name: string; price: number }`) and whose values are validated against the schema on the wire.
The pattern is deliberately per-library: arktype-json today, `zod-json` and `valibot-json` on parallel tracks tomorrow, each shipping the same shape with their own serialize/rehydrate story. This is the natural template for the integration you've probably wanted: your TS library wired up at the contract layer, not bolted on around the edges of an ORM.
### ParadeDB: contract layer only
-[@prisma-next/extension-paradedb](https://github.com/prisma/prisma-next/tree/main/packages/3-extensions/paradedb) adds typed BM25 full-text-search index authoring for ParadeDB users: `bm25.text(...)`, `bm25.numeric(...)`, and `bm25Index({ ... })` with all twelve built-in tokenizers and validation against the BM25 contract.
+[@prisma/orm-extension-paradedb](https://github.com/prisma/prisma/tree/main/packages/3-extensions/paradedb) adds typed BM25 full-text-search index authoring for ParadeDB users: `bm25.text(...)`, `bm25.numeric(...)`, and `bm25Index({ ... })` with all twelve built-in tokenizers and validation against the BM25 contract.
The query and migration layers for ParadeDB are explicitly planned, not yet shipped, and the README says so out loud. We think that's worth saying: an extension doesn't have to ship every layer at once. Authoring-first and following with the rest is a perfectly good trajectory, and the surface supports it.
## What you might build
-Prisma Next was built to be extensible from day one, and there are an endless number of possibilities for what _you_ could build with it. Here are some starting points:
+Prisma 8 was built to be extensible from day one, and there are an endless number of possibilities for what _you_ could build with it. Here are some starting points:
- **Database-extension authors**: a PostGIS pack with geospatial column types, spatial operators, and `CREATE EXTENSION postgis` in migrations; a `pg_trgm` pack for trigram similarity and fuzzy text search; a `pg_partman` pack for native partitioning
- **Library authors**: a `zod-json` extension; a `valibot-json` extension; a Sentry or OpenTelemetry middleware for production observability
@@ -115,13 +117,13 @@ If you build something we'd want to install ourselves, we'll do the work to put
- **A featured post on the Prisma blog**, written with you, describing what you built and why it matters
- **Promotion through Prisma's social channels**, where the audience is exactly the developers most likely to install your extension
-- **A spot in the upcoming Prisma Next extensions directory**, where users will go to discover what's available
+- **A spot in the upcoming Prisma 8 extensions directory**, where users will go to discover what's available
Prisma's userbase is large. For an integrator (a database company, a library author, a security or observability tool), being featured in front of that audience is real distribution.
And if you're a Prisma user reading this, not an integrator yourself: think about the tools you already use that don't have a Prisma integration today. Send them this post. Tell their team that there's never been a better moment. Many of the integrations we'd most like to see will only happen because someone made the connection.
-We, the Prisma Next team, are available on Discord and eager to help you build, as we have with ParadeDB and Pothos already.
+We, the Prisma 8 team, are available on Discord and eager to help you build, as we have with ParadeDB and Pothos already.
## The fastest way to start
@@ -133,9 +135,9 @@ The result is normal TypeScript you can read, edit, and iterate on like any othe
If you'd rather start from a known-good template yourself, pick the existing extension closest to what you want and copy it:
-- **Building a feature pack with column types, operators, and codecs?** Copy [pgvector](https://github.com/prisma/prisma-next/tree/main/packages/3-extensions/pgvector)
-- **Integrating a TypeScript library at the contract layer (validation, serialization, schema-driven types)?** Copy [arktype-json](https://github.com/prisma/prisma-next/tree/main/packages/3-extensions/arktype-json)
-- **Adding typed authoring for a database feature, with the rest of the layers to follow later?** Copy [ParadeDB](https://github.com/prisma/prisma-next/tree/main/packages/3-extensions/paradedb)
+- **Building a feature pack with column types, operators, and codecs?** Copy [pgvector](https://github.com/prisma/prisma/tree/main/packages/3-extensions/pgvector)
+- **Integrating a TypeScript library at the contract layer (validation, serialization, schema-driven types)?** Copy [arktype-json](https://github.com/prisma/prisma/tree/main/packages/3-extensions/arktype-json)
+- **Adding typed authoring for a database feature, with the rest of the layers to follow later?** Copy [ParadeDB](https://github.com/prisma/prisma/tree/main/packages/3-extensions/paradedb)
Either way, the packages are small. Reading code is faster than reading docs.
@@ -143,8 +145,8 @@ Either way, the packages are small. Reading code is faster than reading docs.
Build it, then tell us about it in [`#prisma-next`](https://pris.ly/discord) on Discord, and star [`prisma/prisma-next`](https://pris.ly/pn-gh) on GitHub to follow the SPI as it matures.
-Prisma Next is early, and the SPI is stable enough that the existing extensions are real proof of what's possible, though we expect to iterate as more of you build against it.
+Prisma 8 is early, and the SPI is stable enough that the existing extensions are real proof of what's possible, though we expect to iterate as more of you build against it.
-Prisma Next is in Early Access, and Prisma 7 is the current generally available release, so if you're using it, keep using it. Prisma Next will become Prisma 8 once it's ready for general use.
+Prisma 8 is a Release Candidate, and Prisma 7 is the current generally available release, so if you're using it, keep using it.
The most interesting extensions will be the ones you'll write.
diff --git a/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx b/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx
index af18326d62..f3275ef70d 100644
--- a/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx
+++ b/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx
@@ -1,14 +1,14 @@
---
-title: "Prisma Next Early Access: Write Your Contract, Prompt Your Agent, Ship Your App"
+title: "Prisma 8 Early Access: Write Your Contract, Prompt Your Agent, Ship Your App"
slug: "prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app"
date: "2026-05-22"
authors:
- "Ankur Datta"
- "Will Madden"
-metaTitle: "Prisma Next Early Access: Write Your Contract, Prompt Your Agent, Ship Your App"
-metaDescription: "Prisma Next is open for Early Access. Define your data layer as a contract and the framework handles migrations, type-safe queries, and continuous upgrades, safe to delegate to your agent."
-heroImagePath: "/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/meta.png"
-heroImageAlt: "Prisma Next Early Access"
+metaTitle: "Prisma 8 Early Access: Write Your Contract, Prompt Your Agent, Ship Your App"
+metaDescription: "Prisma 8 is open for Early Access. Define your data layer as a contract and the framework handles migrations, type-safe queries, and continuous upgrades, safe to delegate to your agent."
+heroImagePath: "/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/hero.svg"
+heroImageAlt: "A three-step pipeline of cards: write your contract in contract.prisma, prompt your agent to run prisma-next migration plan, then ship your app with prisma-next migrate"
metaImagePath: "/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/meta.png"
tags:
- "orm"
@@ -18,6 +18,8 @@ series: prisma-next
seriesIndex: 8
---
+> _Editor's note: Prisma 8 was developed under the working name Prisma Next. This post has been updated to use the final name._
+
import {
contractBeforeAuthor,
contractAfterAuthor,
@@ -29,17 +31,17 @@ import {
upgradeTerminalLines,
} from "./snippets";
-**Prisma Next gives you superpowers and makes it safe to delegate them to your agent, leaving you to focus on what matters: your app.** Define your data layer as a contract and the framework handles everything else for you: migrating your DB, type-checking your queries, and meaningful errors when something goes wrong.
+**Prisma 8 gives you superpowers and makes it safe to delegate them to your agent, leaving you to focus on what matters: your app.** Define your data layer as a contract and the framework handles everything else for you: migrating your DB, type-checking your queries, and meaningful errors when something goes wrong.
-Agents are here to stay. They don't replace you, they multiply your capabilities. From your first touch to your first paying user, Prisma Next's _agent DX_ keeps your agent in the loop and on track. Instant onboarding, guardrails, verifiable type-checked work, and continuous upgrades.
+Agents are here to stay. They don't replace you, they multiply your capabilities. From your first touch to your first paying user, Prisma 8's _agent DX_ keeps your agent in the loop and on track. Instant onboarding, guardrails, verifiable type-checked work, and continuous upgrades.
-Today, **Prisma Next is open for Early Access for Postgres and [MongoDB](https://www.prisma.io/blog/mongodb-without-compromise).**
+Today, **Prisma 8 is open for Early Access for Postgres and [MongoDB](https://www.prisma.io/blog/mongodb-without-compromise).**
## One-line setup and onboarding without any learning curve
If you've ever picked up a new framework, you know how long it takes to climb a steep learning curve. You read the docs, build a toy project and make mistakes the docs warned you about. It takes weeks to absorb the framework's idioms until you're confident enough to actually build.
-One command scaffolds a new project with Prisma Next, including a [family of skills](https://www.prisma.io/docs/ai/tools/skills) which make your agent an instant expert.
+One command scaffolds a new project with Prisma 8, including a [family of skills](https://www.prisma.io/docs/ai/tools/skills) which make your agent an instant expert.
```bash
npm create prisma@next
@@ -61,9 +63,9 @@ model Book {
}
```
-This is [the contract](https://www.prisma.io/docs/orm/next/contract-authoring/the-data-contract) between your application and your database. The models are what your application depends on, and your database promises to store them in the shapes described in the contract.
+This is [the contract](https://www.prisma.io/docs/orm/v8/contract-authoring/the-data-contract) between your application and your database. The models are what your application depends on, and your database promises to store them in the shapes described in the contract.
-It's easy to read, easy to update, and it's the single source of truth for everything in Prisma Next. Queries are type-checked against it, autocomplete reads from it, and when you change it, Prisma Next plans the migrations to match, so your database continues to satisfy the contract.
+It's easy to read, easy to update, and it's the single source of truth for everything in Prisma 8. Queries are type-checked against it, autocomplete reads from it, and when you change it, Prisma 8 plans the migrations to match, so your database continues to satisfy the contract.
That leaves you and your agent free to focus on your application.
@@ -84,7 +86,7 @@ Considering the book table in the contract above, you can ask the agent for a fe
after={contractAfterAuthor}
/>
-Then, when you ask the agent to [write a query](https://www.prisma.io/docs/orm/next/fundamentals/reading-data), it iterates inside its own tool calls until the query type-checks, or until it resolves any errors. Here's what that looks like in practice:
+Then, when you ask the agent to [write a query](https://www.prisma.io/docs/orm/v8/fundamentals/reading-data), it iterates inside its own tool calls until the query type-checks, or until it resolves any errors. Here's what that looks like in practice:
_"Build me a small app that tracks the books I'm reading. Add a few records, and show me the list."_
-Or ask your agent _anything_ about Prisma Next:
+Or ask your agent _anything_ about Prisma 8:
> _"How do I add a new field to my model?"_
> _"What happens if a migration fails during deployment?"_
> _"How do I handle breaking changes in my code?"_
-Once you've got something running, tag [us on X](https://pris.ly/x) and tell us what you built. The best community builds get a shout-out from the Prisma account and a link in the [Prisma Next README](https://github.com/prisma/prisma-next).
+Once you've got something running, tag [us on X](https://pris.ly/x) and tell us what you built. The best community builds get a shout-out from the Prisma account and a link in the [Prisma 8 README](https://github.com/prisma/prisma-next).
And when you're ready to ship it, our hosted database [Prisma Postgres](https://www.prisma.io/postgres) comes with a generous free tier.
@@ -224,4 +226,4 @@ Star and watch [prisma/prisma-next](https://github.com/prisma/prisma-next) on Gi
We can't wait to see what you build.
-> _Note that Prisma Next is not production-ready yet. Prisma 7 is still the right choice for production applications today. When Prisma Next is ready for general use, it will become Prisma 8._
+> _Note that Prisma 8 is not production-ready yet. Prisma 7 is still the right choice for production applications today._
diff --git a/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/snippets.ts b/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/snippets.ts
index 1e7f2980a2..cd1097f6ef 100644
--- a/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/snippets.ts
+++ b/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/snippets.ts
@@ -72,7 +72,7 @@ export const upgradeTerminalLines = [
"→ Detected current: 0.10.0 target: 0.11.0",
"→ Reading upgrades/0.10-to-0.11/instructions.md",
"→ Plan: wrap single-row .insert({...}) calls in arrays",
- "→ Bumping @prisma-next/* to 0.11.0 in package.json",
+ "→ Bumping @prisma/orm-* to 0.11.0 in package.json",
"$ pnpm install",
"✓ Lockfile updated",
"→ Applying codemod across src/",
diff --git a/apps/blog/content/blog/prisma-next-ltree-extension/index.mdx b/apps/blog/content/blog/prisma-next-ltree-extension/index.mdx
index e748f43c83..687af85210 100644
--- a/apps/blog/content/blog/prisma-next-ltree-extension/index.mdx
+++ b/apps/blog/content/blog/prisma-next-ltree-extension/index.mdx
@@ -1,13 +1,13 @@
---
-title: "Extending Prisma Next with Typed Postgres ltree"
+title: "Extending Prisma 8 with Typed Postgres ltree"
slug: "prisma-next-ltree-extension"
date: "2026-07-20"
authors:
- "Jason Procka"
-metaTitle: "Extending Prisma Next with Typed Postgres ltree"
-metaDescription: "Use PostgreSQL ltree in Prisma Next with prisma-ltree: typed path columns plus ancestor and descendant queries."
+metaTitle: "Extending Prisma 8 with Typed Postgres ltree"
+metaDescription: "Use PostgreSQL ltree in Prisma 8 with prisma-ltree: typed path columns plus ancestor and descendant queries."
heroImagePath: "/prisma-next-ltree-extension/imgs/hero.svg"
-heroImageAlt: "Typed ltree for Prisma Next: the prisma-ltree extension pack shown as a hierarchical path tree"
+heroImageAlt: "A typed ltree path tree on a light card: essays branches into essays.drafts and essays.published, each with a chapter leaf, above the isDescendantOf operator"
metaImagePath: "/prisma-next-ltree-extension/imgs/meta.png"
tags:
- "orm"
@@ -16,7 +16,9 @@ series: prisma-next
seriesIndex: 11
---
-I needed nested collections for a personal writing project: texts and collections at arbitrary depth, like a category tree of documents. PostgreSQL's [`ltree`](https://www.postgresql.org/docs/current/ltree.html) extension stores those hierarchical paths (for example `essays.drafts.chapter_1`) with native operators for ancestors, descendants, and shared parents. Prisma never shipped an `ltree` type, so I built [`prisma-ltree`](https://github.com/slovakian/prisma-ltree) for [Prisma Next](https://www.prisma.io/docs/orm/next): typed columns, operators, path validation, and database setup as a community extension pack.
+> _Editor's note: Prisma 8 was developed under the working name Prisma Next. This post has been updated to use the final name._
+
+I needed nested collections for a personal writing project: texts and collections at arbitrary depth, like a category tree of documents. PostgreSQL's [`ltree`](https://www.postgresql.org/docs/current/ltree.html) extension stores those hierarchical paths (for example `essays.drafts.chapter_1`) with native operators for ancestors, descendants, and shared parents. Prisma never shipped an `ltree` type, so I built [`prisma-ltree`](https://github.com/slovakian/prisma-ltree) for [Prisma 8](https://www.prisma.io/docs/orm/v8): typed columns, operators, path validation, and database setup as a community extension pack.
For years, as a Prisma user, a type the ORM didn't model meant reaching for whatever it did support: occasional raw SQL, later typed SQL once that shipped, but mostly just the models Prisma made easy. If the ORM didn't model something, I usually didn't bother with it.
@@ -32,11 +34,11 @@ Postgres has had `ltree` since 2002. It stores dotted paths and exposes `@>` / `
Hierarchies like this show up in category trees, file systems, org charts, and taxonomies. An org chart path like `company.engineering.platform` uses the same shape as `essays.drafts.chapter_1`, and [Prisma users have asked for native `ltree` support](https://github.com/prisma/prisma/issues/2568) since May 2020, alongside plenty of similar requests for other database features.
-Once this project needed a real tree type, Prisma Next's extension system let me add `ltree` without waiting for it to land in core, exactly the gap the [call for extension authors](/prisma-next-call-for-extension-authors) invites the community to fill. I leaned on an agent while reading the Prisma Next codebase; that made understanding the extension model, and then writing the pack, faster than digging through it by hand alone.
+Once this project needed a real tree type, Prisma 8's extension system let me add `ltree` without waiting for it to land in core, exactly the gap the [call for extension authors](/prisma-next-call-for-extension-authors) invites the community to fill. I leaned on an agent while reading the Prisma 8 codebase; that made understanding the extension model, and then writing the pack, faster than digging through it by hand alone.
-## Using `ltree` with Prisma Next
+## Using `ltree` with Prisma 8
-A pack is an extension package that contributes types, migrations, and runtime operators to Prisma Next. `prisma-ltree` plugs in the same way other Postgres extension packages do (`pgvector`, `postgis`). Setup is six steps. The samples below match the pack's `examples/family-tree` app: pin `@prisma-next/*` to `0.14.0`.
+A pack is an extension package that contributes types, migrations, and runtime operators to Prisma 8. `prisma-ltree` plugs in the same way other Postgres extension packages do (`pgvector`, `postgis`). Setup is six steps. The samples below match the pack's `examples/family-tree` app: pin `@prisma/orm-*` to `0.14.0`.
**1. Install `prisma-ltree`**
@@ -50,7 +52,7 @@ Control config and the runtime client both take an `extensions` array. Control i
```typescript
// prisma-next.config.ts
-import { defineConfig } from "@prisma-next/postgres/config";
+import { defineConfig } from "@prisma/orm-postgres/config";
import ltree from "prisma-ltree/control";
export default defineConfig({
@@ -66,7 +68,7 @@ The runtime client registers the same pack so the typed operators show up where
```typescript
// prisma/db.ts
-import postgres from "@prisma-next/postgres/runtime";
+import postgres from "@prisma/orm-postgres/runtime";
import ltree from "prisma-ltree/runtime";
import type { Contract } from "./contract.d";
import contractJson from "./contract.json" with { type: "json" };
@@ -172,9 +174,9 @@ That call asks Postgres for `lca('essays.drafts.chapter_1', 'essays.published.ch
Those three cover the queries I needed for nested collections. The pack also exposes more of the `ltree` operator set, including `matchesLqueryArray` for matching against a list of patterns, `matchesLtxtquery` for full-text-style label search, and casts like `toLtree` for bridging from plain `text` columns. It does not claim every Postgres `ltree` feature (GiST DDL in schema is still out of scope). The [operator reference](https://prisma-ltree.procka.org) lists what ships, with the SQL each one compiles to.
-## Early Access
+## Release Candidate
-Prisma Next and `prisma-ltree` are both Early Access, so give them a try and share your feedback as we continue improving them. Community packs can still add Postgres types like `ltree` without waiting for every feature to land in core.
+Prisma 8 is a Release Candidate and `prisma-ltree` evolves with it, so give them a try and share your feedback as we continue improving them. Community packs can still add Postgres types like `ltree` without waiting for every feature to land in core.
The operators above, `isDescendantOf`, `isAncestorOf`, `matchesLquery`, and `lca`, are what I actually use for this tree. Typed `ltree` columns and path validation are there too.
diff --git a/apps/blog/content/blog/prisma-next-performance-benchmark/index.mdx b/apps/blog/content/blog/prisma-next-performance-benchmark/index.mdx
index 8eac44b989..e633bcf321 100644
--- a/apps/blog/content/blog/prisma-next-performance-benchmark/index.mdx
+++ b/apps/blog/content/blog/prisma-next-performance-benchmark/index.mdx
@@ -1,13 +1,13 @@
---
-title: "Prisma Next Is ~90% As Fast as Raw PG"
+title: "Prisma 8 Is ~90% As Fast as Raw PG"
slug: "prisma-next-performance-benchmark"
date: "2026-06-11"
authors:
- "Serhii Tatarintsev"
-metaTitle: "Prisma Next Is ~90% As Fast as Raw PG"
-metaDescription: "Prisma Next performance benchmarks achieves ~90% of the raw pg driver's peak throughput, holds latency low under load, and ships as a 148.5 KB gzipped bundle for serverless and edge workloads."
+metaTitle: "Prisma 8 Is ~90% As Fast as Raw PG"
+metaDescription: "Prisma 8 performance benchmarks achieves ~90% of the raw pg driver's peak throughput, holds latency low under load, and ships as a 148.5 KB gzipped bundle for serverless and edge workloads."
heroImagePath: "/prisma-next-performance-benchmark/imgs/hero.svg"
-heroImageAlt: "Bar chart showing Prisma Next outperforming Prisma 7 in throughput benchmarks"
+heroImageAlt: "Peak sustained throughput bars on the same Postgres workload: the raw pg driver at 14,350 requests per second, Prisma 8 at 12,500, Prisma 7 at 8,300"
metaImagePath: "/prisma-next-performance-benchmark/imgs/meta.png"
tags:
- "orm"
@@ -16,69 +16,71 @@ series: prisma-next
seriesIndex: 9
---
+> _Editor's note: Prisma 8 was developed under the working name Prisma Next. This post has been updated to use the final name._
+
Every ORM does work on every query: it turns your query into SQL, sends it, and turns the rows that come back into objects. That work has a cost, and in Prisma 7 it sits deep in the architecture, so reducing it meant rebuilding the layers underneath.
-That rebuild is [Prisma Next](https://pris.ly/pn-series), the new foundation for Prisma ORM. It's written in TypeScript end to end and runs on a much lighter core, while keeping the same [model-first, type-safe workflow](https://www.prisma.io/docs/orm/next) you already use.
+That rebuild is [Prisma 8](https://pris.ly/pn-series), the new foundation for Prisma ORM. It's written in TypeScript end to end and runs on a much lighter core, while keeping the same [model-first, type-safe workflow](https://www.prisma.io/docs/orm/v8) you already use.
-To see where it stands, we ran the same Postgres workload through three setups: Prisma 7, Prisma Next, and the raw `pg` driver. We pushed traffic up until each one reached its limit.
+To see where it stands, we ran the same Postgres workload through three setups: Prisma 7, Prisma 8, and the raw `pg` driver. We pushed traffic up until each one reached its limit.
-- Prisma 7 tops out around **8,300 requests/second**, and Prisma Next keeps scaling to about **12,500**, roughly **50% more**.
-- At 6,000 to 7,000 requests/second, a level both can serve, Prisma Next's p95 latency stays around 4 ms while Prisma 7's has already climbed past 40 ms.
-- Prisma Next reaches about **87%** of the raw `pg` driver's peak, while Prisma 7 reaches about **58%**.
+- Prisma 7 tops out around **8,300 requests/second**, and Prisma 8 keeps scaling to about **12,500**, roughly **50% more**.
+- At 6,000 to 7,000 requests/second, a level both can serve, Prisma 8's p95 latency stays around 4 ms while Prisma 7's has already climbed past 40 ms.
+- Prisma 8 reaches about **87%** of the raw `pg` driver's peak, while Prisma 7 reaches about **58%**.
Its bundle size gzipped is about **148.5 KB** gzipped, compared to **1.32 MB** for Prisma 7, also about **9× smaller** to ship, which matters for serverless and edge deployments where bundle size drives cold starts. We look at that below.
-One note before the numbers: **Prisma 7 is still the version to use in production today.** [Prisma Next is in Early Access](https://pris.ly/pn-ea), and once it's Generally Available you'll be able to run it in production too.
+One note before the numbers: **Prisma 7 is still the version to use in production today.** [The Prisma 8 Release Candidate is available](https://pris.ly/pn-ea), and once it's Generally Available you'll be able to run it in production too.
## How we ran the benchmark
-The benchmark is a fork of the open-source [`drizzle-team/drizzle-benchmarks`](https://github.com/drizzle-team/drizzle-benchmarks) suite. We kept its setup and workload and added Prisma Next alongside the existing setups, so the methodology comes from outside Prisma rather than from us.
+The benchmark is a fork of the open-source [`drizzle-team/drizzle-benchmarks`](https://github.com/drizzle-team/drizzle-benchmarks) suite. We kept its setup and workload and added Prisma 8 alongside the existing setups, so the methodology comes from outside Prisma rather than from us.
It points a load generator at a small HTTP service backed by a single Postgres database, runs the identical workload against each setup on the same machine, and ramps traffic from light all the way up to its limit while recording throughput and latency at each step.
-The raw `pg` driver is our baseline: the fastest this machine can talk to the database, with none of an ORM's higher-level work, since you write the SQL and handle the rows yourself. Prisma Next isn't trying to beat it. The question is how much overhead is left once Prisma's workflow sits on top.
+The raw `pg` driver is our baseline: the fastest this machine can talk to the database, with none of an ORM's higher-level work, since you write the SQL and handle the rows yourself. Prisma 8 isn't trying to beat it. The question is how much overhead is left once Prisma's workflow sits on top.
[Here's our benchmark fork with setup, raw data, versions, and methodology.](https://pris.ly/pn-benchmarks)
-## Peak throughput: Prisma Next keeps climbing
+## Peak throughput: Prisma 8 keeps climbing
-This is the main result. As traffic rises, all three lines climb together at first; then Prisma 7 flattens out, while Prisma Next and `pg` keep climbing for thousands more requests per second.
+This is the main result. As traffic rises, all three lines climb together at first; then Prisma 7 flattens out, while Prisma 8 and `pg` keep climbing for thousands more requests per second.
-
+
That flat line is the overhead the new foundation was built to reduce. The peak each setup sustains, measured as the average of its busiest 10% of the run, lands here:
-
+
| Setup | Peak throughput (req/s) | vs Prisma 7 | % of `pg` |
| ----------------- | ----------------------- | ----------- | --------- |
| `pg` (raw driver) | ~14,350 | — | 100% |
-| Prisma Next | ~12,500 | +52% | 87% |
+| Prisma 8 | ~12,500 | +52% | 87% |
| Prisma 7 | ~8,300 | — | 58% |
## Latency at the same load
-Peak throughput shows how far each setup scales, and latency shows how it feels along the way. To compare fairly we look at the same traffic going into each, rather than a fully loaded Prisma 7 against a Prisma Next with room to spare.
+Peak throughput shows how far each setup scales, and latency shows how it feels along the way. To compare fairly we look at the same traffic going into each, rather than a fully loaded Prisma 7 against a Prisma 8 with room to spare.
Below about 5,000 requests/second all three sit within a few milliseconds of each other, and the gap opens as traffic climbs toward the top of Prisma 7's range. Here's 6,000 to 7,000 requests/second, where all three keep up but the differences start to show (p95 and p99 are the slowest 5% and 1% of requests):
| Setup | Avg latency | p95 latency | p99 latency |
| ----------------- | ----------- | ----------- | ----------- |
| `pg` (raw driver) | 0.7 ms | 1.9 ms | 4.3 ms |
-| Prisma Next | 1.2 ms | 4.4 ms | 8.9 ms |
+| Prisma 8 | 1.2 ms | 4.4 ms | 8.9 ms |
| Prisma 7 | 8.1 ms | 41.8 ms | 116.7 ms |
-Prisma Next stays within a few milliseconds of the raw driver here, and that holds well past the load where Prisma 7 hits its ceiling. Every setup eventually slows down as it approaches its own limit; Prisma Next simply reaches that point much later.
+Prisma 8 stays within a few milliseconds of the raw driver here, and that holds well past the load where Prisma 7 hits its ceiling. Every setup eventually slows down as it approaches its own limit; Prisma 8 simply reaches that point much later.
-Tracking p95 latency across the run shows the same split: Prisma 7's line turns upward early and climbs steeply as it nears its limit, reaching roughly 400 milliseconds, while the Prisma Next and `pg` lines stay flat and low far longer.
+Tracking p95 latency across the run shows the same split: Prisma 7's line turns upward early and climbs steeply as it nears its limit, reaching roughly 400 milliseconds, while the Prisma 8 and `pg` lines stay flat and low far longer.
-
+
## A smaller bundle, especially for serverless
-The lighter core makes Prisma Next far smaller to ship: about **148.5 KB** gzipped, compared to **1.32 MB** for Prisma 7, roughly **9× smaller**.
+The lighter core makes Prisma 8 far smaller to ship: about **148.5 KB** gzipped, compared to **1.32 MB** for Prisma 7, roughly **9× smaller**.
-This matters most for serverless and edge. A smaller bundle means faster cold starts, smaller deployment artifacts, and more headroom under the size limits that platforms like Cloudflare Workers and Vercel enforce. If you've ever fought Prisma's footprint in an edge or serverless function, this is the part of Prisma Next to try first.
+This matters most for serverless and edge. A smaller bundle means faster cold starts, smaller deployment artifacts, and more headroom under the size limits that platforms like Cloudflare Workers and Vercel enforce. If you've ever fought Prisma's footprint in an edge or serverless function, this is the part of Prisma 8 to try first.
## What this means for your app
@@ -93,11 +95,11 @@ Benchmarks are direction, not a promise. A few things to keep in mind:
A few caveats. This is one benchmark, on one workload and one machine, so results will shift with different queries, data volumes, and hardware.
-We've shared [our benchmark repo](https://pris.ly/pn-benchmarks), so you can run it yourself and tell us where we're wrong. We'll keep testing more workloads and tuning as Prisma Next moves toward Prisma 8.
+We've shared [our benchmark repo](https://pris.ly/pn-benchmarks), so you can run it yourself and tell us where we're wrong. We'll keep testing more workloads and tuning as Prisma 8 moves toward general availability.
-## Try Prisma Next today
+## Try Prisma 8 today
-There are two ways to [get started](https://www.prisma.io/docs/next/quickstart/postgresql). To spin up a complete template app, scaffold one with:
+There are two ways to [get started](https://www.prisma.io/docs/v8/quickstart/postgresql). To spin up a complete template app, scaffold one with:
```shell
bunx create-prisma@next
@@ -105,10 +107,10 @@ bunx create-prisma@next
This sets you up with a [Prisma Postgres](https://www.prisma.io/postgres) database and can deploy the app to [Prisma Compute](https://www.prisma.io/compute), our serverless runtime for Prisma apps, so you can see the bundle-size and cold-start benefits above end to end.
-To add Prisma Next to an existing app, run:
+To add Prisma 8 to an existing app, run:
```shell
bunx prisma-next@latest init
```
-To learn more, start with the [Early Access blog post](https://pris.ly/pn-ea). Star and watch [prisma/prisma-next](https://github.com/prisma/prisma-next) on GitHub to follow what ships next, and if you hit a snag, start a thread in [`#prisma-next` on our Discord](https://pris.ly/discord).
+To learn more, start with the [announcement blog post](https://pris.ly/pn-ea). Star and watch [prisma/prisma-next](https://github.com/prisma/prisma-next) on GitHub to follow what ships next, and if you hit a snag, start a thread in [`#prisma-next` on our Discord](https://pris.ly/discord).
diff --git a/apps/blog/content/blog/prisma-next-roadmap-april-milestone/index.mdx b/apps/blog/content/blog/prisma-next-roadmap-april-milestone/index.mdx
index ad08a41f74..d925f6ddf0 100644
--- a/apps/blog/content/blog/prisma-next-roadmap-april-milestone/index.mdx
+++ b/apps/blog/content/blog/prisma-next-roadmap-april-milestone/index.mdx
@@ -1,12 +1,13 @@
---
-title: "Prisma Next: April Milestone Complete, the Extension API Is Open"
+title: "Prisma 8: April Milestone Complete, the Extension API Is Open"
slug: "prisma-next-roadmap-april-milestone"
date: "2026-05-11"
authors:
- "Will Madden"
-metaTitle: "Prisma Next: April milestone complete, the extension API is open"
-metaDescription: "April shipped the first four extensions on the new Prisma Next extension API: pgvector, arktype-json, ParadeDB, and CipherStash. The extension API is open to outside authors. May shifts to Early Access."
+metaTitle: "Prisma 8: April milestone complete, the extension API is open"
+metaDescription: "April shipped the first four extensions on the new Prisma 8 extension API: pgvector, arktype-json, ParadeDB, and CipherStash. The extension API is open to outside authors. May shifts to Early Access."
heroImagePath: "/prisma-next-roadmap-april-milestone/imgs/hero.svg"
+heroImageAlt: "A milestone panel: pgvector, arktype-json, ParadeDB and CipherStash checked off as shipped in April, with streaming subscriptions in a dashed card carried into May"
metaImagePath: "/prisma-next-roadmap-april-milestone/imgs/meta.png"
tags:
- "orm"
@@ -15,13 +16,15 @@ series: prisma-next
seriesIndex: 7
---
-In March we published the [Prisma Next roadmap](https://pris.ly/AgH6EUa). April was the month we'd open Prisma Next up to external contributors. May was the month we'd put it into users' hands.
+> _Editor's note: Prisma 8 was developed under the working name Prisma Next. This post has been updated to use the final name._
+
+In March we published the [Prisma 8 roadmap](https://pris.ly/AgH6EUa). April was the month we'd open Prisma 8 up to external contributors. May was the month we'd put it into users' hands.
**The April milestone is complete. The extension API is open to outside authors.**
Four extensions now ship on it: [`pgvector`](https://github.com/prisma/prisma-next/pull/391), [`arktype-json`](https://github.com/prisma/prisma-next/pull/402), [ParadeDB](https://github.com/prisma/prisma-next/pull/374), and [CipherStash](https://github.com/prisma/prisma-next/pull/411). One planned piece did not land: streaming subscriptions in the runtime. May shifts to Early Access for users.
-If you want to [build a Prisma Next extension](https://www.prisma.io/docs/orm/next/extensions/using-extensions), the [call for extension authors](https://pris.ly/pn-extension-authors) is the front door. The API will keep evolving, but it's stable enough to build something real against — and we want to hear what's missing.
+If you want to [build a Prisma 8 extension](https://www.prisma.io/docs/orm/v8/extensions/using-extensions), the [call for extension authors](https://pris.ly/pn-extension-authors) is the front door. The API will keep evolving, but it's stable enough to build something real against — and we want to hear what's missing.
## What you can build with the extension API
@@ -32,7 +35,7 @@ An extension can contribute new data types, new query operations, and new migrat
- **ParadeDB** adds full-text and analytical search backed by ParadeDB's Postgres extensions.
- **CipherStash** adds searchable encryption at rest — encrypted column types with query operations on encrypted values, built by the CipherStash team.
-These are built on the same extension API the Prisma Next team uses for built-in features. If you want to see what an extension looks like end to end, the upcoming build-your-own-extension tutorial walks through a small one from scratch.
+These are built on the same extension API the Prisma 8 team uses for built-in features. If you want to see what an extension looks like end to end, the upcoming build-your-own-extension tutorial walks through a small one from scratch.
## What else landed in April
@@ -40,29 +43,29 @@ Extensions are the headline, but the rest of the stack moved too. Here's what yo
### Migrations
-You can author migrations in TypeScript. Scaffold a migration file, write the change in code, and the compiler emits a structured description the runner picks up and applies. [TypeScript migrations in Prisma Next](https://pris.ly/ts-migrations-pn) walks through the authoring surface.
+You can author migrations in TypeScript. Scaffold a migration file, write the change in code, and the compiler emits a structured description the runner picks up and applies. [TypeScript migrations in Prisma 8](https://pris.ly/ts-migrations-pn) walks through the authoring surface.
-Data migrations are partly there. You can run a data transformation — say, splitting `name` into `firstName` and `lastName` — and the system records what changed and what guarantees the migration leaves behind (_"every row now has a non-null email"_). What still needs to land: the runtime using those guarantees, so queries can take advantage of them automatically. That part carries into May. [Data migrations in Prisma Next](https://pris.ly/data-migration-pn) covers this in detail.
+Data migrations are partly there. You can run a data transformation — say, splitting `name` into `firstName` and `lastName` — and the system records what changed and what guarantees the migration leaves behind (_"every row now has a non-null email"_). What still needs to land: the runtime using those guarantees, so queries can take advantage of them automatically. That part carries into May. [Data migrations in Prisma 8](https://pris.ly/data-migration-pn) covers this in detail.
### Contract authoring
-You can define your [data contract](https://www.prisma.io/docs/orm/next/contract-authoring/the-data-contract) in `contract.prisma` or in TypeScript. Both surfaces produce the same compiled contract, regardless of which you choose. Next up: the everyday helpers, IDE autocomplete, and the patterns a first-time user expects to work without thinking.
+You can define your [data contract](https://www.prisma.io/docs/orm/v8/contract-authoring/the-data-contract) in `contract.prisma` or in TypeScript. Both surfaces produce the same compiled contract, regardless of which you choose. Next up: the everyday helpers, IDE autocomplete, and the patterns a first-time user expects to work without thinking.
### Transactions and React Server Components
-[Transactions](https://www.prisma.io/docs/orm/next/fundamentals/transactions) work on Postgres. The ORM can open a transaction, and the [SQL query builder](https://www.prisma.io/docs/orm/next/reference/sql-query-builder) can run inside it, sharing one database connection — so the SQL escape hatch actually works mid-transaction.
+[Transactions](https://www.prisma.io/docs/orm/v8/fundamentals/transactions) work on Postgres. The ORM can open a transaction, and the [SQL query builder](https://www.prisma.io/docs/orm/v8/reference/sql-query-builder) can run inside it, sharing one database connection — so the SQL escape hatch actually works mid-transaction.
The runtime runs safely under React Server Components: parallel Server Components, shared runtime state, connection pooling, and query-result caching all behave correctly under concurrency.
-[Middleware](https://www.prisma.io/docs/orm/next/middleware/how-middleware-works) hooks are in place — a middleware function can see a query, return a cached result, or rewrite the response.
+[Middleware](https://www.prisma.io/docs/orm/v8/middleware/how-middleware-works) hooks are in place — a middleware function can see a query, return a cached result, or rewrite the response.
### MongoDB
-[MongoDB](https://www.prisma.io/docs/orm/next/data-modeling/mongodb) is a first-class database family in Prisma Next. You get type-safe queries, real database migrations (indexes, JSON Schema validators, collection options), polymorphic collections with discriminated unions, embedded documents, and a typed aggregation pipeline builder. [MongoDB Without Compromise](https://www.prisma.io/blog/mongodb-without-compromise) covers the full story.
+[MongoDB](https://www.prisma.io/docs/orm/v8/data-modeling/mongodb) is a first-class database family in Prisma 8. You get type-safe queries, real database migrations (indexes, JSON Schema validators, collection options), polymorphic collections with discriminated unions, embedded documents, and a typed aggregation pipeline builder. [MongoDB Without Compromise](https://www.prisma.io/blog/mongodb-without-compromise) covers the full story.
### SQLite
-We built a SQLite proof of concept that shows how straightforward it is to add more database targets to Prisma Next. More targets will roll out in the coming months, but right now our focus is Postgres and MongoDB.
+We built a SQLite proof of concept that shows how straightforward it is to add more database targets to Prisma 8. More targets will roll out in the coming months, but right now our focus is Postgres and MongoDB.
## What did not land
@@ -72,23 +75,23 @@ For our upcoming Supabase support, we're adding realtime query subscriptions —
## May: making it easy to get started
-May's focus is the developer experience. We want your first hour with Prisma Next to feel smooth, from scaffolding a project to running your first query. When it's ready, we'll launch [Prisma Next as Early Access](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) for Postgres and MongoDB.
+May's focus is the developer experience. We want your first hour with Prisma 8 to feel smooth, from scaffolding a project to running your first query. When it's ready, we'll launch [Prisma 8 as Early Access](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) for Postgres and MongoDB.
Three things to watch this month:
-- **Getting started gets smoother.** Project scaffolding, `db init`, `db update`, CLI consistency, error messages that tell you what to do next. Contract authoring picks up the patterns you'd reach for on day one — scalar arrays, composite keys, `@updatedAt`, native type annotations — and the language server stops showing false errors on valid Prisma Next schemas.
+- **Getting started gets smoother.** Project scaffolding, `db init`, `db update`, CLI consistency, error messages that tell you what to do next. Contract authoring picks up the patterns you'd reach for on day one — scalar arrays, composite keys, `@updatedAt`, native type annotations — and the language server stops showing false errors on valid Prisma 8 schemas.
- **The query and migration surfaces keep maturing.** Transactions extend to SQLite and MongoDB. The SQL query builder covers more real-world escape-hatch patterns. The migration workflow gets clearer output, smoother manual migration UX, and preflight verification.
- **New platform support.** First-class Supabase support, including realtime query subscriptions. Cloudflare Workers ships as a first-party Postgres module.
## Try it out
-You can start building with Prisma Next today. Run `npx prisma-next init`, open the contract, add a model, run `prisma-next migration plan` — it takes about as long as reading this paragraph.
+You can start building with Prisma 8 today. Run `npx prisma-next init`, open the contract, add a model, run `prisma-next migration plan` — it takes about as long as reading this paragraph.
The API is still settling, so expect breaking changes often. If you find rough edges or something you were hoping for that's missing, drop into [`#prisma-next` on Discord](https://pris.ly/discord) and tell us. Feedback right now is the most valuable thing we can get.
Star or watch [`prisma/prisma-next` on GitHub](https://pris.ly/pn-gh) to follow updates as they land, and subscribe to the [Prisma blog](https://www.prisma.io/blog) for the monthly milestone update.
-Prisma Next is not yet production-ready. Prisma 7 remains the right choice for production today, and when Prisma Next is ready for general use, it becomes Prisma 8.
+Prisma 8 is not yet production-ready. Prisma 7 remains the right choice for production today.
## Further reading
diff --git a/apps/blog/content/blog/prisma-next-roadmap/index.mdx b/apps/blog/content/blog/prisma-next-roadmap/index.mdx
index 54d2e97366..14b2e32933 100644
--- a/apps/blog/content/blog/prisma-next-roadmap/index.mdx
+++ b/apps/blog/content/blog/prisma-next-roadmap/index.mdx
@@ -1,12 +1,13 @@
---
-title: "Prisma Next Roadmap"
+title: "Prisma 8 Roadmap"
slug: "prisma-next-roadmap"
date: "2026-03-20"
authors:
- "Will Madden"
-metaTitle: "Prisma Next Roadmap"
-metaDescription: "Have you been wondering when you can start using Prisma Next in your app? Take a look at our roadmap to find out."
-heroImagePath: "/prisma-next-roadmap/imgs/hero.png"
+metaTitle: "Prisma 8 Roadmap"
+metaDescription: "Have you been wondering when you can start using Prisma 8 in your app? Take a look at our roadmap to find out."
+heroImagePath: "/prisma-next-roadmap/imgs/hero.svg"
+heroImageAlt: "A horizontal milestone track with three nodes: April for external contributions, May for early access, and June to July for Postgres general availability"
metaImagePath: "/prisma-next-roadmap/imgs/meta.png"
tags:
- "orm"
@@ -15,20 +16,22 @@ series: prisma-next
seriesIndex: 2
---
-On March 4th we [introduced Prisma Next](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm), the future of Prisma ORM. We made the repo public so you can follow progress. We shared some of what we've built so far and what's in the works, including:
+> _Editor's note: Prisma 8 was developed under the working name Prisma Next. This post has been updated to use the final name._
+
+On March 4th we [introduced Prisma 8](https://www.prisma.io/blog/the-next-evolution-of-prisma-orm), the future of Prisma ORM. We made the repo public so you can follow progress. We shared some of what we've built so far and what's in the works, including:
- a brand new query API with custom collection methods for your models
- streaming query results
-- a low-level, type-safe [SQL query builder](https://www.prisma.io/docs/orm/next/reference/sql-query-builder) (an escape hatch for complex or custom SQL queries)
-- [extensions](https://www.prisma.io/docs/orm/next/extensions/using-extensions) that let you install new behaviors and data types (including the first extension example: `pgvector`)
-- support for [TypeScript Prisma schemas](https://www.prisma.io/docs/orm/next/contract-authoring/typescript-schema-builder) as an alternative to the traditional `schema.prisma`, so you can pick which you prefer
-- [middleware](https://www.prisma.io/docs/orm/next/middleware/how-middleware-works), validations, query linting, and lots more
+- a low-level, type-safe [SQL query builder](https://www.prisma.io/docs/orm/v8/reference/sql-query-builder) (an escape hatch for complex or custom SQL queries)
+- [extensions](https://www.prisma.io/docs/orm/v8/extensions/using-extensions) that let you install new behaviors and data types (including the first extension example: `pgvector`)
+- support for [TypeScript Prisma schemas](https://www.prisma.io/docs/orm/v8/contract-authoring/typescript-schema-builder) as an alternative to the traditional `schema.prisma`, so you can pick which you prefer
+- [middleware](https://www.prisma.io/docs/orm/v8/middleware/how-middleware-works), validations, query linting, and lots more
-There's a lot still to do, so to make sure we can get Prisma Next into developers' hands as soon as possible, we're delivering the remaining work in phases.
+There's a lot still to do, so to make sure we can get Prisma 8 into developers' hands as soon as possible, we're delivering the remaining work in phases.
### April: Enable external contributions
-We want external contributors to be able to add new Prisma Next features, like:
+We want external contributors to be able to add new Prisma 8 features, like:
- SQL database targets
- Postgres extensions
@@ -38,34 +41,34 @@ We want external contributors to be able to add new Prisma Next features, like:
- integrations with services like Sentry and Datadog
- integrations with popular frameworks like Next.js and Vue.js
-These are just some of our ideas and we want to open Prisma Next to hear _your_ ideas.
+These are just some of our ideas and we want to open Prisma 8 to hear _your_ ideas.
We're currently focused on developing stable APIs for extension points, establishing reliable interfaces for extension authors, and validating core framework concepts.
-In April, we'll put out a public call inviting collaborators to join us to extend Prisma Next. We will work with you during April to implement your extensions and polish the small things we inevitably got wrong.
+In April, we'll put out a public call inviting collaborators to join us to extend Prisma 8. We will work with you during April to implement your extensions and polish the small things we inevitably got wrong.
We're already working with the MongoDB and ParadeDB teams on POCs to validate that the architecture genuinely supports non-SQL targets and extension-provided database primitives.
-> If you want to get in early and help shape the final version of Prisma Next, April is the time to get involved.
+> If you want to get in early and help shape the final version of Prisma 8, April is the time to get involved.
### May: Early access
-Next, we want to get Prisma Next into users' hands. We need to see how it holds up in real-world applications, so we'll follow our normal EA process: an initial release, a period of feedback and refinement, then General Availability.
+Next, we want to get Prisma 8 into users' hands. We need to see how it holds up in real-world applications, so we'll follow our normal EA process: an initial release, a period of feedback and refinement, then General Availability.
-As soon as it's ready, we'll put out a public announcement alongside getting started material and guides explaining the key differences between Prisma 7 and Prisma Next.
+As soon as it's ready, we'll put out a public announcement alongside getting started material and guides explaining the key differences between Prisma 7 and Prisma 8.
By this point we expect the user-facing APIs to be stable for Postgres and one additional SQL database (SQLite is our top pick).
-> If you want to adopt Prisma Next early, May is the time to get started. [Prisma Next Early Access is now live](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app).
+> If you want to adopt Prisma 8 early, May is the time to get started. [Prisma 8 Early Access is now live](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app).
### June - July: Postgres General Availability
-Between the EA release in May and July, we want to bring Prisma Next Postgres support to GA, giving it our stamp of approval as a production-ready product. Prisma 7 will continue to receive long-term support for teams that want a fully battle-tested foundation.
+Between the EA release in May and July, we want to bring Prisma 8 Postgres support to GA, giving it our stamp of approval as a production-ready product. Prisma 7 will continue to receive long-term support for teams that want a fully battle-tested foundation.
-For teams looking to upgrade, you'll be able to run Prisma Next and Prisma 7 in parallel and gradually shift traffic from one to the other. We'll also provide a compatibility layer so you don't need to immediately rewrite all your queries.
+For teams looking to upgrade, you'll be able to run Prisma 8 and Prisma 7 in parallel and gradually shift traffic from one to the other. We'll also provide a compatibility layer so you don't need to immediately rewrite all your queries.
## Follow along
-For the most up-to-date view, follow the [roadmap in the Prisma Next repo](https://github.com/prisma/prisma-next/tree/main/ROADMAP.md) as it develops in real time. We'll post announcements like this one as we learn more.
+For the most up-to-date view, follow the [roadmap in the Prisma 8 repo](https://github.com/prisma/prisma-next/tree/main/ROADMAP.md) as it develops in real time. We'll post announcements like this one as we learn more.
-For the broader picture, [check out the Prisma Next repo](https://github.com/prisma/prisma-next/tree/main) and star it to subscribe to updates.
+For the broader picture, [check out the Prisma 8 repo](https://github.com/prisma/prisma-next/tree/main) and star it to subscribe to updates.
diff --git a/apps/blog/content/blog/prisma-orm-7-3-0/index.mdx b/apps/blog/content/blog/prisma-orm-7-3-0/index.mdx
index 7e70cbdef0..c683d6dba5 100644
--- a/apps/blog/content/blog/prisma-orm-7-3-0/index.mdx
+++ b/apps/blog/content/blog/prisma-orm-7-3-0/index.mdx
@@ -6,7 +6,9 @@ authors:
- "Mike Hartington"
metaTitle: "Prisma ORM 7.3.0: Faster Query Compilation, Safer BigInt JSON, Better Adapters"
metaDescription: "Prisma ORM 7.3.0 adds a new compilerBuild option (fast or small), speeds up raw queries by bypassing compilation, improves MSSQL and better-sqlite3 stability, reverts mapped enum behavior, and preserves BigInt precision in relationJoins JSON aggregation."
-heroImagePath: "/prisma-orm-7-3-0/imgs/hero-e84b7eb35dc73daddb55d22bb7a24b71f40d3d5d-844x474-552f491d83.svg"
+metaImagePath: "/prisma-orm-7-3-0/imgs/meta.png"
+heroImagePath: "/prisma-orm-7-3-0/imgs/hero.svg"
+heroImageAlt: "A Prisma ORM 7.3.0 version badge beside four changelog items: the new compilerBuild generator option, raw queries skipping the compiler, the MSSQL adapter on version 12.2.0, and BigInt precision preserved in relationJoins JSON aggregation."
tags:
- "orm"
---
diff --git a/apps/blog/content/blog/prisma-orm-now-lets-you-choose-the-best-join-strategy-preview/index.mdx b/apps/blog/content/blog/prisma-orm-now-lets-you-choose-the-best-join-strategy-preview/index.mdx
index 54b6869be9..3336d1e2dd 100644
--- a/apps/blog/content/blog/prisma-orm-now-lets-you-choose-the-best-join-strategy-preview/index.mdx
+++ b/apps/blog/content/blog/prisma-orm-now-lets-you-choose-the-best-join-strategy-preview/index.mdx
@@ -23,7 +23,7 @@ Prisma ORM supports two strategies for loading related data. With the `join` str
- [`join` vs `query`: when to use which?](#join-vs-query-when-to-use-which)
- [Understanding relations in SQL databases](#understanding-relations-in-sql-databases)
- [What's happening under the hood?](#whats-happening-under-the-hood)
-- [Joins in Prisma Next](#joins-in-prisma-next)
+- [Joins in Prisma 8](#joins-in-prisma-8)
- [Try it out and share your feedback](#try-it-out-and-share-your-feedback)
## The two join strategies in Prisma ORM
@@ -349,15 +349,15 @@ To work around these issues, Prisma ORM implements modern, lateral JOINs accompa

-## Joins in Prisma Next
+## Joins in Prisma 8
-[Prisma Next](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), the next generation of Prisma ORM (available in Early Access today, becoming Prisma 8 at GA), takes the idea in this post one step further: you no longer choose a join strategy at all.
+[Prisma 8](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), the next generation of Prisma ORM (now available as a Release Candidate), takes the idea in this post one step further: you no longer choose a join strategy at all.
-In Prisma Next, the join strategy is selected from your database target's declared capabilities. We verified this on the current Early Access build: `db.orm.public.User.include("posts").all()` sends a single SQL query in which PostgreSQL builds the nested JSON with `json_agg` and `json_build_object`, with no preview flag and no per-query option. On targets without JSON aggregation support, Prisma Next falls back to multiple queries with in-application merging, so the same application code picks the best available strategy per database.
+In Prisma 8, the join strategy is selected from your database target's declared capabilities. We verified this on the current Early Access build: `db.orm.public.User.include("posts").all()` sends a single SQL query in which PostgreSQL builds the nested JSON with `json_agg` and `json_build_object`, with no preview flag and no per-query option. On targets without JSON aggregation support, Prisma 8 falls back to multiple queries with in-application merging, so the same application code picks the best available strategy per database.
-Prisma Next is also fast in general: in [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, it reaches roughly 90% of the raw `pg` driver's speed, holds p95 latency around 4 ms at 6,000 to 7,000 requests/second, and ships a client of about 148.5 KB gzipped. And when you need full control over a join, it includes a type-safe SQL query builder with explicit `leftJoin` support, kept in sync with your schema.
+Prisma 8 is also fast in general: in [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, it reaches roughly 90% of the raw `pg` driver's speed, holds p95 latency around 4 ms at 6,000 to 7,000 requests/second, and ships a client of about 148.5 KB gzipped. And when you need full control over a join, it includes a type-safe SQL query builder with explicit `leftJoin` support, kept in sync with your schema.
-Like Prisma ORM, Prisma Next pairs with [Prisma Postgres](https://www.prisma.io/postgres) out of the box. For new projects, especially ones built with AI coding agents, it's the direction to watch.
+Like Prisma ORM, Prisma 8 pairs with [Prisma Postgres](https://www.prisma.io/postgres) out of the box. For new projects, especially ones built with AI coding agents, it's the direction to watch.
## Try it out and share your feedback
diff --git a/apps/blog/content/blog/prisma-orm-v7-4-query-caching-partial-indexes-and-major-performance-improvements/index.mdx b/apps/blog/content/blog/prisma-orm-v7-4-query-caching-partial-indexes-and-major-performance-improvements/index.mdx
index d981b9feb1..6697909b9c 100644
--- a/apps/blog/content/blog/prisma-orm-v7-4-query-caching-partial-indexes-and-major-performance-improvements/index.mdx
+++ b/apps/blog/content/blog/prisma-orm-v7-4-query-caching-partial-indexes-and-major-performance-improvements/index.mdx
@@ -6,14 +6,15 @@ authors:
- "Mike Hartington"
metaTitle: "Prisma ORM v7.4: Query Caching & Performance Boost"
metaDescription: "Prisma ORM v7.4 introduces query caching, partial indexes, and BigInt precision fixes—delivering significant performance improvements under load."
-metaImagePath: "/prisma-orm-v7-4-query-caching-partial-indexes-and-major-performance-improvements/imgs/meta-e94d09878c3f2ac3e105a920dea3556ac0f9917a-1688x948-a991da7a72.png"
-heroImagePath: "/prisma-orm-v7-4-query-caching-partial-indexes-and-major-performance-improvements/imgs/hero-fef1bbb68459cebeece803f612fd0b95571d3d57-844x474-c0e399ac58.png"
+metaImagePath: "/prisma-orm-v7-4-query-caching-partial-indexes-and-major-performance-improvements/imgs/meta.png"
+heroImagePath: "/prisma-orm-v7-4-query-caching-partial-indexes-and-major-performance-improvements/imgs/hero.svg"
+heroImageAlt: "A Prisma ORM 7.4 release card with three named rows: query caching highlighted in cyan, with per-query compilation cost falling from 0.1-1ms to 1-10 microseconds, partial indexes behind the partialIndexes preview feature, and a typical cache hit rate near 100 percent."
tags:
- "orm"
---
-::::note[New: the Prisma Next performance benchmark]
-For the newest numbers on where Prisma performance is heading, we've benchmarked [Prisma Next](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: about 87% of the raw `pg` driver's peak throughput and 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
+::::note[New: the Prisma 8 performance benchmark]
+For the newest numbers on where Prisma performance is heading, we've benchmarked [Prisma 8](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: about 87% of the raw `pg` driver's peak throughput and 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
::::
We’re excited to share the release of Prisma ORM v7.4! This release comes with new features like partial indexes, a fix for BigInt precision, and a new query caching layer to address performance issues. Let’s dive in.
diff --git a/apps/blog/content/blog/prisma-orm-without-rust-latest-performance-benchmarks/index.mdx b/apps/blog/content/blog/prisma-orm-without-rust-latest-performance-benchmarks/index.mdx
index 89b942fb43..8f5149932f 100644
--- a/apps/blog/content/blog/prisma-orm-without-rust-latest-performance-benchmarks/index.mdx
+++ b/apps/blog/content/blog/prisma-orm-without-rust-latest-performance-benchmarks/index.mdx
@@ -16,8 +16,8 @@ tags:
- "education"
---
-::::note[New: the Prisma Next performance benchmark]
-The move away from Rust continues with [Prisma Next](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM. In our newest benchmark it reaches about 87% of the raw `pg` driver's peak throughput and sustains 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
+::::note[New: the Prisma 8 performance benchmark]
+The move away from Rust continues with [Prisma 8](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM. In our newest benchmark it reaches about 87% of the raw `pg` driver's peak throughput and sustains 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
::::
Our move from Rust to TypeScript in the Prisma ORM internals is now in Preview for all first-class databases! In this article, we’re sharing the performance improvements we observed in our latest benchmarks and give an outlook for Prisma v7 where the ORM will become “Rust-free” by default.
diff --git a/apps/blog/content/blog/prisma-postgres-on-stripe-projects/index.mdx b/apps/blog/content/blog/prisma-postgres-on-stripe-projects/index.mdx
index 82f2e81f4d..c47e405f1f 100644
--- a/apps/blog/content/blog/prisma-postgres-on-stripe-projects/index.mdx
+++ b/apps/blog/content/blog/prisma-postgres-on-stripe-projects/index.mdx
@@ -6,8 +6,8 @@ authors:
- "Sampo Lahtinen"
metaTitle: "Prisma Postgres on Stripe Projects"
metaDescription: "Add a Prisma Postgres database to your Stripe project with one command: spending limits out of the box, plan changes from the CLI you already use."
-heroImagePath: "/prisma-postgres-on-stripe-projects/imgs/hero.png"
-heroImageAlt: "Prisma Postgres on Stripe Projects"
+heroImagePath: "/prisma-postgres-on-stripe-projects/imgs/hero.svg"
+heroImageAlt: "A Stripe Projects provider card for prisma/database, provisioned and ready on the free plan, beside the starter, pro and business plan prices"
metaImagePath: "/prisma-postgres-on-stripe-projects/imgs/meta.png"
tags:
- "announcement"
diff --git a/apps/blog/content/blog/prisma-postgres-the-future-of-serverless-databases/index.mdx b/apps/blog/content/blog/prisma-postgres-the-future-of-serverless-databases/index.mdx
index 803aea984c..a41023233a 100644
--- a/apps/blog/content/blog/prisma-postgres-the-future-of-serverless-databases/index.mdx
+++ b/apps/blog/content/blog/prisma-postgres-the-future-of-serverless-databases/index.mdx
@@ -214,11 +214,11 @@ The cache is implemented via Cloudflare Workers (so it caches data at the edge)
> If you're curious about the details of the Prisma Postgres technology stack and how it works under the hood, check out this technical deep dive: [**Cloudflare, Unikernels & Bare Metal: Life of a Prisma Postgres Query**](https://www.prisma.io/blog/cloudflare-unikernels-and-bare-metal-life-of-a-prisma-postgres-query).
-### Looking ahead: Prisma Next
+### Looking ahead: Prisma 8
-Prisma Postgres also pairs with [Prisma Next](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), the next generation of Prisma ORM, available in Early Access today and becoming Prisma 8 at GA. In Prisma Next, your schema is a single centralised data contract that both you and your coding agent work against, with type-safe queries expressed in terms of your models.
+Prisma Postgres also pairs with [Prisma 8](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), the next generation of Prisma ORM, now available as a Release Candidate. In Prisma 8, your schema is a single centralised data contract that both you and your coding agent work against, with type-safe queries expressed in terms of your models.
-It's fast, too: in [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, Prisma Next reaches roughly 90% of the raw `pg` driver's speed and ships a client of about 148.5 KB gzipped. It works with [Prisma Postgres](https://www.prisma.io/postgres) out of the box. For new projects, especially ones built with AI coding agents, it's the direction to watch.
+It's fast, too: in [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, Prisma 8 reaches roughly 90% of the raw `pg` driver's speed and ships a client of about 148.5 KB gzipped. It works with [Prisma Postgres](https://www.prisma.io/postgres) out of the box. For new projects, especially ones built with AI coding agents, it's the direction to watch.
## We're just getting started!
diff --git a/apps/blog/content/blog/prisma-postgres-vs-neon-pricing-2026/index.mdx b/apps/blog/content/blog/prisma-postgres-vs-neon-pricing-2026/index.mdx
index 8b414a3a3f..2d42d76b32 100644
--- a/apps/blog/content/blog/prisma-postgres-vs-neon-pricing-2026/index.mdx
+++ b/apps/blog/content/blog/prisma-postgres-vs-neon-pricing-2026/index.mdx
@@ -9,7 +9,7 @@ metaTitle: "Prisma Postgres vs Neon Pricing 2026: Tables + Worked Examples"
metaDescription: "Prisma Postgres vs Neon pricing side by side: per-plan tables with exact unit prices, five worked cost examples with reproducible math, and a worksheet for your own workload."
heroImagePath: "/prisma-postgres-vs-neon-pricing-2026/imgs/hero.svg"
metaImagePath: "/prisma-postgres-vs-neon-pricing-2026/imgs/meta.png"
-heroImageAlt: "Prisma Postgres vs Neon Pricing 2026"
+heroImageAlt: "A table comparing Prisma Postgres and Neon on billing unit, free tier, paid entry and top plan, using the published plan prices from the post."
tags:
- "education"
---
diff --git a/apps/blog/content/blog/prisma-schema-as-llm-context/index.mdx b/apps/blog/content/blog/prisma-schema-as-llm-context/index.mdx
index 34d08e4d4f..7f8d1fb279 100644
--- a/apps/blog/content/blog/prisma-schema-as-llm-context/index.mdx
+++ b/apps/blog/content/blog/prisma-schema-as-llm-context/index.mdx
@@ -102,9 +102,9 @@ You can test the qualitative half on your own project in five minutes. Give your
All three are answerable from the schema plus the ORM's documented defaults, including the trap in the first: `Invoice.organization` declares no `onDelete`, and Prisma's default for a required relation is `Restrict`, so an organization with invoices cannot be deleted at all. To be clear about what this test shows: a single-file Drizzle schema passes it too. It separates agents that have the data model in context from agents reconstructing it from application code; the sections above are about what that context costs.
-## Prisma Next treats schema-as-context as a feature
+## Prisma 8 treats schema-as-context as a feature
-[Prisma Next](https://www.prisma.io/docs/orm/next), the next generation of the ORM currently in early access, makes this a design goal rather than a side effect: the schema stays small, dense, and machine-readable, treated as first-class LLM context rather than an implementation detail, and errors are structured for agent consumption, carrying documentation URLs that resolve to a stable reference for the exact error.
+[Prisma 8](https://www.prisma.io/docs/orm/v8), the next generation of the ORM currently in release candidate, makes this a design goal rather than a side effect: the schema stays small, dense, and machine-readable, treated as first-class LLM context rather than an implementation detail, and errors are structured for agent consumption, carrying documentation URLs that resolve to a stable reference for the exact error.
The schema answers "what is the data model." The other half, "how do we change it safely here," belongs in your agent rules file; we covered a copy-pasteable version in [What to Put in Your AGENTS.md](/agents-md-for-databases).
diff --git a/apps/blog/content/blog/prisma-schema-language-the-best-way-to-define-your-data/index.mdx b/apps/blog/content/blog/prisma-schema-language-the-best-way-to-define-your-data/index.mdx
index a0e68c4fe9..251a5a0130 100644
--- a/apps/blog/content/blog/prisma-schema-language-the-best-way-to-define-your-data/index.mdx
+++ b/apps/blog/content/blog/prisma-schema-language-the-best-way-to-define-your-data/index.mdx
@@ -322,11 +322,11 @@ If a TypeScript-based schema is generated by LLMs, it is often less easily under
- **Flexibility:** For highly specialized scenarios where dynamic, programmatic schema adjustments are necessary, the flexibility of TypeScript may be advantageous.
- **Unified Codebase:** Teams already heavily invested in TypeScript might prefer to keep all definitions in one language.
-### Looking ahead: Prisma Next
+### Looking ahead: Prisma 8
-The ideas behind PSL carry forward into [Prisma Next](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), the next generation of Prisma ORM, available in Early Access today and becoming Prisma 8 at GA. In Prisma Next, your schema becomes a single centralised data contract that both you and your coding agent work against. You can author that contract in PSL or in TypeScript, and either way it stays one declarative source of truth: Prisma generates the migrations and type-safe queries expressed in terms of your models.
+The ideas behind PSL carry forward into [Prisma 8](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app), the next generation of Prisma ORM, now available as a Release Candidate. In Prisma 8, your schema becomes a single centralised data contract that both you and your coding agent work against. You can author that contract in PSL or in TypeScript, and either way it stays one declarative source of truth: Prisma generates the migrations and type-safe queries expressed in terms of your models.
-It's fast, too: in [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, Prisma Next reaches roughly 90% of the raw `pg` driver's speed and ships a client of about 148.5 KB gzipped. It pairs with [Prisma Postgres](https://www.prisma.io/postgres) out of the box. For new projects, especially ones built with AI coding agents, it's the direction to watch.
+It's fast, too: in [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, Prisma 8 reaches roughly 90% of the raw `pg` driver's speed and ships a client of about 148.5 KB gzipped. It pairs with [Prisma Postgres](https://www.prisma.io/postgres) out of the box. For new projects, especially ones built with AI coding agents, it's the direction to watch.
Overall, the Prisma Schema Language is the better choice for modern, team-based development. It offers clear, easy-to-read schemas, simple relationship modeling, and a great developer experience.
diff --git a/apps/blog/content/blog/prisma-studio-migrations-view/index.mdx b/apps/blog/content/blog/prisma-studio-migrations-view/index.mdx
index 1d66f4af69..aece0777b4 100644
--- a/apps/blog/content/blog/prisma-studio-migrations-view/index.mdx
+++ b/apps/blog/content/blog/prisma-studio-migrations-view/index.mdx
@@ -6,10 +6,10 @@ authors:
- "Ankur Datta"
- "Søren Bramer Schmidt"
metaTitle: "Prisma Studio Migrations View: See Your Migration History"
-metaDescription: "The Prisma Studio Migrations view shows every applied Prisma Next migration as a timeline with a visual diff, the executed SQL, and a schema diff."
+metaDescription: "The Prisma Studio Migrations view shows every applied Prisma 8 migration as a timeline with a visual diff, the executed SQL, and a schema diff."
heroImagePath: "/prisma-studio-migrations-view/imgs/hero.svg"
metaImagePath: "/prisma-studio-migrations-view/imgs/meta.png"
-heroImageAlt: "The Prisma Studio Migrations view: a timeline of applied migrations beside a visual diff canvas"
+heroImageAlt: "The Prisma Studio Migrations panel listing six applied migrations newest first, with the destructive Drop Legacy Username entry selected"
tags:
- "announcement"
- "orm"
@@ -17,11 +17,11 @@ series: prisma-next
seriesIndex: 10
---
-The Migrations view is a new screen in Prisma Studio, the database GUI bundled with the Prisma CLI. It shows the migration history of a [Prisma Next](https://www.prisma.io/docs/orm/next) database as a timeline: one entry per applied migration, with a visual diff of what changed, the SQL that ran, and a schema diff.
+The Migrations view is a new screen in Prisma Studio, the database GUI bundled with the Prisma CLI. It shows the migration history of a [Prisma 8](https://www.prisma.io/docs/orm/v8) database as a timeline: one entry per applied migration, with a visual diff of what changed, the SQL that ran, and a schema diff.
-Studio reads that history from the database itself, not from your repo. So it works for any Prisma Next Postgres database you can connect to, including one you have never migrated yourself. The full setup is documented in [Studio with Prisma Next](https://www.prisma.io/docs/studio/prisma-next).
+Studio reads that history from the database itself, not from your repo. So it works for any Prisma 8 Postgres database you can connect to, including one you have never migrated yourself. The full setup is documented in [Studio with Prisma 8](https://www.prisma.io/docs/studio/prisma-next).
-This is the tenth post in the Prisma Next series. The migration model it builds on is the subject of [Rethinking Database Migrations](/rethinking-database-migrations), and the files it visualizes are the ones [TypeScript Migrations in Prisma Next](/typescript-migrations-in-prisma-next) walks through.
+This is the tenth post in the Prisma 8 series. The migration model it builds on is the subject of [Rethinking Database Migrations](/rethinking-database-migrations), and the files it visualizes are the ones [TypeScript Migrations in Prisma 8](/typescript-migrations-in-prisma-next) walks through.

@@ -35,7 +35,7 @@ None of these tell you what is actually applied to the database in front of you.
## What the Migrations view shows
-The record of what actually ran lives in the database. Prisma Next writes it there on every apply, and Studio reads it back.
+The record of what actually ran lives in the database. Prisma 8 writes it there on every apply, and Studio reads it back.
The list runs newest-first, one entry per applied migration. A ⚠️ marker flags any migration carrying a destructive change, so a dropped column is visible before you click anything.
@@ -64,7 +64,7 @@ This provisions a database, writes `DATABASE_URL` into `.env`, and scaffolds a c
### Step 2: Model, plan, apply
-Prisma Next calls your schema a [contract](https://www.prisma.io/docs/orm/next/contract-authoring/the-data-contract):
+Prisma 8 calls your schema a [contract](https://www.prisma.io/docs/orm/v8/contract-authoring/the-data-contract):
```prisma
// use prisma-next
@@ -90,15 +90,15 @@ model Post {
}
```
-Compile it, [plan a migration](https://www.prisma.io/docs/orm/next/migrations/generating-a-migration), [apply it](https://www.prisma.io/docs/orm/next/migrations/applying-a-migration):
+Compile it, [plan a migration](https://www.prisma.io/docs/orm/v8/migrations/generating-a-migration), [apply it](https://www.prisma.io/docs/orm/v8/migrations/applying-a-migration):
```bash
-npx prisma-next contract emit
-npx prisma-next migration plan --name init_users_posts
-npx prisma-next migrate --advance-ref db
+npx @prisma/cli@next contract emit
+npx @prisma/cli@next migration plan --name init_users_posts
+npx @prisma/cli@next migrate --advance-ref db
```
-`--advance-ref db` moves a [ref](https://www.prisma.io/docs/orm/next/migrations/the-migration-graph#name-important-states-with-refs), a name pinned to a point in your migration history, onto what you just applied. Later plans start from there and produce a delta instead of recreating everything.
+`--advance-ref db` moves a [ref](https://www.prisma.io/docs/orm/v8/migrations/the-migration-graph#name-important-states-with-refs), a name pinned to a point in your migration history, onto what you just applied. Later plans start from there and produce a delta instead of recreating everything.
### Step 3: Change the model
@@ -136,12 +136,12 @@ model Post {
```
```bash
-npx prisma-next contract emit
-npx prisma-next migration plan --name add_roles_and_publishing
-npx prisma-next migrate --advance-ref db
+npx @prisma/cli@next contract emit
+npx @prisma/cli@next migration plan --name add_roles_and_publishing
+npx @prisma/cli@next migrate --advance-ref db
```
-Repeat for whatever your app needs; when a change needs a backfill, [Data Migrations in Prisma Next](/data-migrations-in-prisma-next) covers that. The history behind the screenshots here has six migrations: an initial pair of models, this enum-and-fields change, a `Category` model with a relation and two unique constraints, a destructive column drop, and two more field additions.
+Repeat for whatever your app needs; when a change needs a backfill, [Data Migrations in Prisma 8](/data-migrations-in-prisma-next) covers that. The history behind the screenshots here has six migrations: an initial pair of models, this enum-and-fields change, a `Category` model with a relation and two unique constraints, a destructive column drop, and two more field additions.
### Step 4: Add some data
@@ -153,7 +153,7 @@ npm run db:seed
### Step 5: Open Studio
-A Prisma Next project has no `schema.prisma`, so Studio takes the connection string with `--url`. It lives in `.env` rather than your shell, so load it first:
+A Prisma 8 project has no `schema.prisma`, so Studio takes the connection string with `--url`. It lives in `.env` rather than your shell, so load it first:
```bash
set -a && . ./.env && set +a
@@ -170,7 +170,7 @@ Open the **SQL** panel and you get exactly what ran, labelled with its operation

-Note the last statement. Prisma Next implements `Role` as a `text` column plus a `CHECK` constraint rather than a native Postgres enum type. The canvas shows you the modelling intent; the SQL panel shows you the implementation.
+Note the last statement. Prisma 8 implements `Role` as a `text` column plus a `CHECK` constraint rather than a native Postgres enum type. The canvas shows you the modelling intent; the SQL panel shows you the implementation.
The **Schema** panel renders the same change as a Prisma-schema diff, with long unchanged runs collapsed into folds:
@@ -188,7 +188,7 @@ Your tables are in the same session under **Tables**, so you can go from "what c
## Where the history comes from
-Studio never opens your `migrations/` directory and never calls the Prisma Next CLI. It reads two tables that Prisma Next maintains in your database:
+Studio never opens your `migrations/` directory and never calls the Prisma 8 CLI. It reads two tables that Prisma 8 maintains in your database:
- **`prisma_contract.ledger`** holds one row per applied migration: the name, the apply time, the executed operations with their SQL, and the two contract hashes the migration moved between.
- **`prisma_contract.contract`** stores each distinct contract once, keyed by its hash.
@@ -197,20 +197,20 @@ Every ledger row names the contract it started from and the contract it produced
Writing only the destination contract on each apply is enough to cover both ends of every row. The first migration starts from the empty contract. Every origin after that was some earlier apply's destination, so it is already stored.
-The practical consequence: a migration applied from CI, from a teammate's laptop, or from a branch you never checked out shows up in your Studio with a full diff. The history belongs to the database. The hashes are the same ones that make Prisma Next migrations [a graph rather than a numbered list](https://www.prisma.io/docs/orm/next/migrations/the-migration-graph).
+The practical consequence: a migration applied from CI, from a teammate's laptop, or from a branch you never checked out shows up in your Studio with a full diff. The history belongs to the database. The hashes are the same ones that make Prisma 8 migrations [a graph rather than a numbered list](https://www.prisma.io/docs/orm/v8/migrations/the-migration-graph).
## Where you can use it
The Migrations view shipped in `@prisma/studio-core` 0.32.0. The Prisma CLI bundles Studio, and a new enough version is currently only in the CLI's `dev` release, so use `npx prisma@dev studio` to try it locally.
-It is also in the embedded Studio in [Prisma Console](https://console.prisma.io), for any database with an applied Prisma Next migration history. Open your database's Studio tab and select **Migrations**. No local setup, and the selected migration is part of the Console URL too.
+It is also in the embedded Studio in [Prisma Console](https://console.prisma.io), for any database with an applied Prisma 8 migration history. Open your database's Studio tab and select **Migrations**. No local setup, and the selected migration is part of the Console URL too.
A few limits worth stating plainly:
-- **Prisma Next on PostgreSQL.** The view needs the `prisma_contract.ledger` table. Prisma ORM projects using `prisma migrate` record their history differently and won't show it.
+- **Prisma 8 on PostgreSQL.** The view needs the `prisma_contract.ledger` table. Prisma ORM projects using `prisma migrate` record their history differently and won't show it.
- **Applied migrations only.** A migration you've planned but not applied isn't in the database, so it isn't in the view.
- **An empty history hides the view.** No applied migrations, no **Migrations** item.
-- **Older databases lose the diffs.** If your database was migrated by a Prisma Next that predates the contract store, you keep the list and the SQL panel, and the canvas asks you to update.
+- **Older databases lose the diffs.** If your database was migrated by a Prisma 8 that predates the contract store, you keep the list and the SQL panel, and the canvas asks you to update.
## Where this fits
@@ -222,16 +222,16 @@ This matters most where the repo can't help you. The database your app talks to
-The Migrations view is a screen in Prisma Studio that lists every applied migration of a Prisma Next database, newest first, with a visual diff of the models it changed, the SQL it executed, and a Prisma-schema diff. It shipped in `@prisma/studio-core` 0.32.0 and reads the history from the database itself.
+The Migrations view is a screen in Prisma Studio that lists every applied migration of a Prisma 8 database, newest first, with a visual diff of the models it changed, the SQL it executed, and a Prisma-schema diff. It shipped in `@prisma/studio-core` 0.32.0 and reads the history from the database itself.
-The Migrations item appears only when the connected database has at least one applied Prisma Next migration, recorded in the `prisma_contract.ledger` table. It stays hidden for databases with no applied migrations, for Prisma ORM projects using `prisma migrate`, and for Studio versions older than `@prisma/studio-core` 0.32.0. The stable Prisma CLI still bundles an older Studio, so run `npx prisma@dev studio`.
+The Migrations item appears only when the connected database has at least one applied Prisma 8 migration, recorded in the `prisma_contract.ledger` table. It stays hidden for databases with no applied migrations, for Prisma ORM projects using `prisma migrate`, and for Studio versions older than `@prisma/studio-core` 0.32.0. The stable Prisma CLI still bundles an older Studio, so run `npx prisma@dev studio`.
-No. Projects managed with `prisma migrate` record their history in the `_prisma_migrations` table, which the view does not read. The Migrations view requires a Prisma Next project on PostgreSQL, which records each apply in `prisma_contract.ledger`.
+No. Projects managed with `prisma migrate` record their history in the `_prisma_migrations` table, which the view does not read. The Migrations view requires a Prisma 8 project on PostgreSQL, which records each apply in `prisma_contract.ledger`.
-From the database, not from your repo. Prisma Next writes one row per applied migration to `prisma_contract.ledger` and stores each schema snapshot in `prisma_contract.contract`, keyed by hash. Studio joins the two, so migrations applied from CI or another machine appear with a full diff.
+From the database, not from your repo. Prisma 8 writes one row per applied migration to `prisma_contract.ledger` and stores each schema snapshot in `prisma_contract.contract`, keyed by hash. Studio joins the two, so migrations applied from CI or another machine appear with a full diff.
@@ -247,4 +247,4 @@ Model something, apply two migrations, and open **Migrations**. Tell us what you
---
-The Migrations view shipped in `@prisma/studio-core` 0.32.0. The Prisma CLI bundles Studio, and a new enough version is currently only in the CLI's `dev` release, hence `npx prisma@dev studio`. [Prisma Next is in Early Access](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) and not production-ready yet. Prisma 7 is still the right choice for production today. When Prisma Next is ready for general use, it becomes Prisma 8.
+The Migrations view shipped in `@prisma/studio-core` 0.32.0. The Prisma CLI bundles Studio, and a new enough version is currently only in the CLI's `dev` release, hence `npx prisma@dev studio`. [Prisma 8 is in Early Access](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) and not production-ready yet. Prisma 7 is still the right choice for production today.
diff --git a/apps/blog/content/blog/rebuilding-the-prisma-docs/index.mdx b/apps/blog/content/blog/rebuilding-the-prisma-docs/index.mdx
index 3b005cfcc7..ce81f70186 100644
--- a/apps/blog/content/blog/rebuilding-the-prisma-docs/index.mdx
+++ b/apps/blog/content/blog/rebuilding-the-prisma-docs/index.mdx
@@ -8,8 +8,8 @@ authors:
metaTitle: "Rebuilding the Prisma Docs: A New Framework, Design, and Structure"
metaDescription: "Learn how the Prisma team rebuilt their docs from scratch using Fumadocs, improved search with Mixedbread, and launched without disrupting day-to-day work."
metaImagePath: "/rebuilding-the-prisma-docs/imgs/meta.png"
-heroImagePath: "/rebuilding-the-prisma-docs/imgs/hero.png"
-heroImageAlt: "Image of the new Prisma documentation site showing the redesigned navigation and layout"
+heroImagePath: "/rebuilding-the-prisma-docs/imgs/hero.svg"
+heroImageAlt: "An information architecture drawing of the rebuilt Prisma docs: a versioned entry point serving /docs and /docs/v6, branching into the four top-level sections Getting Started, ORM, Prisma Postgres, and Guides."
tags:
- "education"
- "announcement"
diff --git a/apps/blog/content/blog/rethinking-database-migrations/index.mdx b/apps/blog/content/blog/rethinking-database-migrations/index.mdx
index 2c698dc3d6..848ebd728f 100644
--- a/apps/blog/content/blog/rethinking-database-migrations/index.mdx
+++ b/apps/blog/content/blog/rethinking-database-migrations/index.mdx
@@ -6,17 +6,17 @@ authors:
- "Mike Hartington"
- "Will Madden"
metaTitle: "Rethinking Database Migrations"
-metaDescription: "Database migrations are brittle and they break when you're most vulnerable; when you're deploying to production. Prisma Next migrations make them explicit, verifiable and safe to retry."
+metaDescription: "Database migrations are brittle and they break when you're most vulnerable; when you're deploying to production. Prisma 8 migrations make them explicit, verifiable and safe to retry."
metaImagePath: "/rethinking-database-migrations/imgs/meta.png"
heroImagePath: "/rethinking-database-migrations/imgs/hero.svg"
-heroImageAlt: "Rethinking Database Migrations"
+heroImageAlt: "A migration history graph: an empty database leads to abc123 createTable(user), which branches to def456 addColumn(user.email) and on to the ghi789 target"
tags:
- "orm"
series: prisma-next
seriesIndex: 3
---
-Database migrations are brittle and they break when you're most vulnerable; when you're deploying to production. [Prisma Next migrations](https://www.prisma.io/docs/orm/next) make them explicit, verifiable and safe to retry. Here's how.
+Database migrations are brittle and they break when you're most vulnerable; when you're deploying to production. [Prisma 8 migrations](https://www.prisma.io/docs/orm/v8) make them explicit, verifiable and safe to retry. Here's how.
## The problem with migrations today
@@ -50,11 +50,11 @@ You'll notice a common thread: this typical migration model **puts the responsib
This matters more now than ever. As AI tools increasingly generate and run migrations on your behalf, the system handling those migrations needs stronger guardrails than a careful human would. It needs to verify its own assumptions, recover from failures, and never leave a database in an unknown state.
-With Prisma Next, we set out to build a migration system that handles all of these cases, including automatically resolving branch conflicts.
+With Prisma 8, we set out to build a migration system that handles all of these cases, including automatically resolving branch conflicts.
-## Prisma Next migrations
+## Prisma 8 migrations
-In Prisma Next, [a migration](https://www.prisma.io/docs/orm/next/migrations/how-migrations-work) is explicit about what it needs to do and how it does it. Every migration knows:
+In Prisma 8, [a migration](https://www.prisma.io/docs/orm/v8/migrations/how-migrations-work) is explicit about what it needs to do and how it does it. Every migration knows:
- The expected DB schema **before** it's executed.
- The DB schema **after** it's executed.
@@ -87,7 +87,7 @@ migrations/
#### How `from` and `to` work
-In Prisma Next, your [`schema.prisma`](https://www.prisma.io/docs/orm/next/contract-authoring/the-data-contract) is converted into a [JSON file](https://www.prisma.io/docs/orm/next/contract-authoring/the-contract-artifact) which lists every table, column and relation that's expected to be present in your database, similar to a `package-lock.json`. Hashing that file gives us a simple identifier that describes a specific database state, like a git commit hash.
+In Prisma 8, your [`schema.prisma`](https://www.prisma.io/docs/orm/v8/contract-authoring/the-data-contract) is converted into a [JSON file](https://www.prisma.io/docs/orm/v8/contract-authoring/the-contract-artifact) which lists every table, column and relation that's expected to be present in your database, similar to a `package-lock.json`. Hashing that file gives us a simple identifier that describes a specific database state, like a git commit hash.
Migrations promise to transition your database from one schema to another, which is recorded as a `from` hash and a `to` hash in the JSON example above. This works the same way as applying a git commit to your filesystem: it moves your filesystem from one state to the next.
@@ -123,7 +123,7 @@ Each operation has three parts:
## Migrations are a graph
-Because each migration records the schema it starts from and the schema it produces, migrations don't need to be ordered alphabetically. They form a [graph of state transitions](https://www.prisma.io/docs/orm/next/migrations/the-migration-graph) linked by their `from` and `to` hashes, and the system can figure out which path to follow.
+Because each migration records the schema it starts from and the schema it produces, migrations don't need to be ordered alphabetically. They form a [graph of state transitions](https://www.prisma.io/docs/orm/v8/migrations/the-migration-graph) linked by their `from` and `to` hashes, and the system can figure out which path to follow.
Here's what that looks like in practice. Two developers have branched from the same schema and each added a migration:
@@ -139,25 +139,25 @@ Here's what that looks like in practice. Two developers have branched from the s
This means the ordering-conflict scenario from earlier simply doesn't apply. Timestamps don't determine execution order, the graph does.
-This idea isn't entirely new, tools like [Sqitch](https://sqitch.org/) and [Atlas](https://atlasgo.io/) have explored dependency-based and state-based approaches to migrations. Prisma Next builds on these ideas by deriving the graph automatically from schema state hashes and combining state verification with idempotent operations, so migrations are safe to retry without manual intervention.
+This idea isn't entirely new, tools like [Sqitch](https://sqitch.org/) and [Atlas](https://atlasgo.io/) have explored dependency-based and state-based approaches to migrations. Prisma 8 builds on these ideas by deriving the graph automatically from schema state hashes and combining state verification with idempotent operations, so migrations are safe to retry without manual intervention.
## Migrations verify their assumptions
-Remember the local-drift scenario? You iterate on a migration locally, your DB ends up in a slightly different state, and the migration fails in CI. With Prisma Next, the runner checks the database's current schema hash against the migration's `from` hash before doing anything. If they don't match, the migration stops immediately with a clear error. Not halfway through, leaving the database in an unknown state.
+Remember the local-drift scenario? You iterate on a migration locally, your DB ends up in a slightly different state, and the migration fails in CI. With Prisma 8, the runner checks the database's current schema hash against the migration's `from` hash before doing anything. If they don't match, the migration stops immediately with a clear error. Not halfway through, leaving the database in an unknown state.
-What if a migration *does* fail partway through? Because every operation carries a precheck and a postcheck, the migration is [safe to retry](https://www.prisma.io/docs/orm/next/migrations/rollbacks-and-recovery). Operations whose postchecks already pass are skipped; operations whose prechecks fail produce a clear error. The database never ends up in a state the system can't reason about.
+What if a migration *does* fail partway through? Because every operation carries a precheck and a postcheck, the migration is [safe to retry](https://www.prisma.io/docs/orm/v8/migrations/rollbacks-and-recovery). Operations whose postchecks already pass are skipped; operations whose prechecks fail produce a clear error. The database never ends up in a state the system can't reason about.
## Resolving conflicts between branches
This is where the graph structure really pays off. Branch conflicts are the most common and most painful migration problem, and they're the hardest to fix by hand.
-In Prisma Next, migrations are cheap and planned automatically. Consider this situation:
+In Prisma 8, migrations are cheap and planned automatically. Consider this situation:
- Bob and Alice both branch off `main` at schema state `C1`.
- Bob adds an `email` column to `users`, reaching state `C2` on his branch.
- Alice adds a `name` column, reaches `C3`, and merges to `main` first.
-Bob now needs to catch up. He updates his schema to `C4`, incorporating both his `email` column and Alice's `name` column, and Prisma Next generates two migrations automatically:
+Bob now needs to catch up. He updates his schema to `C4`, incorporating both his `email` column and Alice's `name` column, and Prisma 8 generates two migrations automatically:
- **C2 -> C4:** applies to any database on Bob's branch state (his local machine, a dev environment, a staging instance seeded from his branch).
- **C3 -> C4:** applies to any database already on `main` (production, CI, teammates who pulled Alice's work).
@@ -168,7 +168,7 @@ Those of you familiar with Git will recognize these as the same techniques we us
## What else does this enable?
-Because the system knows the schema state at every point and the operations that connect them, you get a few more things for free. As your project grows, the list of migrations in your repo keeps growing. In Prisma Next, you can:
+Because the system knows the schema state at every point and the operations that connect them, you get a few more things for free. As your project grows, the list of migrations in your repo keeps growing. In Prisma 8, you can:
- **squash** a sequence of migrations into a single migration.
- **baseline** your migration history by replacing it with one migration that constructs the current schema from scratch.
@@ -176,9 +176,9 @@ Because the system knows the schema state at every point and the operations that
## What's next
-Prisma Next aims to make your database operations explicit, simple and reliable. We're still working on this migration system but you can check out the repo and try it for yourself if you'd like to get a feel for it.
+Prisma 8 aims to make your database operations explicit, simple and reliable. We're still working on this migration system but you can check out the repo and try it for yourself if you'd like to get a feel for it.
-For a closer look, read [TypeScript Migrations in Prisma Next](https://pris.ly/ts-migrations-pn) and [Data Migrations in Prisma Next](/data-migrations-in-prisma-next).
+For a closer look, read [TypeScript Migrations in Prisma 8](https://pris.ly/ts-migrations-pn) and [Data Migrations in Prisma 8](/data-migrations-in-prisma-next).
If you'd like to receive updates as we make changes, [star and watch the repo](https://github.com/prisma/prisma-next).
diff --git a/apps/blog/content/blog/rust-to-typescript-update-boosting-prisma-orm-performance/index.mdx b/apps/blog/content/blog/rust-to-typescript-update-boosting-prisma-orm-performance/index.mdx
index 5174bfd60f..0ba80e374c 100644
--- a/apps/blog/content/blog/rust-to-typescript-update-boosting-prisma-orm-performance/index.mdx
+++ b/apps/blog/content/blog/rust-to-typescript-update-boosting-prisma-orm-performance/index.mdx
@@ -13,8 +13,8 @@ series: rust-to-typescript-migration-journey
seriesIndex: 2
---
-::::note[New: the Prisma Next performance benchmark]
-The move away from Rust continues with [Prisma Next](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM. In our newest benchmark it reaches about 87% of the raw `pg` driver's peak throughput and sustains 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
+::::note[New: the Prisma 8 performance benchmark]
+The move away from Rust continues with [Prisma 8](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM. In our newest benchmark it reaches about 87% of the raw `pg` driver's peak throughput and sustains 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
::::
The Query Compiler project upgrades Prisma ORM by swapping out the traditional Rust engine for a leaner solution built on a WASM module and TypeScript. This change boosts query performance and cuts the bundle size by 85–90%, while also improving compatibility with a variety of web frameworks and bundlers. As Prisma ORM heads toward version 7, developers can expect a smoother, more efficient experience.
diff --git a/apps/blog/content/blog/search-encrypted-data-with-prisma-next-and-cipherstash/index.mdx b/apps/blog/content/blog/search-encrypted-data-with-prisma-next-and-cipherstash/index.mdx
index 9b8fe1c013..40aa41a59e 100644
--- a/apps/blog/content/blog/search-encrypted-data-with-prisma-next-and-cipherstash/index.mdx
+++ b/apps/blog/content/blog/search-encrypted-data-with-prisma-next-and-cipherstash/index.mdx
@@ -268,7 +268,7 @@ Then wire the runtime, which builds the encryption client from your CipherStash
```typescript
// src/db.ts
import { cipherstashFromStack } from '@cipherstash/stack-prisma/v3'
-import postgres from '@prisma-next/postgres/runtime'
+import postgres from '@prisma/orm-postgres/runtime'
import type { Contract } from './prisma/contract.d'
import contractJson from './prisma/contract.json' with { type: 'json' }
diff --git a/apps/blog/content/blog/search-prisma-docs-from-your-coding-agent/index.mdx b/apps/blog/content/blog/search-prisma-docs-from-your-coding-agent/index.mdx
index 64afa077ab..27fca707e1 100644
--- a/apps/blog/content/blog/search-prisma-docs-from-your-coding-agent/index.mdx
+++ b/apps/blog/content/blog/search-prisma-docs-from-your-coding-agent/index.mdx
@@ -6,8 +6,8 @@ authors:
- "Ankur Datta"
metaTitle: "Search the Prisma Docs Using Your Coding Agent"
metaDescription: "The Prisma MCP server now answers documentation questions in your editor. Ask about ORM, Postgres, or Compute and get a cited answer, no tab-switching, no extra setup."
-heroImagePath: "/search-prisma-docs-from-your-coding-agent/imgs/hero.png"
-heroImageAlt: "Your coding agent can now search the Prisma docs"
+heroImagePath: "/search-prisma-docs-from-your-coding-agent/imgs/hero.svg"
+heroImageAlt: "A docs search panel for the search_prisma_documentation tool: one question about deploying to Prisma Compute, and the docs pages its cited answer comes from"
metaImagePath: "/search-prisma-docs-from-your-coding-agent/imgs/meta.png"
tags:
- "ai"
@@ -59,5 +59,5 @@ You get back a markdown answer with links to the relevant pages on [prisma.io/do
## One tool to access the entire Prisma docs
-The answers come from the full Prisma docs, so the same tool spans every latest product changes. Ask it about [Prisma Next](https://pris.ly/pn-ea), [Prisma Postgres](https://www.prisma.io/postgres), or [Prisma Compute](https://www.prisma.io/compute), and the answer comes back without leaving the editor.
+The answers come from the full Prisma docs, so the same tool spans every latest product changes. Ask it about [Prisma 8](https://pris.ly/pn-ea), [Prisma Postgres](https://www.prisma.io/postgres), or [Prisma Compute](https://www.prisma.io/compute), and the answer comes back without leaving the editor.
diff --git a/apps/blog/content/blog/serverless-postgres/index.mdx b/apps/blog/content/blog/serverless-postgres/index.mdx
index 252e65558a..a01692736a 100644
--- a/apps/blog/content/blog/serverless-postgres/index.mdx
+++ b/apps/blog/content/blog/serverless-postgres/index.mdx
@@ -11,7 +11,7 @@ metaTitle: "Serverless Postgres: How It Works and Who Offers It (2026)"
metaDescription: "Serverless Postgres separates compute from storage and bills for usage instead of provisioned servers. How scale-to-zero, cold starts, and the three pricing models compare across Neon, Prisma Postgres, Supabase, Aurora, and PlanetScale."
metaImagePath: "/serverless-postgres/imgs/meta.png"
heroImagePath: "/serverless-postgres/imgs/hero.svg"
-heroImageAlt: "Serverless Postgres providers compared: logos for Prisma Postgres, Neon, Aurora, Supabase, and PlanetScale grouped by the three pricing models — operations, compute-time, and instances. Prisma wordmark top-right."
+heroImageAlt: "A compute usage curve that suspends after five minutes idle and wakes a few hundred milliseconds later, drawn under a flat always ready line."
---
Serverless Postgres is PostgreSQL you never provision or manage: the platform allocates compute on demand and bills you for usage, not for a server size you picked up front. One label, though, covers very different products, and they differ on two things that decide your cost and your latency: **what they bill for**, and **whether compute sleeps when idle**.
diff --git a/apps/blog/content/blog/ship-risky-schema-changes-without-a-shared-staging-database/index.mdx b/apps/blog/content/blog/ship-risky-schema-changes-without-a-shared-staging-database/index.mdx
index 3e6d56dc5d..67b49a5a16 100644
--- a/apps/blog/content/blog/ship-risky-schema-changes-without-a-shared-staging-database/index.mdx
+++ b/apps/blog/content/blog/ship-risky-schema-changes-without-a-shared-staging-database/index.mdx
@@ -9,7 +9,7 @@ draft: true
metaTitle: "Ship risky schema changes with per-branch databases"
metaDescription: "Prisma Compute gives every branch its own Prisma Postgres database. Rehearse expand-and-contract migrations in isolation before they touch production."
heroImagePath: "/ship-risky-schema-changes-without-a-shared-staging-database/imgs/hero.svg"
-heroImageAlt: "Per-branch databases let each pull request run its own migrations in isolation"
+heroImageAlt: "Two branches fork off main into separate branch databases, one adding the displayName column and one dropping the legacy name column"
metaImagePath: "/ship-risky-schema-changes-without-a-shared-staging-database/imgs/meta.png"
tags:
- "platform"
@@ -38,7 +38,7 @@ Three Prisma products appear here, each with one job:
- **Prisma Compute** (Public Beta) hosts your app and provisions a database for each branch you deploy with `--db`. It provides the isolation. Its CLI is `@prisma/cli`.
- **Prisma Postgres** is the database each branch gets.
-- **[Prisma Next](https://www.prisma.io/docs/orm/next)** (Early Access; it becomes Prisma 8 at general availability) provides the migration toolchain in the examples, via the `prisma-next` CLI. The same workflow also works with Prisma 7's `prisma migrate deploy`.
+- **[Prisma 8](https://www.prisma.io/docs/orm/v8)** (Release Candidate) provides the migration toolchain in the examples, via the unified Prisma CLI (`npx @prisma/cli@next`). The same workflow also works with Prisma 7's `prisma migrate deploy`.
:::
@@ -63,7 +63,7 @@ flowchart TD
style F fill:#ef4444,color:#fff
```
-[Prisma Next migrations](https://pris.ly/ts-migrations-pn) make this failure precise instead of silent: every migration records the contract state it starts `from` and the state it moves `to`, and the runner refuses to apply a migration against a database in the wrong state. Bob gets a hard error instead of a corrupted staging environment.
+[Prisma 8 migrations](https://pris.ly/ts-migrations-pn) make this failure precise instead of silent: every migration records the contract state it starts `from` and the state it moves `to`, and the runner refuses to apply a migration against a database in the wrong state. Bob gets a hard error instead of a corrupted staging environment.
The conventional workarounds all paper over the same root cause:
@@ -127,7 +127,7 @@ Add `displayName` as nullable, so existing code that only knows about `name` kee
skill="prisma-next-migrations"
before={expandContractBefore}
after={expandContractAfter}
- terminalCommand="npx prisma-next migration plan --name add_display_name"
+ terminalCommand="npx @prisma/cli@next migration plan --name add_display_name"
terminalLines={expandTerminalLines}
/>
@@ -147,7 +147,7 @@ override get operations() {
}
```
-Apply it to your branch database with `npx prisma-next migrate` and deploy the branch. Old code still reads `name`; new code can start writing `displayName`.
+Apply it to your branch database with `npx @prisma/cli@next migrate` and deploy the branch. Old code still reads `name`; new code can start writing `displayName`.
### Step 2: Migrate
@@ -166,7 +166,7 @@ model User {
```
```bash
-npx prisma-next migration plan --name require_display_name
+npx @prisma/cli@next migration plan --name require_display_name
```
The planner can write the `SET NOT NULL` itself, but only you know what existing rows should contain, so it scaffolds a backfill placeholder in front of the constraint and leaves the query to you. The backfill lives [inside the migration](https://pris.ly/data-migrations-pn) as a `dataTransform`, written with the same type-safe query builder you use in your app, instead of a standalone script that runs outside your migration history. Filled in:
@@ -196,7 +196,7 @@ override get operations() {
`check` asks "are there rows that still need this?" and `run` performs the change, here copying each row's `name` into `displayName`. Every migration folder carries a snapshot of the contract as it stood at that point in history, and both queries are typed against this migration's snapshot rather than your live schema. That's why the query can reference `name` even though a later migration drops it.
-After editing, recompile with `node migration.ts`. The `dataTransform` compiles to the same `precheck` / `execute` / `postcheck` JSON as every other operation: reviewers read your intent in `migration.ts` and the exact SQL in `ops.json`, and production only ever runs the compiled JSON, never your TypeScript. See [Editing a migration](https://www.prisma.io/docs/orm/next/migrations/editing-a-migration) for the full file, including the wiring that builds the typed `db` handle.
+After editing, recompile with `node migration.ts`. The `dataTransform` compiles to the same `precheck` / `execute` / `postcheck` JSON as every other operation: reviewers read your intent in `migration.ts` and the exact SQL in `ops.json`, and production only ever runs the compiled JSON, never your TypeScript. See [Editing a migration](https://www.prisma.io/docs/orm/v8/migrations/editing-a-migration) for the full file, including the wiring that builds the typed `db` handle.
Run it against the branch database and check the data. Seed the branch database with realistic data first; an empty database proves the sequence applies cleanly, but only a real-shaped dataset tells you anything about the backfill. Nothing has touched production yet.
@@ -211,7 +211,7 @@ Once all code reads `displayName` and the backfill is verified, remove the old c
skill="prisma-next-migrations"
before={contractContractBefore}
after={contractContractAfter}
- terminalCommand="npx prisma-next migration plan --name drop_legacy_name"
+ terminalCommand="npx @prisma/cli@next migration plan --name drop_legacy_name"
terminalLines={contractTerminalLines}
/>
@@ -230,7 +230,7 @@ flowchart LR
Rollbacks are the wrong mental model for schema changes, and that's why the rehearsal matters.
-Promoting an earlier deployment on Compute restores your app code, not your schema; the database keeps the state from the most recent migration. On the schema side, Prisma Next has no `migrate down` and no down-migration files. Rolling back means planning one more migration to a state your database has already been in: the planner diffs the two states, writes the operations that undo the change, and flags destructive ones with a data-loss warning so you can edit the plan before applying it. History stays append-only, `git revert` rather than `git reset`, and no rollback can resurrect the data a dropped column held.
+Promoting an earlier deployment on Compute restores your app code, not your schema; the database keeps the state from the most recent migration. On the schema side, Prisma 8 has no `migrate down` and no down-migration files. Rolling back means planning one more migration to a state your database has already been in: the planner diffs the two states, writes the operations that undo the change, and flags destructive ones with a data-loss warning so you can edit the plan before applying it. History stays append-only, `git revert` rather than `git reset`, and no rollback can resurrect the data a dropped column held.
Expand-and-contract keeps every forward step small, and per-branch databases give you a place to rehearse the sequence until it's boring.
@@ -270,7 +270,7 @@ jobs:
PRISMA_SERVICE_TOKEN: ${{ secrets.PRISMA_SERVICE_TOKEN }}
- name: Apply migrations to the branch database
- run: npx prisma-next migrate --db "$DATABASE_URL"
+ run: npx @prisma/cli@next migrate --db "$DATABASE_URL"
env:
DATABASE_URL: ${{ secrets.BRANCH_DB_URL }}
@@ -304,8 +304,8 @@ No. Branch databases are not seeded from production: you run migrations against
When the project is connected to GitHub, deleting a Git branch tears down the matching platform branch and the resources it owns. Production and default branches are never removed by cleanup.
-
-Yes. The isolation comes from Prisma Compute's branching model, not from Prisma Next. Prisma 7's `prisma migrate deploy` works against a branch database the same way. This post uses Prisma Next because its TypeScript migrations and `dataTransform` make expand-and-contract easier to write and review.
+
+Yes. The isolation comes from Prisma Compute's branching model, not from Prisma 8. Prisma 7's `prisma migrate deploy` works against a branch database the same way. This post uses Prisma 8 because its TypeScript migrations and `dataTransform` make expand-and-contract easier to write and review.
Neon branches copy schema and data from a parent branch by default. Compute branch databases are not copies: your migrations and seeds build them up. Copying is faster for manual poking around; a database built only from your migrations proves they work end-to-end and keeps production data out of previews.
@@ -314,10 +314,10 @@ Neon branches copy schema and data from a parent branch by default. Compute bran
## Try it yourself
-[Prisma Next is in Early Access](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app). It isn't production-ready yet; Prisma 7 remains the right choice for production today. But the per-branch workflow is ready to try now:
+[Prisma 8 is in Early Access](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app). It isn't production-ready yet; Prisma 7 remains the right choice for production today. But the per-branch workflow is ready to try now:
```bash
-npx prisma-next@latest init
+npx @prisma/cli@next orm init
```
Write a contract, plan a migration, and read the `migration.ts` and `ops.json` it produces. Then, from a feature branch, deploy to [Compute](https://www.prisma.io/docs/prisma-compute/deploy) with `npx @prisma/cli@latest app deploy --db`. The CLI targets your current Git branch, so that one command gives the branch its own database, ready for the expand-and-contract cycle.
diff --git a/apps/blog/content/blog/stop-your-ai-agent-dropping-your-database/index.mdx b/apps/blog/content/blog/stop-your-ai-agent-dropping-your-database/index.mdx
index ca3dc3b49d..33b61ecc28 100644
--- a/apps/blog/content/blog/stop-your-ai-agent-dropping-your-database/index.mdx
+++ b/apps/blog/content/blog/stop-your-ai-agent-dropping-your-database/index.mdx
@@ -56,11 +56,11 @@ But this isn't enough. The fix isn't a better warning. It's a system where the c
## How Prisma 8 makes schema changes safe
-In Prisma 8, your schema is a [**contract**](https://www.prisma.io/docs/orm/next/contract-authoring/the-data-contract) between your application and the database: it records every table, field, and index your application depends on.
+In Prisma 8, your schema is a [**contract**](https://www.prisma.io/docs/orm/v8/contract-authoring/the-data-contract) between your application and the database: it records every table, field, and index your application depends on.
Prisma's job is to make sure your database satisfies your contract, and that your application's queries and TypeScript types match it too.
-The way you change your database is by changing your contract. Each time you do, you tell Prisma to bring the database up to date, which it does by writing and executing [migrations](https://www.prisma.io/docs/orm/next/migrations/how-migrations-work).
+The way you change your database is by changing your contract. Each time you do, you tell Prisma to bring the database up to date, which it does by writing and executing [migrations](https://www.prisma.io/docs/orm/v8/migrations/how-migrations-work).
For an agent, just like a human, that reduces the job to: describe what you want, ask the system to make it true, go back to writing your app. We didn't add warnings to make this safe for agents. We took away the dangerous actions entirely.
@@ -136,7 +136,7 @@ Never "drop the database and try again".
### Runtime guardrails for dangerous queries
-Schema changes aren't the only risk. When your application is running, Prisma 8 [middleware](https://www.prisma.io/docs/orm/next/middleware/how-middleware-works) can check the queries you're executing, whoever wrote them:
+Schema changes aren't the only risk. When your application is running, Prisma 8 [middleware](https://www.prisma.io/docs/orm/v8/middleware/how-middleware-works) can check the queries you're executing, whoever wrote them:
```ts
middleware: [
@@ -151,7 +151,7 @@ middleware: [
],
```
-A `DELETE` without a `WHERE`, the classic agent-generated data wipe, errors before it executes. A connection can be marked read-only in policy. [Budgets](https://www.prisma.io/docs/orm/next/middleware/built-in-budgets) stop runaway queries mid-stream. Together with the [built-in lints](https://www.prisma.io/docs/orm/next/middleware/built-in-lints), this gives your agent fast feedback loops in development and testing, so it corrects itself before code hits production.
+A `DELETE` without a `WHERE`, the classic agent-generated data wipe, errors before it executes. A connection can be marked read-only in policy. [Budgets](https://www.prisma.io/docs/orm/v8/middleware/built-in-budgets) stop runaway queries mid-stream. Together with the [built-in lints](https://www.prisma.io/docs/orm/v8/middleware/built-in-lints), this gives your agent fast feedback loops in development and testing, so it corrects itself before code hits production.
## What about the connection string?
diff --git a/apps/blog/content/blog/sunsetting-prisma-optimize/index.mdx b/apps/blog/content/blog/sunsetting-prisma-optimize/index.mdx
index ba39fec3c8..d6ca4ed3a6 100644
--- a/apps/blog/content/blog/sunsetting-prisma-optimize/index.mdx
+++ b/apps/blog/content/blog/sunsetting-prisma-optimize/index.mdx
@@ -6,8 +6,9 @@ authors:
- "Mike Hartington"
metaTitle: "Sunsetting Prisma Optimize"
metaDescription: "Prisma Optimize is being sunset as we move query observability directly into Prisma Postgres through Query Insights."
-heroImagePath: "/sunsetting-prisma-optimize/imgs/optimize-sunset.svg"
-metaImagePath: "/sunsetting-prisma-optimize/imgs/optimize-sunset@2x.png"
+heroImagePath: "/sunsetting-prisma-optimize/imgs/hero.svg"
+metaImagePath: "/sunsetting-prisma-optimize/imgs/meta.png"
+heroImageAlt: "A dated wind-down notice: the Prisma Optimize client extension gives way to Query Insights in Prisma Postgres, with the command that removes the old package"
tags:
- "announcement"
- "prisma-postgres"
diff --git a/apps/blog/content/blog/testing-series-1-8eRB5p0Y8o/index.mdx b/apps/blog/content/blog/testing-series-1-8eRB5p0Y8o/index.mdx
index 5c3bc7e8c7..e364fd5cb6 100644
--- a/apps/blog/content/blog/testing-series-1-8eRB5p0Y8o/index.mdx
+++ b/apps/blog/content/blog/testing-series-1-8eRB5p0Y8o/index.mdx
@@ -674,4 +674,4 @@ In this article, you focused on _mocking_ and _spying_, which play a major role
With this foundation, you have the tools to unit test an application. In [part 2: Unit Testing](/testing-series-2-xPhjjmIEsM), you will put them to use against a real service.
-Looking ahead: [Prisma Next](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/testing-series-2-xPhjjmIEsM/index.mdx b/apps/blog/content/blog/testing-series-2-xPhjjmIEsM/index.mdx
index fa2676b5e8..d342874ed4 100644
--- a/apps/blog/content/blog/testing-series-2-xPhjjmIEsM/index.mdx
+++ b/apps/blog/content/blog/testing-series-2-xPhjjmIEsM/index.mdx
@@ -452,4 +452,4 @@ While only one file was covered here, the same concepts apply to the rest of the
You can also revisit [part 1: Mocking Prisma Client](/testing-series-1-8eRB5p0Y8o) for the mock setup used here.
-Looking ahead: Prisma Next is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/testing-series-3-aBUyF8nxAn/index.mdx b/apps/blog/content/blog/testing-series-3-aBUyF8nxAn/index.mdx
index b595e1cacf..91323d55a1 100644
--- a/apps/blog/content/blog/testing-series-3-aBUyF8nxAn/index.mdx
+++ b/apps/blog/content/blog/testing-series-3-aBUyF8nxAn/index.mdx
@@ -397,4 +397,4 @@ During this article you:
In [part 4: End-to-End Testing](/testing-series-4-OVXtDis201), you will test the application from a user's perspective with Playwright. You can also revisit [part 2: Unit Testing](/testing-series-2-xPhjjmIEsM).
-Looking ahead: Prisma Next is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/testing-series-4-OVXtDis201/index.mdx b/apps/blog/content/blog/testing-series-4-OVXtDis201/index.mdx
index adb72b5fc1..a7e97572ce 100644
--- a/apps/blog/content/blog/testing-series-4-OVXtDis201/index.mdx
+++ b/apps/blog/content/blog/testing-series-4-OVXtDis201/index.mdx
@@ -379,4 +379,4 @@ Throughout this article you:
In [part 5: CI Pipelines](/testing-series-5-xWogenROXm), you will run your unit, integration, and end-to-end tests automatically with GitHub Actions. You can also revisit [part 3: Integration Testing](/testing-series-3-aBUyF8nxAn).
-Looking ahead: Prisma Next is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/testing-series-5-xWogenROXm/index.mdx b/apps/blog/content/blog/testing-series-5-xWogenROXm/index.mdx
index 1084d8ca02..a8a27dd926 100644
--- a/apps/blog/content/blog/testing-series-5-xWogenROXm/index.mdx
+++ b/apps/blog/content/blog/testing-series-5-xWogenROXm/index.mdx
@@ -235,4 +235,4 @@ In this article you learned:
Over this series you learned the kinds of tests you can write against applications that use Prisma ORM, how to write them, and how to automate them in CI. You can revisit any part: [part 1: Mocking](/testing-series-1-8eRB5p0Y8o), [part 2: Unit Testing](/testing-series-2-xPhjjmIEsM), [part 3: Integration Testing](/testing-series-3-aBUyF8nxAn), and [part 4: End-to-End Testing](/testing-series-4-OVXtDis201).
-Looking ahead: Prisma Next is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and currently in early access. It becomes Prisma 8 at general availability; until then, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [early access docs](https://pris.ly/pn-ea).
+Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea).
diff --git a/apps/blog/content/blog/the-next-evolution-of-prisma-orm/index.mdx b/apps/blog/content/blog/the-next-evolution-of-prisma-orm/index.mdx
index 08f18098ff..91b763c14f 100644
--- a/apps/blog/content/blog/the-next-evolution-of-prisma-orm/index.mdx
+++ b/apps/blog/content/blog/the-next-evolution-of-prisma-orm/index.mdx
@@ -6,17 +6,19 @@ authors:
- "Will Madden"
- "Ankur Datta"
metaTitle: "The Next Evolution of Prisma ORM"
-metaDescription: "A look at Prisma Next, a ground-up rethink of Prisma that improves queries, extensibility, migrations, and AI-friendly workflows while keeping Prisma’s schema-first approach."
-metaImagePath: "/the-next-evolution-of-prisma-orm/imgs/meta-558fe7eccfd12d3b52c325d62e5fa463a1b5f619-1200x640-3212708663.png"
-heroImagePath: "/the-next-evolution-of-prisma-orm/imgs/hero-61773d2cc286213d32b63e59605b0f5e0df4fe52-844x474-cb41e2fab7.svg"
-heroImageAlt: "The Next Evolution of Prisma ORM"
+metaDescription: "A look at Prisma 8, a ground-up rethink of Prisma that improves queries, extensibility, migrations, and AI-friendly workflows while keeping Prisma’s schema-first approach."
+metaImagePath: "/the-next-evolution-of-prisma-orm/imgs/meta.png"
+heroImagePath: "/the-next-evolution-of-prisma-orm/imgs/hero.svg"
+heroImageAlt: "A lineage of three Prisma ORM generations: Prisma 6 shipping Rust native binaries, Prisma 7 with the query system rewritten, and Prisma 8 stepped up and outlined in cyan, rebuilt in TypeScript and extensible by default."
tags:
- "orm"
series: prisma-next
seriesIndex: 1
---
-Today, we're excited to share what we've been working on the last few months: Prisma Next, a new foundation for Prisma ORM written fully in TypeScript.
+> _Editor's note: Prisma 8 was developed under the working name Prisma Next. This post has been updated to use the final name._
+
+Today, we're excited to share what we've been working on the last few months: Prisma 8, a new foundation for Prisma ORM written fully in TypeScript.
## Before we begin
@@ -30,13 +32,13 @@ Over the past year, we’ve fixed bugs, improved performance, and shipped major
If you’ve been using Prisma, you will have felt the pain. Fixes take longer than they should. New capabilities take time to land. And progress doesn’t always move at the pace you’d hope.
-Prisma Next is a rewrite, which allows us to address what’s holding us back in the existing codebase, by rebuilding it end-to-end to be **extensible** and **composable** by default.
+Prisma 8 is a rewrite, which allows us to address what’s holding us back in the existing codebase, by rebuilding it end-to-end to be **extensible** and **composable** by default.
-And we’re keeping what developers love about Prisma: the **[declarative schema](https://www.prisma.io/docs/orm/next/data-modeling)** and the **model-first query experience**.
+And we’re keeping what developers love about Prisma: the **[declarative schema](https://www.prisma.io/docs/orm/v8/data-modeling)** and the **model-first query experience**.
-And we’re doing it for the world we’re in now: AI agents are increasingly part of how teams ship software, so Prisma Next is designed to make **agent-assisted workflows** safer and more predictable.
+And we’re doing it for the world we’re in now: AI agents are increasingly part of how teams ship software, so Prisma 8 is designed to make **agent-assisted workflows** safer and more predictable.
-In this article, we’ll show **what changes in practice**: how you write queries, extend Prisma Next with new types and behavior, and manage your database.
+In this article, we’ll show **what changes in practice**: how you write queries, extend Prisma 8 with new types and behavior, and manage your database.
Let’s start with queries.
@@ -88,7 +90,7 @@ const orders = await prisma.order.findMany({
});
```
-```ts tab="Prisma Next"
+```ts tab="Prisma 8"
const orders = await db.orders
.where({ userId: currentUserId })
.where((o) => o.status.in(["shipped", "delivered"]))
@@ -110,13 +112,13 @@ const orders = await db.orders
.all();
```
-In Prisma Next, [queries](https://www.prisma.io/docs/orm/next/fundamentals/reading-data) remain easy to read, your editor continues to provide autocompletion, and even as queries grow more complex, they stay manageable.
+In Prisma 8, [queries](https://www.prisma.io/docs/orm/v8/fundamentals/reading-data) remain easy to read, your editor continues to provide autocompletion, and even as queries grow more complex, they stay manageable.
-If you’d like a deeper side-by-side comparison of Prisma ORM and Prisma Next, take a look at [the API comparison doc](https://github.com/prisma/prisma-next/blob/27ae1d164ae7060626aabaefce1af8428031e5ef/specs/2026-02-16-repository-model-client/prisma-orm-comparison.md?plain=1).
+If you’d like a deeper side-by-side comparison of Prisma ORM and Prisma 8, take a look at [the API comparison doc](https://github.com/prisma/prisma-next/blob/27ae1d164ae7060626aabaefce1af8428031e5ef/specs/2026-02-16-repository-model-client/prisma-orm-comparison.md?plain=1).
## We’re adding a SQL query builder
-But an ORM can’t fit every use case. When you need something custom, or you need to tune performance, drop down to the **[type-safe SQL query builder](https://www.prisma.io/docs/orm/next/fundamentals/advanced-queries)** and write it directly:
+But an ORM can’t fit every use case. When you need something custom, or you need to tune performance, drop down to the **[type-safe SQL query builder](https://www.prisma.io/docs/orm/v8/fundamentals/advanced-queries)** and write it directly:
```ts title="sql-builder.ts"
db.sql
@@ -140,7 +142,7 @@ Your query **builder stays in sync with your Prisma schema**, ensuring full type
## Write `schema.prisma` or TypeScript
-The other thing Prisma is known for is its clean, declarative schema language. In Prisma Next we add support for a [TypeScript alternative](https://www.prisma.io/docs/orm/next/contract-authoring/typescript-schema-builder), so you can keep your schema in the same language as your application.
+The other thing Prisma is known for is its clean, declarative schema language. In Prisma 8 we add support for a [TypeScript alternative](https://www.prisma.io/docs/orm/v8/contract-authoring/typescript-schema-builder), so you can keep your schema in the same language as your application.
Both versions are read by your application the same way, determining the shape of queries you can write on your models, their fields and their relationships:
@@ -187,10 +189,10 @@ export const contract = defineContract()
## Extending your schema and queries
-Prisma Next is built to fit your app, not the other way around. Instead of one fixed bundle, you install the pieces you need and plug them into your setup.
+Prisma 8 is built to fit your app, not the other way around. Instead of one fixed bundle, you install the pieces you need and plug them into your setup.
```ts title="prisma-next.config.ts"
-import pgvector from "@prisma-next/extension-pgvector/control";
+import pgvector from "@prisma/orm-extension-pgvector/control";
export default defineConfig({
target: postgres,
@@ -199,7 +201,7 @@ export default defineConfig({
});
```
-When you install an [extension](https://www.prisma.io/docs/orm/next/extensions/using-extensions) like `pgvector` above, your schema and your queries gain new capabilities:
+When you install an [extension](https://www.prisma.io/docs/orm/v8/extensions/using-extensions) like `pgvector` above, your schema and your queries gain new capabilities:
```prisma tab="Usage in Schema"
// Use @pgvector columns in your Prisma schema
@@ -211,7 +213,7 @@ model Document {
```
```ts tab="Features in Queries"
-// Prisma Next queries know about
+// Prisma 8 queries know about
// extension column types and their operations
const post = db.schema.tables.post;
const embedding = post.columns.embedding;
@@ -229,7 +231,7 @@ const plan = db.sql
Using the example above, queries remain fully type-safe, covering new vector columns, operations such as `cosineDistance`, and the resulting return types.
-You can wire these types of extensions directly into your config in Prisma Next:
+You can wire these types of extensions directly into your config in Prisma 8:
- **Database support**: Postgres today (others will follow the same package shape)
- **Query builders**: including the two we demonstrated above, plugged into the framework
@@ -240,13 +242,13 @@ You can wire these types of extensions directly into your config in Prisma Next:
**Extension authors**
-If you’re a package author and you’d like to build a Prisma Next extension, join [the discussion in the `#prisma-next-discussions`](https://pris.ly/prisma-next-discord) channel in our discord.
+If you’re a package author and you’d like to build a Prisma 8 extension, join [the discussion in the `#prisma-next-discussions`](https://pris.ly/prisma-next-discord) channel in our discord.
## Add your own model query methods
-Extensions teach Prisma Next about new data types. You can also teach it about your application’s business logic.
+Extensions teach Prisma 8 about new data types. You can also teach it about your application’s business logic.
With model collections, you define your own methods and extend Prisma’s query interface using the language of your domain. Instead of repeating filters and sorting logic throughout your codebase, you capture that logic once and reuse it everywhere.
@@ -289,7 +291,7 @@ As always, inputs are autocompleted and return types are safe.
When you’re working with large datasets, loading everything into memory can slow your app down - or blow it up - whether it’s a backend job or a request path serving your UI.
-Prisma Next queries stream over async iterables, so you can process rows as soon as they arrive rather than loading them all up into memory, and then process them one by one. That lowers memory usage and improves time to first result.
+Prisma 8 queries stream over async iterables, so you can process rows as soon as they arrive rather than loading them all up into memory, and then process them one by one. That lowers memory usage and improves time to first result.
```ts title="streaming.ts"
for await (const post of db.posts.forUser(userId).take(10_000).all()) {
@@ -302,7 +304,7 @@ This is useful for background jobs, exports, analytics, AI pipelines, or streami
## A type-safe ORM for agent-centric development
-If you’re building with AI agents, **fast feedback** is everything. Prisma Next is designed to make iteration fast and predictable, which makes _your_ development faster too.
+If you’re building with AI agents, **fast feedback** is everything. Prisma 8 is designed to make iteration fast and predictable, which makes _your_ development faster too.
Every operation produces structured output that machines can understand: query plans, schema details, and diagnostics. That means agents can explain failures, suggest fixes, and adjust their queries without guesswork.
@@ -336,7 +338,7 @@ But fast feedback is only half the story - you also need enforcement.
## Middleware
-[Middleware](https://www.prisma.io/docs/orm/next/middleware/how-middleware-works) runs in your application and sees every query before it hits the database. It lets you inspect, block, or rewrite queries before execution.
+[Middleware](https://www.prisma.io/docs/orm/v8/middleware/how-middleware-works) runs in your application and sees every query before it hits the database. It lets you inspect, block, or rewrite queries before execution.
This is where you add real guardrails, for agents and humans alike.
@@ -369,7 +371,7 @@ You can also build or install your own middleware for telemetry, custom policies
## Validation at every layer
-Every Prisma Next query is validated before it reaches your database.
+Every Prisma 8 query is validated before it reaches your database.
- **In your editor:** TypeScript prevents you from selecting fields that don’t exist, omitting required filters, or returning the wrong data structure.
- **Against your schema:** Before execution, the query is checked to ensure your schema and database are aligned. If they are not, the query will not run.
@@ -381,7 +383,7 @@ The result is simple: the query you write, the schema you define, and the databa
One of Prisma's core promises has always been simple: update your Prisma schema, and your database follows.
-Prisma Next makes migrations safer and more transparent. Instead of a linear list of files, migrations form a **[graph](https://www.prisma.io/docs/orm/next/migrations/the-migration-graph)** like Git branches, but for your database schema.
+Prisma 8 makes migrations safer and more transparent. Instead of a linear list of files, migrations form a **[graph](https://www.prisma.io/docs/orm/v8/migrations/the-migration-graph)** like Git branches, but for your database schema.
With Prisma next you will be able to see exactly where your database is and where it's going:
@@ -415,33 +417,33 @@ This graph model handles real-world scenarios that Prisma 7’s linear migration
We're working on **data migrations** - a long-standing gap in Prisma ORM. You'll be able to write type-safe data transformations that run alongside schema changes, with the same safety guarantees and preflight validation.
-For a deep dive, see [TypeScript Migrations in Prisma Next](https://pris.ly/ts-migrations-pn) and [Data Migrations in Prisma Next](/data-migrations-in-prisma-next).
+For a deep dive, see [TypeScript Migrations in Prisma 8](https://pris.ly/ts-migrations-pn) and [Data Migrations in Prisma 8](/data-migrations-in-prisma-next).
-## MongoDB, Prisma 7 and Prisma Next
+## MongoDB, Prisma 7 and Prisma 8
In Prisma 7, we shipped a major rewrite of the query system that removed Rust native binaries from users’ applications. Extending that rewrite to MongoDB - as a non‑SQL database - turned out to be more difficult than anticipated.
That’s why Prisma 7 shipped without MongoDB support. We **committed** to bring bring MongoDB support to Prisma 7 in the months that followed, but the work was larger and riskier than we could responsibly ship on that timeline.
-This was a major motivator behind Prisma Next: we need an architecture that’s extensible enough to accommodate non-SQL databases like MongoDB.
+This was a major motivator behind Prisma 8: we need an architecture that’s extensible enough to accommodate non-SQL databases like MongoDB.
-So we’ve made a clear call: **MongoDB support will come through Prisma Next, not Prisma 7**. We’re actively working with the Mongo team to build a truly **Mongo‑native** experience in Prisma Next.
+So we’ve made a clear call: **MongoDB support will come through Prisma 8, not Prisma 7**. We’re actively working with the Mongo team to build a truly **Mongo‑native** experience in Prisma 8.
The goal isn’t just “Mongo support” - it’s MongoDB’s strengths reflected end‑to‑end, including capabilities like aggregations and field‑level encryption.
-## Prisma 7 continues, Prisma Next will become Prisma 8
+## Prisma 7 continues, Prisma 8 is on the way
-Prisma Next is an open look at where we’re headed.
+Prisma 8 is an open look at where we’re headed.
**Prisma 7 is still the right choice for your production apps**. It’s stable, supported, and actively maintained. If you’re shipping now, keep upgrading to Prisma 7.
-We’re publishing a [Prisma 7 roadmap alongside this post](https://pris.ly/p7-roadmap) so you can see what’s ahead. In parallel, we’ll keep iterating on Prisma Next in the open. When it’s ready for general use, Prisma Next becomes **Prisma 8**.
+We’re publishing a [Prisma 7 roadmap alongside this post](https://pris.ly/p7-roadmap) so you can see what’s ahead. In parallel, we’ll keep iterating on Prisma 8 in the open until it’s ready for general use.
If you're shipping today while following this work, start with [Prisma ORM](https://www.prisma.io/orm), use [Prisma Postgres](https://www.prisma.io/postgres) for the database layer, and keep an eye on [Prisma's MCP tooling](https://www.prisma.io/mcp) if agent-assisted development is already part of your workflow.
## We’re working in the open
-Today we’re publishing the Prisma Next repo so you can follow the work as it happens. It’s in Early Access, and we’re sharing it now so the community can see where we’re headed and help shape the design.
+Today we’re publishing the Prisma 8 repo so you can follow the work as it happens. It’s in Early Access, and we’re sharing it now so the community can see where we’re headed and help shape the design.
If you want to stay close to the work, **star + watch** the repo.
diff --git a/apps/blog/content/blog/typescript-7-native-compiler-faster-type-checking/index.mdx b/apps/blog/content/blog/typescript-7-native-compiler-faster-type-checking/index.mdx
index b114ddac35..f2827b33be 100644
--- a/apps/blog/content/blog/typescript-7-native-compiler-faster-type-checking/index.mdx
+++ b/apps/blog/content/blog/typescript-7-native-compiler-faster-type-checking/index.mdx
@@ -9,7 +9,7 @@ metaTitle: "TypeScript 7 Native Compiler: 3x Faster Type Checks in a Real Monore
metaDescription: "TypeScript 7 ships the compiler as a native Go port. We migrated a large TypeScript monorepo to it: whole-repo type checking went from ~74s to ~24s with no memory tuning. Here are the numbers, the exact config diffs, the sharp edges, and who should migrate now."
metaImagePath: "/typescript-7-native-compiler-faster-type-checking/imgs/meta.png"
heroImagePath: "/typescript-7-native-compiler-faster-type-checking/imgs/hero.svg"
-heroImageAlt: "Headline 'Type checking, 3x faster' beside a before/after bar chart: a tall slate bar labeled TS 5.x at 74 seconds and a short glowing blue bar labeled TS 7 at 24 seconds, with a '3x faster' callout. TypeScript logo top-left, Prisma wordmark top-right."
+heroImageAlt: "Two proportional bars comparing a whole-repo type check: tsc 5.8.2, the classic compiler, at about 74 seconds in grey, and tsc 7.0.2, the native Go compiler, at about 24 seconds in cyan with a 3x faster pill, above a note that the Node heap flag went from 8 GB to none."
tags:
- "education"
- "platform"
diff --git a/apps/blog/content/blog/typescript-migrations-in-prisma-next/index.mdx b/apps/blog/content/blog/typescript-migrations-in-prisma-next/index.mdx
index 64f5038778..563df8fb04 100644
--- a/apps/blog/content/blog/typescript-migrations-in-prisma-next/index.mdx
+++ b/apps/blog/content/blog/typescript-migrations-in-prisma-next/index.mdx
@@ -1,15 +1,15 @@
---
-title: "TypeScript Migrations in Prisma Next"
+title: "TypeScript Migrations in Prisma 8"
slug: "typescript-migrations-in-prisma-next"
date: "2026-04-27"
authors:
- "Will Madden"
- "Ankur Datta"
-metaTitle: "TypeScript Migrations in Prisma Next"
-metaDescription: "In Prisma Next, migrations are TypeScript files you can read, edit, and re-run with confidence. Every step is verified before it runs and again after, and every failure points directly at the operation that caused it."
-heroImagePath: "/typescript-migrations-in-prisma-next/imgs/typescript-migrations-in-prisma-next.png"
-metaImagePath: "/typescript-migrations-in-prisma-next/imgs/typescript-migrations-in-prisma-next.png"
-heroImageAlt: "TypeScript Migrations In Prisma Next"
+metaTitle: "TypeScript Migrations in Prisma 8"
+metaDescription: "In Prisma 8, migrations are TypeScript files you can read, edit, and re-run with confidence. Every step is verified before it runs and again after, and every failure points directly at the operation that caused it."
+heroImagePath: "/typescript-migrations-in-prisma-next/imgs/hero.svg"
+metaImagePath: "/typescript-migrations-in-prisma-next/imgs/meta.png"
+heroImageAlt: "A dark migration.ts code card showing the createTable, addUnique and createIndex operation factories that a Prisma 8 migration is built from"
tags:
- "orm"
- "education"
@@ -17,7 +17,9 @@ series: prisma-next
seriesIndex: 4
---
-Migrations shouldn't be the scariest part of your deploy. In Prisma Next, [migrations](https://www.prisma.io/docs/orm/next/migrations/how-migrations-work) are TypeScript files you can read, edit, and re-run with confidence. Every step is verified before it runs and again after. Every failure points directly at the operation that caused it.
+> _Editor's note: Prisma 8 was developed under the working name Prisma Next. This post has been updated to use the final name._
+
+Migrations shouldn't be the scariest part of your deploy. In Prisma 8, [migrations](https://www.prisma.io/docs/orm/v8/migrations/how-migrations-work) are TypeScript files you can read, edit, and re-run with confidence. Every step is verified before it runs and again after. Every failure points directly at the operation that caused it.
## This is a SQL migration
@@ -61,7 +63,7 @@ When this file runs against your database and fails on statement four of five, y
That's the workflow today. You generate a SQL file, hand-edit it when you need to, try it, get a cryptic error, fix it, and try again. Eventually you deploy to production, discover that it fails for a reason that didn't show up in development, and scramble to recover.
-## This is a Prisma Next migration
+## This is a Prisma 8 migration
Here are the same tables, the same constraint, the same index, and the same foreign key, written in TypeScript:
@@ -71,7 +73,7 @@ Here are the same tables, the same constraint, the same index, and the same fore
import {
Migration,
runMigration,
-} from "@prisma-next/target-postgres/migration";
+} from "@prisma/orm-postgres/target/migration";
export default class M extends Migration {
override describe() {
@@ -175,7 +177,7 @@ You edit the TypeScript. The system runs the JSON. Both get committed, much like
## The workflow
-Most migrations don't get written from scratch. They get [planned](https://www.prisma.io/docs/orm/next/migrations/generating-a-migration) from changes to your [Prisma contract](https://www.prisma.io/docs/orm/next/contract-authoring/the-data-contract) (the `.prisma` file that describes your database schema). Say you add a `displayName String` field to your `User` model. Then:
+Most migrations don't get written from scratch. They get [planned](https://www.prisma.io/docs/orm/v8/migrations/generating-a-migration) from changes to your [Prisma contract](https://www.prisma.io/docs/orm/v8/contract-authoring/the-data-contract) (the `.prisma` file that describes your database schema). Say you add a `displayName String` field to your `User` model. Then:
```text
$ npx prisma-next migration plan
@@ -194,7 +196,7 @@ $ npx prisma-next migrate --verbose
The planner reads your contract, compares it to the current database, and writes both `migration.ts` and `ops.json`. For most changes (adding a model, adding a field, creating an index), that's all you need.
-When you do need to [edit a migration](https://www.prisma.io/docs/orm/next/migrations/editing-a-migration), for example to backfill data before a constraint, reorder operations, or drop in a custom check, you open `migration.ts`, edit it like any other TypeScript file, and re-run it to regenerate `ops.json`. Your editor handles autocomplete, type checking, and inline docs for every operation. There's no SQL syntax to remember and no second-guessing whether you got the constraint definition right.
+When you do need to [edit a migration](https://www.prisma.io/docs/orm/v8/migrations/editing-a-migration), for example to backfill data before a constraint, reorder operations, or drop in a custom check, you open `migration.ts`, edit it like any other TypeScript file, and re-run it to regenerate `ops.json`. Your editor handles autocomplete, type checking, and inline docs for every operation. There's no SQL syntax to remember and no second-guessing whether you got the constraint definition right.
Where it gets interesting is when something goes wrong. The runner doesn't just bail with a database error. It names the operation that failed and the check inside it that the database refused to satisfy:
@@ -207,14 +209,14 @@ $ npx prisma-next migrate
You know which operation failed (`alterNullability.setNotNull.user.displayName`) and which check failed inside it (`ensure no NULL values in "displayName"`). Both come straight from `ops.json`, and both tell you exactly where to look. From here, you fix it. You might backfill the nulls, drop and re-add the column with a default, or edit the migration to add a backfill step before the `setNotNull`. Then you re-run.
-**[Re-running is safe](https://www.prisma.io/docs/orm/next/migrations/rollbacks-and-recovery).** Before running each operation, the migration runner first evaluates that operation's postcheck. If the postcheck is already true, the runner skips the operation (which makes each operation idempotent). The migration then continues at the first step that hasn't succeeded yet. There's no commenting out lines, no manually unwinding state, and no guessing what's been applied. The single most uncomfortable problem with SQL migrations is solved.
+**[Re-running is safe](https://www.prisma.io/docs/orm/v8/migrations/rollbacks-and-recovery).** Before running each operation, the migration runner first evaluates that operation's postcheck. If the postcheck is already true, the runner skips the operation (which makes each operation idempotent). The migration then continues at the first step that hasn't succeeded yet. There's no commenting out lines, no manually unwinding state, and no guessing what's been applied. The single most uncomfortable problem with SQL migrations is solved.
**Your development workflow becomes:**
1. Edit your `contract.prisma`
2. Plan a migration: `migration plan`
3. Edit the TypeScript and run `./migration.ts`
-4. [Apply the migration](https://www.prisma.io/docs/orm/next/migrations/applying-a-migration): `prisma-next migrate`
+4. [Apply the migration](https://www.prisma.io/docs/orm/v8/migrations/applying-a-migration): `prisma-next migrate`
5. Read the output, iterate
The contract describes the database schema you want. `migration.ts` lets you edit the migration easily. The JSON is what runs. The feedback is granular enough to act on.
@@ -229,7 +231,7 @@ Remember the opening pain, where a `migration.sql` fails on statement four of fi
The `setNotNull` example above is the textbook case. Your dev database is empty (or your seed data has no nulls), so the constraint is added cleanly. You ship it. In production, real users have skipped the optional field for years, so there are nulls.
-A SQL migration runs `ALTER TABLE ... SET NOT NULL`, hits the first NULL row, and aborts with a generic error. A Prisma Next migration's precheck catches the same condition before the destructive ALTER touches anything. It then points you at the exact operation and check, so you know what to fix.
+A SQL migration runs `ALTER TABLE ... SET NOT NULL`, hits the first NULL row, and aborts with a generic error. A Prisma 8 migration's precheck catches the same condition before the destructive ALTER touches anything. It then points you at the exact operation and check, so you know what to fix.
### Conflicting topic branches
@@ -278,15 +280,15 @@ If you find yourself writing the same `rawSql` over and over, lift it into a fun
You would probably never trust an agent to write a migration. Review one, maybe. But write and execute something this dangerous? With an ordinary migration system (a linear sequence of `.sql` files held together with discipline and hope), neither would we.
-Prisma Next migrations were designed to support [agent-assisted workflows](https://www.prisma.io/docs/ai/tools/skills). Every step is checked against its expected result, and the final database state is verified against your contract. Agents don't write SQL directly either. Instead, they assemble simple factory functions in TypeScript, which minimizes the chances for mistakes (or overenthusiastic expressions of creativity).
+Prisma 8 migrations were designed to support [agent-assisted workflows](https://www.prisma.io/docs/ai/tools/skills). Every step is checked against its expected result, and the final database state is verified against your contract. Agents don't write SQL directly either. Instead, they assemble simple factory functions in TypeScript, which minimizes the chances for mistakes (or overenthusiastic expressions of creativity).
-You can let an agent write a migration in Prisma Next with confidence that the system will catch a lot of mistakes. When something does go wrong, the agent gets the same feedback you do (which operation failed, which check returned what), and it can iterate in a dev environment until it works.
+You can let an agent write a migration in Prisma 8 with confidence that the system will catch a lot of mistakes. When something does go wrong, the agent gets the same feedback you do (which operation failed, which check returned what), and it can iterate in a dev environment until it works.
Most importantly, `migration.ts` combined with `ops.json` is _really_ easy to review. You can see intent, execution, and verifications in one place. That makes it even easier for automated systems to inspect than for humans.
## Try it yourself
-[Prisma Next is in Early Access](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) and not production-ready yet. Prisma 7 is still the right choice for production today. When Prisma Next is ready for general use, it becomes Prisma 8.
+[Prisma 8 is in Early Access](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) and not production-ready yet. Prisma 7 is still the right choice for production today.
But you can try it now:
diff --git a/apps/blog/content/blog/why-prisma-orm-checks-types-faster-than-drizzle/index.mdx b/apps/blog/content/blog/why-prisma-orm-checks-types-faster-than-drizzle/index.mdx
index 865b2768b7..71587e4854 100644
--- a/apps/blog/content/blog/why-prisma-orm-checks-types-faster-than-drizzle/index.mdx
+++ b/apps/blog/content/blog/why-prisma-orm-checks-types-faster-than-drizzle/index.mdx
@@ -15,8 +15,8 @@ tags:
- "orm"
---
-::::note[New: the Prisma Next performance benchmark]
-This post is about type-checking performance. On the runtime side, we've now benchmarked [Prisma Next](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: it reaches about 87% of the raw `pg` driver's peak throughput and sustains 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
+::::note[New: the Prisma 8 performance benchmark]
+This post is about type-checking performance. On the runtime side, we've now benchmarked [Prisma 8](https://pris.ly/pn-series), the new TypeScript-first foundation for Prisma ORM: it reaches about 87% of the raw `pg` driver's peak throughput and sustains 52% more requests per second than Prisma 7. [See the latest results](/prisma-next-performance-benchmark).
::::
Type performance is just as important as runtime speed for developer experience. Slow types mean laggy editors, broken autocomplete, and long CI runs. This post benchmarks Prisma ORM and Drizzle ORM to show how their different approaches affect TypeScript compiler performance.
diff --git a/apps/blog/content/blog/why-prisma-orm-generates-code-into-node-modules-and-why-it-ll-change/index.mdx b/apps/blog/content/blog/why-prisma-orm-generates-code-into-node-modules-and-why-it-ll-change/index.mdx
index 9720421a43..569f5232e6 100644
--- a/apps/blog/content/blog/why-prisma-orm-generates-code-into-node-modules-and-why-it-ll-change/index.mdx
+++ b/apps/blog/content/blog/why-prisma-orm-generates-code-into-node-modules-and-why-it-ll-change/index.mdx
@@ -134,13 +134,13 @@ Then:
**Docker builds and monorepos**: with the client generated into your source tree, it's bundled with your application like any other module. The `COPY node_modules/.prisma` steps and the `@prisma/nextjs-monorepo-workaround-plugin` are no longer needed on the `prisma-client` generator.
-## Looking ahead: Prisma Next
+## Looking ahead: Prisma 8
-Prisma ORM v7 is the production version today. [Prisma Next](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) is where the ORM is heading: the next generation, available in Early Access now, becoming Prisma 8 at GA. You describe your models and relationships in a single data contract, Prisma generates the migrations, and you or your coding agent write type-safe queries in terms of your models. Every query returns structured, machine-readable output, and every operation comes with guardrails, so humans and AI agents can iterate quickly without breaking things.
+Prisma ORM v7 is the production version today. [Prisma 8](https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app) is where the ORM is heading: the next generation, available in Early Access now. You describe your models and relationships in a single data contract, Prisma generates the migrations, and you or your coding agent write type-safe queries in terms of your models. Every query returns structured, machine-readable output, and every operation comes with guardrails, so humans and AI agents can iterate quickly without breaking things.
-It's also fast. In [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, Prisma Next reaches roughly 90% of the raw `pg` driver's speed, holds p95 latency around 4 ms at 6,000 to 7,000 requests/second, and keeps scaling to about 12,500 requests/second, roughly 50% beyond where Prisma 7 tops out. The client ships at about 148.5 KB gzipped, around 9x smaller than Prisma 7's, which translates directly into faster cold starts on serverless and edge.
+It's also fast. In [our published benchmark](https://www.prisma.io/blog/prisma-next-performance-benchmark), a fork of the open-source drizzle-benchmarks suite, Prisma 8 reaches roughly 90% of the raw `pg` driver's speed, holds p95 latency around 4 ms at 6,000 to 7,000 requests/second, and keeps scaling to about 12,500 requests/second, roughly 50% beyond where Prisma 7 tops out. The client ships at about 148.5 KB gzipped, around 9x smaller than Prisma 7's, which translates directly into faster cold starts on serverless and edge.
-Prisma Next pairs with [Prisma Postgres](https://www.prisma.io/postgres) the same way v7 does: provision a database in one step and connect with a single URL. If you're starting a new project, especially one built with AI coding agents, Prisma Next is the direction to watch.
+Prisma 8 pairs with [Prisma Postgres](https://www.prisma.io/postgres) the same way v7 does: provision a database in one step and connect with a single URL. If you're starting a new project, especially one built with AI coding agents, Prisma 8 is the direction to watch.
## Wrap-up
diff --git a/apps/blog/content/blog/you-dont-need-a-job-queue-postgres-already-has-skip-locked/index.mdx b/apps/blog/content/blog/you-dont-need-a-job-queue-postgres-already-has-skip-locked/index.mdx
index 3c4b056460..87c4b812e5 100644
--- a/apps/blog/content/blog/you-dont-need-a-job-queue-postgres-already-has-skip-locked/index.mdx
+++ b/apps/blog/content/blog/you-dont-need-a-job-queue-postgres-already-has-skip-locked/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "Build a Postgres Job Queue with SKIP LOCKED, No Redis"
metaDescription: "Postgres can run a reliable background job queue with FOR UPDATE SKIP LOCKED. Build a worker queue with retries using pg and Prisma Postgres, no broker required."
heroImagePath: "/you-dont-need-a-job-queue-postgres-already-has-skip-locked/imgs/hero.svg"
-heroImageAlt: "You Don't Need a Job Queue, Postgres Already Has SKIP LOCKED"
+heroImageAlt: "A dark SQL card holding the post's claim query, with FOR UPDATE SKIP LOCKED highlighted in yellow, beside the line 'The job queue is a table'."
metaImagePath: "/you-dont-need-a-job-queue-postgres-already-has-skip-locked/imgs/meta.png"
tags:
- "prisma-postgres"
diff --git a/apps/blog/content/blog/you-dont-need-a-vector-database-postgres-already-has-pgvector/PgvectorDemoRunner.tsx b/apps/blog/content/blog/you-dont-need-a-vector-database-postgres-already-has-pgvector/PgvectorDemoRunner.tsx
index c913db113d..2b4238d2ab 100644
--- a/apps/blog/content/blog/you-dont-need-a-vector-database-postgres-already-has-pgvector/PgvectorDemoRunner.tsx
+++ b/apps/blog/content/blog/you-dont-need-a-vector-database-postgres-already-has-pgvector/PgvectorDemoRunner.tsx
@@ -46,8 +46,8 @@ model Movie {
filename: "prisma-next.config.ts",
lang: "typescript",
source: `import "dotenv/config";
-import pgvector from "@prisma-next/extension-pgvector/control";
-import { defineConfig } from "@prisma-next/postgres/config";
+import pgvector from "@prisma/orm-extension-pgvector/control";
+import { defineConfig } from "@prisma/orm-postgres/config";
export default defineConfig({
contract: "./src/prisma/contract.prisma",
@@ -64,9 +64,9 @@ export default defineConfig({
title: "Migrate",
filename: "terminal",
lang: "bash",
- source: `bunx prisma-next contract emit
-bunx prisma-next migration plan
-bunx prisma-next db init`,
+ source: `bunx @prisma/cli@next contract emit
+bunx @prisma/cli@next migration plan
+bunx @prisma/cli@next db init`,
caption:
"migration plan copies the pgvector pack's own baseline migration into your repo; db init applies both spaces. You never run CREATE EXTENSION by hand.",
output: [
diff --git a/apps/blog/content/blog/you-dont-need-a-vector-database-postgres-already-has-pgvector/index.mdx b/apps/blog/content/blog/you-dont-need-a-vector-database-postgres-already-has-pgvector/index.mdx
index 52100acf6e..5174ed0971 100644
--- a/apps/blog/content/blog/you-dont-need-a-vector-database-postgres-already-has-pgvector/index.mdx
+++ b/apps/blog/content/blog/you-dont-need-a-vector-database-postgres-already-has-pgvector/index.mdx
@@ -5,10 +5,10 @@ date: "2026-07-10"
authors:
- "Ankur Datta"
metaTitle: "You Don't Need a Vector Database, Postgres Already Has pgvector"
-metaDescription: "pgvector turns Postgres into a vector store; Prisma Next makes it type-safe. Build working semantic search on a temporary Prisma Postgres database in minutes."
+metaDescription: "pgvector turns Postgres into a vector store; Prisma 8 makes it type-safe. Build working semantic search on a temporary Prisma Postgres database in minutes."
heroImagePath: "/you-dont-need-a-vector-database-postgres-already-has-pgvector/imgs/hero.svg"
metaImagePath: "/you-dont-need-a-vector-database-postgres-already-has-pgvector/imgs/meta.png"
-heroImageAlt: "You Don't Need a Vector Database, Postgres Already Has pgvector"
+heroImageAlt: "The post's movie vectors plotted on the action and scifi axes, with The Terminator highlighted and lines drawn to its nearest neighbours."
tags:
- "prisma-postgres"
- "education"
@@ -27,7 +27,7 @@ If your app already runs on Postgres, you probably don't need a dedicated vector
The default move is the opposite: the moment semantic search shows up on a roadmap, someone proposes Pinecone, Weaviate, or Qdrant. That means a second data store, a pipeline to keep it consistent with your primary database, and a second set of credentials, backups, and bills, all before the first useful search result.
-In this post you'll build a small semantic search demo end to end: a temporary [Prisma Postgres](https://www.prisma.io/docs/postgres) database spawned with `npx create-db`, a schema with a `vector` column, and a type-safe cosine similarity query written with [Prisma Next](https://www.prisma.io/docs/orm/next), the next-generation Prisma ORM, and its `@prisma-next/extension-pgvector` extension pack. Every command and every output in this post comes from a real run.
+In this post you'll build a small semantic search demo end to end: a temporary [Prisma Postgres](https://www.prisma.io/docs/postgres) database spawned with `npx create-db`, a schema with a `vector` column, and a type-safe cosine similarity query written with [Prisma 8](https://www.prisma.io/docs/orm/v8), the next-generation Prisma ORM, and its `@prisma/orm-extension-pgvector` extension pack. Every command and every output in this post comes from a real run.
## What an embedding is
@@ -85,11 +85,11 @@ This works, and if raw SQL is how your team rolls, you can stop here. But notice
- `<=>` is one of several pgvector distance operators (`<->` is L2 distance, `<#>` negative inner product, `<+>` L1). Pick the wrong sigil and you get a silently different ranking.
- The result is untyped. Whether `similarity` comes back as a number or a string depends on your driver's type parser.
-Those are exactly the mistakes a type system is good at catching, which is where Prisma Next comes in.
+Those are exactly the mistakes a type system is good at catching, which is where Prisma 8 comes in.
## Vectors with a type system
-Prisma Next treats pgvector as an **extension pack**: a package that teaches the whole stack about a new column type. `@prisma-next/extension-pgvector` ships three things:
+Prisma 8 treats pgvector as an **extension pack**: a package that teaches the whole stack about a new column type. `@prisma/orm-extension-pgvector` ships three things:
1. **A codec.** `vector(N)` columns map to `number[]` at runtime and to a dimension-carrying `Vector` type in your emitted contract types.
2. **Typed operations.** `cosineDistance` and `cosineSimilarity` become methods on vector columns in the query builder, and they render to the correct `<=>` SQL.
@@ -111,10 +111,10 @@ Now the same thing in copy-paste form.
mkdir movie-search
cd movie-search
bun init -y
-bun add @prisma-next/postgres @prisma-next/extension-pgvector dotenv
+bun add @prisma/orm-postgres @prisma/orm-extension-pgvector dotenv
```
-`@prisma-next/postgres` bundles the CLI, the Postgres driver, and the query builder. The pgvector extension pack is a separate package, because in Prisma Next Postgres itself is an extension too; the core doesn't know what a `vector` (or a `text`) is until a pack teaches it. Prisma Next requires Node.js 24 or later, and Bun works too, which is what we'll use here.
+`@prisma/orm-postgres` bundles the CLI, the Postgres driver, and the query builder. The pgvector extension pack is a separate package, because in Prisma 8 Postgres itself is an extension too; the core doesn't know what a `vector` (or a `text`) is until a pack teaches it. Prisma 8 requires Node.js 24 or later, and Bun works too, which is what we'll use here.
### Step 2: Spawn a Postgres database
@@ -134,7 +134,7 @@ DATABASE_URL="postgres://...@db.prisma.io:5432/postgres?sslmode=verify-full"
### Step 3: Declare the contract
-Prisma Next calls your schema a contract. Create `src/prisma/contract.prisma`:
+Prisma 8 calls your schema a contract. Create `src/prisma/contract.prisma`:
```prisma
// use prisma-next
@@ -159,8 +159,8 @@ Wire the extension into `prisma-next.config.ts` at the project root:
```typescript
import "dotenv/config";
-import pgvector from "@prisma-next/extension-pgvector/control";
-import { defineConfig } from "@prisma-next/postgres/config";
+import pgvector from "@prisma/orm-extension-pgvector/control";
+import { defineConfig } from "@prisma/orm-postgres/config";
export default defineConfig({
contract: "./src/prisma/contract.prisma",
@@ -202,8 +202,8 @@ Two spaces, two operations: the pgvector space ran `CREATE EXTENSION IF NOT EXIS
Create `index.ts`:
```typescript
-import pgvector from "@prisma-next/extension-pgvector/runtime";
-import postgres from "@prisma-next/postgres/runtime";
+import pgvector from "@prisma/orm-extension-pgvector/runtime";
+import postgres from "@prisma/orm-postgres/runtime";
import type { Contract } from "./src/prisma/contract.d";
import contractJson from "./src/prisma/contract.json" with { type: "json" };
@@ -335,7 +335,7 @@ const { embedding } = await embed({
- **Billion-scale vector search is the product.** Dedicated engines earn their operational cost when approximate-nearest-neighbor search at extreme scale is the core workload, with the recall/latency tuning that comes with it.
- **You need search features beyond similarity.** Hybrid BM25 ranking, faceting, and re-ranking pipelines are search-engine territory, not a column type.
- **Your embeddings outlive your rows or belong to another system.** If the vectors aren't describing data in this database, colocating them buys you little.
-- **You need an operator the pack doesn't type yet.** `@prisma-next/extension-pgvector` currently ships the cosine family. L2 distance, inner product, and index DDL like `CREATE INDEX ... USING hnsw` still go through SQL you write yourself, in a manually authored migration.
+- **You need an operator the pack doesn't type yet.** `@prisma/orm-extension-pgvector` currently ships the cosine family. L2 distance, inner product, and index DDL like `CREATE INDEX ... USING hnsw` still go through SQL you write yourself, in a manually authored migration.
## Frequently asked questions
@@ -344,7 +344,7 @@ const { embedding } = await embed({
Not if your data already lives in Postgres and your collection is in the thousands-to-millions range. The pgvector extension stores embeddings in a regular column and searches them with SQL, so a dedicated vector database only pays off when extreme-scale approximate-nearest-neighbor search or full search-engine features are the core product.
-Yes. Prisma Next supports pgvector through the `@prisma-next/extension-pgvector` extension pack: `pgvector.Vector(N)` column types in the schema, typed `cosineDistance` and `cosineSimilarity` query operations, and a baseline migration that runs `CREATE EXTENSION IF NOT EXISTS vector` for you. Prisma Postgres ships the pgvector extension, so this works out of the box.
+Yes. Prisma 8 supports pgvector through the `@prisma/orm-extension-pgvector` extension pack: `pgvector.Vector(N)` column types in the schema, typed `cosineDistance` and `cosineSimilarity` query operations, and a baseline migration that runs `CREATE EXTENSION IF NOT EXISTS vector` for you. Prisma Postgres ships the pgvector extension, so this works out of the box.
Postgres with pgvector handles collections into the millions of vectors comfortably. Small sets work with plain sequential scans, like the demo in this post, and pgvector's HNSW and IVFFlat index types keep similarity queries fast as the table grows. Dedicated engines earn their operational cost at billion-vector scale.
@@ -357,8 +357,8 @@ Yes. An embedding is just an array of numbers, so you can insert hand-made vecto
## Recap
- Embeddings are vectors; semantic search is ordering by the angle between them. pgvector gives Postgres a `vector(N)` column type and a `<=>` cosine distance operator.
-- [`@prisma-next/extension-pgvector`](https://github.com/prisma/prisma-next) is a Prisma Next extension pack: a codec (`Vector<4>` in your types), typed `cosineDistance`/`cosineSimilarity` operations, and a baseline migration that installs the extension for you.
+- [`@prisma/orm-extension-pgvector`](https://github.com/prisma/prisma-next) is a Prisma 8 extension pack: a codec (`Vector<4>` in your types), typed `cosineDistance`/`cosineSimilarity` operations, and a baseline migration that installs the extension for you.
- The demo ran on a throwaway database from `npx create-db@latest`, and the whole flow is four commands: `contract emit`, `migration plan`, `db init`, `bun index.ts`.
- Fit: apps already on Postgres with up to a few million vectors that want embeddings, filters, and transactions in one place. Reach for a dedicated engine when extreme-scale ANN or full search-engine features are the product.
-Extension packs are the bigger story here: pgvector support isn't a special case hard-coded into the ORM, it's a package anyone could have written. If that sounds like something you want to build, read [Prisma Next: A Call for Extension Authors](/prisma-next-call-for-extension-authors).
+Extension packs are the bigger story here: pgvector support isn't a special case hard-coded into the ORM, it's a package anyone could have written. If that sounds like something you want to build, read [Prisma 8: A Call for Extension Authors](/prisma-next-call-for-extension-authors).
diff --git a/apps/blog/content/blog/you-dont-need-elasticsearch-postgres-already-has-full-text-search/index.mdx b/apps/blog/content/blog/you-dont-need-elasticsearch-postgres-already-has-full-text-search/index.mdx
index 1f699a2250..b5347c091d 100644
--- a/apps/blog/content/blog/you-dont-need-elasticsearch-postgres-already-has-full-text-search/index.mdx
+++ b/apps/blog/content/blog/you-dont-need-elasticsearch-postgres-already-has-full-text-search/index.mdx
@@ -7,7 +7,7 @@ authors:
metaTitle: "Postgres Full-Text Search Instead of Elasticsearch"
metaDescription: "Build full-text search with tsvector, GIN indexes, and pg_trgm typo tolerance on Prisma Postgres. For most apps, no Elasticsearch cluster required."
heroImagePath: "/you-dont-need-elasticsearch-postgres-already-has-full-text-search/imgs/hero.svg"
-heroImageAlt: "You Don't Need Elasticsearch, Postgres Already Has Full-Text Search"
+heroImageAlt: "A struck-out Elasticsearch tile above a highlighted Postgres tile labelled tsvector plus GIN index, beside the line 'The search index is a column'."
metaImagePath: "/you-dont-need-elasticsearch-postgres-already-has-full-text-search/imgs/meta.png"
tags:
- "prisma-postgres"
diff --git a/apps/blog/content/blog/you-dont-need-redis-postgres-already-has-pub-sub/index.mdx b/apps/blog/content/blog/you-dont-need-redis-postgres-already-has-pub-sub/index.mdx
index 6bae207c84..4798534bb6 100644
--- a/apps/blog/content/blog/you-dont-need-redis-postgres-already-has-pub-sub/index.mdx
+++ b/apps/blog/content/blog/you-dont-need-redis-postgres-already-has-pub-sub/index.mdx
@@ -6,9 +6,9 @@ authors:
- "Ankur Datta"
metaTitle: "You Don't Need Redis, Postgres Already Has Pub/Sub"
metaDescription: "Postgres includes a lightweight Pub/Sub mechanism through LISTEN and NOTIFY. In this post, you'll build a small real-time Pub/Sub app with Bun, pg, and Prisma Postgres."
-heroImagePath: "/you-dont-need-redis-postgres-already-has-pub-sub/imgs/you-dont-need-redis-postgres-already-has-pub-sub.png"
-metaImagePath: "/you-dont-need-redis-postgres-already-has-pub-sub/imgs/you-dont-need-redis-postgres-already-has-pub-sub.png"
-heroImageAlt: "You Don't Need Redis, Postgres Already Has Pub/Sub"
+heroImagePath: "/you-dont-need-redis-postgres-already-has-pub-sub/imgs/hero.svg"
+metaImagePath: "/you-dont-need-redis-postgres-already-has-pub-sub/imgs/meta.png"
+heroImageAlt: "A publisher running NOTIFY app_events, fanning out through the app_events channel to two subscribers running LISTEN app_events."
tags:
- "education"
series: postgres-features
diff --git a/apps/blog/content/blog/your-database-might-not-be-the-bottleneck/index.mdx b/apps/blog/content/blog/your-database-might-not-be-the-bottleneck/index.mdx
index 9deaf79726..89d09efdac 100644
--- a/apps/blog/content/blog/your-database-might-not-be-the-bottleneck/index.mdx
+++ b/apps/blog/content/blog/your-database-might-not-be-the-bottleneck/index.mdx
@@ -7,7 +7,8 @@ authors:
metaTitle: "Your Database Might Not Be the Bottleneck"
metaDescription: "Slow APIs are not always a database problem. Here’s how request parsing, middleware, and repeated object work can become the real bottleneck before Postgres is even involved."
metaImagePath: "/your-database-might-not-be-the-bottleneck/imgs/meta.png"
-heroImagePath: "/your-database-might-not-be-the-bottleneck/imgs/hero.jpg"
+heroImagePath: "/your-database-might-not-be-the-bottleneck/imgs/hero.svg"
+heroImageAlt: "Request composition bars for the post's slow and fast apps: the query segment is the same size in both, while the slow bar fills with middleware, URL parsing and serialization."
---
When an API feels slow, the database is usually the first thing people blame. That makes sense because databases often do the most expensive work in the stack: filtering, joins, sorting, counts, pagination, and serialization. If a route suddenly takes 400ms, most people immediately start looking for missing indexes.
diff --git a/apps/blog/next.config.mjs b/apps/blog/next.config.mjs
index 87446f7dc1..a6a338b178 100644
--- a/apps/blog/next.config.mjs
+++ b/apps/blog/next.config.mjs
@@ -201,9 +201,7 @@ const securityHeaders = [
},
];
-const allowedDevOrigins = (
- process.env.ALLOWED_DEV_ORIGINS ?? "localhost,127.0.0.1,192.168.1.48"
-)
+const allowedDevOrigins = (process.env.ALLOWED_DEV_ORIGINS ?? "localhost,127.0.0.1,192.168.1.48")
.split(",")
.map((origin) => origin.trim())
.filter(Boolean);
diff --git a/apps/blog/public/agentic-engineering-at-prisma/imgs/hero.png b/apps/blog/public/agentic-engineering-at-prisma/imgs/hero.png
deleted file mode 100644
index 621f47d8fb..0000000000
Binary files a/apps/blog/public/agentic-engineering-at-prisma/imgs/hero.png and /dev/null differ
diff --git a/apps/blog/public/agentic-engineering-at-prisma/imgs/hero.svg b/apps/blog/public/agentic-engineering-at-prisma/imgs/hero.svg
new file mode 100644
index 0000000000..2a4e87919a
--- /dev/null
+++ b/apps/blog/public/agentic-engineering-at-prisma/imgs/hero.svg
@@ -0,0 +1,79 @@
+
+ Agentic Engineering at Prisma
+ The five Drive hand-off stages as a rail: Plan, Execute, Review, Ship and Delivery review, with the agent-owned Execute stage marked in prism cyan. Prisma blog cover, 2026 brand.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Drive, the project lifecycle
+
+
+
+
+ Not the code,
+ everything around it
+
+
+
+
+
+
+ Plan
+
+ Execute
+
+ Review
+
+ Ship
+
+ Delivery review
+
+
+
+
+
+
+
+ Engineers direct, agents execute, engineers validate.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/agentic-engineering-at-prisma/imgs/meta.png b/apps/blog/public/agentic-engineering-at-prisma/imgs/meta.png
index 4350e3dff9..f1b054d89e 100644
Binary files a/apps/blog/public/agentic-engineering-at-prisma/imgs/meta.png and b/apps/blog/public/agentic-engineering-at-prisma/imgs/meta.png differ
diff --git a/apps/blog/public/agents-md-for-databases/imgs/hero.svg b/apps/blog/public/agents-md-for-databases/imgs/hero.svg
index ecc56918bc..4be82439e6 100644
--- a/apps/blog/public/agents-md-for-databases/imgs/hero.svg
+++ b/apps/blog/public/agents-md-for-databases/imgs/hero.svg
@@ -1,69 +1,63 @@
-
-
-
- What to Put in Your AGENTS.md So Your Agent Handles the Database Right
- An AGENTS.md file card listing five database rules, feeding Claude Code, Cursor, and Codex.
+
+ What to Put in Your AGENTS.md So Your Agent Handles the Database Right
+ An ink code card with an AGENTS.md filename tab holding the post's five database rules, with the npx create-db@latest --json line marked in prism yellow. Prisma blog cover, 2026 brand.
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
- AGENTS.MD
-
- Database rules
- for your
- coding agent
-
+
+
+
+
-
-
- AGENTS.md
-
- ## Database rules
- - scratch work: npx create-db --json
- - never migrate reset without asking
- - rehearse migrations on a throwaway db
- - prefer --json output, parse the fields
- - DATABASE_URL from env, never committed
-
+
+
+ Agent rules for database work
-
-
-
-
-
-
-
- Claude Code
- via @AGENTS.md
- Cursor
- native
- Codex
- native
+
+
+
+ AGENTS.md
+ ## Database rules
+ - Scratch work gets a throwaway database:
+ npx create-db@latest --json
+ - Never reset or drop without my confirmation.
+ - Rehearse migrations on a throwaway first.
+ - Prefer --json output when a CLI offers it.
+ - Keep connection strings in the environment.
-
- Prisma
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/agents-md-for-databases/imgs/meta.png b/apps/blog/public/agents-md-for-databases/imgs/meta.png
index da9388df59..c774d2996f 100644
Binary files a/apps/blog/public/agents-md-for-databases/imgs/meta.png and b/apps/blog/public/agents-md-for-databases/imgs/meta.png differ
diff --git a/apps/blog/public/announcing-query-insights-for-prisma-postgres/announcing-query-insights-for-prisma-postgres-og.png b/apps/blog/public/announcing-query-insights-for-prisma-postgres/announcing-query-insights-for-prisma-postgres-og.png
deleted file mode 100644
index fc0adc707e..0000000000
Binary files a/apps/blog/public/announcing-query-insights-for-prisma-postgres/announcing-query-insights-for-prisma-postgres-og.png and /dev/null differ
diff --git a/apps/blog/public/announcing-query-insights-for-prisma-postgres/imgs/hero.svg b/apps/blog/public/announcing-query-insights-for-prisma-postgres/imgs/hero.svg
new file mode 100644
index 0000000000..b9db22be60
--- /dev/null
+++ b/apps/blog/public/announcing-query-insights-for-prisma-postgres/imgs/hero.svg
@@ -0,0 +1,149 @@
+
+ Announcing Query Insights For Prisma Postgres
+ The Queries tab of a Prisma Postgres database as a full width panel: average latency and queries per second, a latency chart, and four grouped query shapes with their execution and read counts, the expensive aggregate highlighted. Prisma blog cover, 2026 brand, prism yellow accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Average latency
+ 391
+ ms
+
+ Queries per second
+ 43.3
+
+
+ Queries
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Latency
+ Executions
+ Reads
+
+
+
+
+
+
+
+
+ 0ms
+ SELECT name, species, age FROM pets ORDER BY age DESC LIMIT $1
+ 156
+ 156
+
+
+ slow
+ SELECT COUNT(*)::int AS rows_scanned, AVG(p.age + n)::numeric(10,2)…
+ 156
+ 156
+
+
+ 0ms
+ INSERT INTO pets (name, species, age) VALUES ($1, $2, $3), ($4, $5…
+ 1
+ 55
+
+
+ 0ms
+ SELECT name, species, age FROM pets WHERE age > (SELECT AVG(age)…
+ 13
+ 26
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/announcing-query-insights-for-prisma-postgres/imgs/meta.png b/apps/blog/public/announcing-query-insights-for-prisma-postgres/imgs/meta.png
new file mode 100644
index 0000000000..b732c16149
Binary files /dev/null and b/apps/blog/public/announcing-query-insights-for-prisma-postgres/imgs/meta.png differ
diff --git a/apps/blog/public/app-hosting-compute-platforms-for-ai-agents-2026/imgs/hero.svg b/apps/blog/public/app-hosting-compute-platforms-for-ai-agents-2026/imgs/hero.svg
index bd01b36652..086570dc33 100644
--- a/apps/blog/public/app-hosting-compute-platforms-for-ai-agents-2026/imgs/hero.svg
+++ b/apps/blog/public/app-hosting-compute-platforms-for-ai-agents-2026/imgs/hero.svg
@@ -1,498 +1,119 @@
-
-
\ No newline at end of file
+
+ App Hosting and Compute Platforms for AI Agents in 2026
+ An evaluation matrix of the six platforms in the field guide, set as printed index rows: when each shipped, whether a database comes with it, and whether the stack is integrated. Prisma blog cover, 2026 brand, prism cyan accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Field guide, 2026
+
+
+
+
+
+ Platform
+ Shipped
+ Database
+ Integrated stack
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prisma Compute
+ Neon Compute
+ Cloudflare Containers
+ Hosting.com
+ Unkey Deploy
+ Insforge
+
+
+
+ June 2026
+ June 2026
+ 13 April 2026
+ March 2026
+ April 2026
+ 2026, early stage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/app-hosting-compute-platforms-for-ai-agents-2026/imgs/meta.png b/apps/blog/public/app-hosting-compute-platforms-for-ai-agents-2026/imgs/meta.png
index 296ebc2573..320779ece9 100644
Binary files a/apps/blog/public/app-hosting-compute-platforms-for-ai-agents-2026/imgs/meta.png and b/apps/blog/public/app-hosting-compute-platforms-for-ai-agents-2026/imgs/meta.png differ
diff --git a/apps/blog/public/building-open-chat/imgs/flow.svg b/apps/blog/public/building-open-chat/imgs/flow.svg
index cc8f6e4181..7c9e8f400d 100644
--- a/apps/blog/public/building-open-chat/imgs/flow.svg
+++ b/apps/blog/public/building-open-chat/imgs/flow.svg
@@ -46,7 +46,7 @@
Prisma Postgres
- via Prisma Next
+ via Prisma 8
users · chats · credits
diff --git a/apps/blog/public/building-open-chat/imgs/hero.svg b/apps/blog/public/building-open-chat/imgs/hero.svg
index 589b83a741..bd3033d102 100644
--- a/apps/blog/public/building-open-chat/imgs/hero.svg
+++ b/apps/blog/public/building-open-chat/imgs/hero.svg
@@ -1,471 +1,84 @@
-
-
\ No newline at end of file
+
+ How I Built a Chat App That Never Drops a Token
+ An append-only event log for one chat: message.created, message.delta and message.completed rows on a durable stream, with the live delta highlighted in prism red. Prisma blog cover, 2026 brand, prism red Compute accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Durable, resumable chat
+
+
+
+ Nothing on screen that isn’t durable
+
+
+
+
+
+ POST /v1/stream/u_3f9c…_messages
+ stream-key: chat:chat_38eb…
+
+
+
+
+
+ message.created role: user "Tell me about cows!"
+ message.created role: assistant ""
+ message.delta role: assistant "Cows are"
+ message.delta role: assistant " fascinating"
+ message.completed outputTokens: 312 costMicroUsd: 9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/building-open-chat/imgs/meta.png b/apps/blog/public/building-open-chat/imgs/meta.png
index 5cfe94ff0f..93485db87d 100644
Binary files a/apps/blog/public/building-open-chat/imgs/meta.png and b/apps/blog/public/building-open-chat/imgs/meta.png differ
diff --git a/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/hero.png b/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/hero.png
deleted file mode 100644
index 57e6f427c2..0000000000
Binary files a/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/hero.png and /dev/null differ
diff --git a/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/hero.svg b/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/hero.svg
new file mode 100644
index 0000000000..8855f5265c
--- /dev/null
+++ b/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/hero.svg
@@ -0,0 +1,90 @@
+
+ We put Bun's Rust rewrite in production on Prisma Compute
+ Peak resident memory in the Bun.S3File.arrayBuffer() loop inside a 1 GiB container: stable 1.3.14 runs past the 900 MiB threshold and is OOM-killed, while the Rust rewrite canary stays flat at 118 MiB to 4096 iterations. Prisma blog cover, 2026 brand, prism red Compute accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bun canary in production
+
+
+
+ The build that passed our tests
+
+
+
+
+
+ Peak RSS · Bun.S3File.arrayBuffer() loop in a 1 GiB container
+
+
+ 1.3.14+0d9b296af
+ stable · OOM-killed at iteration 96
+ over 900 MiB
+
+
+
+ 1.3.14-canary.1+172afa532
+ Rust rewrite · flat to 4096 iterations
+ 118 MiB
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/meta.png b/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/meta.png
index f4acd8333c..0975182e97 100644
Binary files a/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/meta.png and b/apps/blog/public/bun-rust-rewrite-prisma-compute/imgs/meta.png differ
diff --git a/apps/blog/public/claude-generated-50-websites-overnight-prisma-compute/imgs/hero.svg b/apps/blog/public/claude-generated-50-websites-overnight-prisma-compute/imgs/hero.svg
index 14e7c8cae3..77ccfa0e94 100644
--- a/apps/blog/public/claude-generated-50-websites-overnight-prisma-compute/imgs/hero.svg
+++ b/apps/blog/public/claude-generated-50-websites-overnight-prisma-compute/imgs/hero.svg
@@ -1,55 +1,184 @@
-
-
-
- Claude Generated 50 Websites Overnight. Prisma Compute Helped Ship Them.
- A three-step pipeline: claude, then Prisma Compute, ending in live URLs, under the headline 50 websites overnight.
+
+ Claude Generated 50 Websites Overnight. Prisma Compute Helped Ship Them.
+ Fifty small deployment tiles in a dense grid, one picked out in prism red, standing for the roughly 50 sites an agent generated overnight and deployed inside one Prisma app. Prisma blog cover, 2026 brand, prism red Compute accent.
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+ Deployed by an agent
-
- PRISMA COMPUTE CUSTOMER STORY
-
- 50 websites
- overnight
+
+ From generated code
+ to live URLs
- Claude generated them. Prisma Compute helped ship them.
+ spas in Vancouver, overnight
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+ ~50 sites · one Prisma app
- claude
- Prisma Compute
- live URLs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- Prisma
diff --git a/apps/blog/public/claude-generated-50-websites-overnight-prisma-compute/imgs/meta.png b/apps/blog/public/claude-generated-50-websites-overnight-prisma-compute/imgs/meta.png
index b027d5519c..c714a51846 100644
Binary files a/apps/blog/public/claude-generated-50-websites-overnight-prisma-compute/imgs/meta.png and b/apps/blog/public/claude-generated-50-websites-overnight-prisma-compute/imgs/meta.png differ
diff --git a/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/hero.svg b/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/hero.svg
index 045df4b584..d35a222f4f 100644
--- a/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/hero.svg
+++ b/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/hero.svg
@@ -1,498 +1,86 @@
-
-
\ No newline at end of file
+
+ Deploy Prisma Apps with create-prisma
+ An ink terminal card running bun create prisma@latest with a checklist of what the scaffold writes: prisma.compute.ts, Prisma Postgres, Prisma Skills, and a compute:deploy script. Prisma blog cover, 2026 brand, prism red Compute accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Scaffolding with create-prisma
+
+
+
+
+ From nothing to
+ a live URL
+
+
+ One command scaffolds the app,
+ the database, and the deploy config.
+
+
+
+
+
+
+ $ bun create prisma@latest
+
+
+ ✓ prisma.compute.ts
+ ✓ Prisma Postgres
+ ✓ Prisma Skills
+ ✓ compute:deploy script
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/meta.png b/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/meta.png
index 76de40e8fa..f04472f8b7 100644
Binary files a/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/meta.png and b/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/meta.png differ
diff --git a/apps/blog/public/data-migrations-in-prisma-next/imgs/hero.svg b/apps/blog/public/data-migrations-in-prisma-next/imgs/hero.svg
index 3a3dc8d329..533abdf4b6 100644
--- a/apps/blog/public/data-migrations-in-prisma-next/imgs/hero.svg
+++ b/apps/blog/public/data-migrations-in-prisma-next/imgs/hero.svg
@@ -1 +1,84 @@
-
\ No newline at end of file
+
+ Data Migrations in Prisma 8
+ A migration flow with a dataTransform step between two schema states: addColumn leaves displayName nullable, the transform backfills it, then setNotNull makes it required. Prisma blog cover, 2026 brand, prism cyan accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prisma 8 data migrations
+
+
+
+
+ Backfill inside
+ the migration
+
+
+
+
+
+
+ addColumn
+ displayName nullable
+
+
+
+
+ dataTransform
+ check: displayName is null
+ run: set "Anonymous"
+
+
+
+
+ setNotNull
+ displayName NOT NULL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/data-migrations-in-prisma-next/imgs/meta.png b/apps/blog/public/data-migrations-in-prisma-next/imgs/meta.png
index eecf034560..0a62fbf235 100644
Binary files a/apps/blog/public/data-migrations-in-prisma-next/imgs/meta.png and b/apps/blog/public/data-migrations-in-prisma-next/imgs/meta.png differ
diff --git a/apps/blog/public/drive-and-the-maker/imgs/hero.png b/apps/blog/public/drive-and-the-maker/imgs/hero.png
deleted file mode 100644
index 059a2ed904..0000000000
Binary files a/apps/blog/public/drive-and-the-maker/imgs/hero.png and /dev/null differ
diff --git a/apps/blog/public/drive-and-the-maker/imgs/hero.svg b/apps/blog/public/drive-and-the-maker/imgs/hero.svg
new file mode 100644
index 0000000000..11e6c2f380
--- /dev/null
+++ b/apps/blog/public/drive-and-the-maker/imgs/hero.svg
@@ -0,0 +1,70 @@
+
+ Drive and the Maker
+ An editorial cover: a pulled line from the essay, that when routine implementation is cheap, coordination and ritual become the expensive things, set in large type on paper with a soft three color prism wash. Prisma blog cover, 2026 brand, prism cyan accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Agentic engineering
+
+
+
+
+
+ When routine implementation is cheap,
+ coordination and ritual become
+ the expensive things.
+
+ Drive, a development process where AI agents execute alongside people.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/drive-and-the-maker/imgs/meta.png b/apps/blog/public/drive-and-the-maker/imgs/meta.png
index f29e20b6ed..f2243e7829 100644
Binary files a/apps/blog/public/drive-and-the-maker/imgs/meta.png and b/apps/blog/public/drive-and-the-maker/imgs/meta.png differ
diff --git a/apps/blog/public/evaluating-object-storage-providers-for-prisma-compute/imgs/hero.svg b/apps/blog/public/evaluating-object-storage-providers-for-prisma-compute/imgs/hero.svg
index 4809ddd038..b9154e25a6 100644
--- a/apps/blog/public/evaluating-object-storage-providers-for-prisma-compute/imgs/hero.svg
+++ b/apps/blog/public/evaluating-object-storage-providers-for-prisma-compute/imgs/hero.svg
@@ -1,59 +1,85 @@
-
-
-
- Tigris finished about 3x faster than Cloudflare R2 on the accelerated-fs workload
- Mixed read/write phase, 5 GiB dataset, averaged across six Prisma Compute regions. Cloudflare R2 finished in 861 seconds; Tigris finished in 266 seconds, about 3x faster. Lower is faster.
+
+ Evaluating Object Storage Providers for Prisma Compute
+ An evaluation matrix of three object stores on the criteria that separated them: egress price, bucket model, and read median for 10 KiB reads from Frankfurt. Tigris is the highlighted row. Prisma blog cover, 2026 brand, prism red Compute accent, no headline.
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
-
- OBJECT STORAGE ON PRISMA COMPUTE
-
- Tigris finished
- ~3x faster
- than Cloudflare R2
-
- 5 GiB mixed read/write, averaged across six Prisma Compute regions
+
+
+ Object storage benchmark
-
-
-
-
-
- Cloudflare R2
- 861s
-
-
-
-
-
- Tigris
- 266s
-
-
+
+
+
+
+
+ Provider
+ Egress
+ Bucket model
+ Read median
+
+
+
+
+
+
+ Tigris none one global bucket 14-18 ms
+ Cloudflare R2 none one per region 85 ms
+ AWS S3 $0.09/GB one per region 32 ms
+
+
+ 1,000 · 10 KiB reads from Frankfurt
- Prisma
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/evaluating-object-storage-providers-for-prisma-compute/imgs/meta.png b/apps/blog/public/evaluating-object-storage-providers-for-prisma-compute/imgs/meta.png
index 70ca9fdf2d..2621fae91e 100644
Binary files a/apps/blog/public/evaluating-object-storage-providers-for-prisma-compute/imgs/meta.png and b/apps/blog/public/evaluating-object-storage-providers-for-prisma-compute/imgs/meta.png differ
diff --git a/apps/blog/public/evolving-agentic-engineering-at-prisma/imgs/hero.svg b/apps/blog/public/evolving-agentic-engineering-at-prisma/imgs/hero.svg
index 8884508dbe..abf8e054f4 100644
--- a/apps/blog/public/evolving-agentic-engineering-at-prisma/imgs/hero.svg
+++ b/apps/blog/public/evolving-agentic-engineering-at-prisma/imgs/hero.svg
@@ -1,3 +1,96 @@
-
-
+
+ Evolving Agentic Engineering at Prisma
+ A before and after drawing: seven anonymous rows standing for the verbose skill layer a team ends up owning, beside three named contracts, spec, plan and execute, in prism cyan. Prisma blog cover, 2026 brand.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Agentic engineering, revisited
+
+
+
+
+ Not more process, more precise
+
+
+
+
+ A skill should define a contract, not narrate a process.
+
+
+
+
+ Opinionated skills
+
+ process design
+
+ skill wording
+
+ model assumptions
+
+ harness assumptions
+
+ evaluation surface
+
+ ongoing maintenance
+
+ obsolescence risk
+
+ Skills as interfaces
+
+ spec
+
+
+ plan
+
+ plan
+
+
+ milestone
+
+ diff
+
+
+ review
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/evolving-agentic-engineering-at-prisma/imgs/meta.png b/apps/blog/public/evolving-agentic-engineering-at-prisma/imgs/meta.png
index 762fb57976..57bdfc34a1 100644
Binary files a/apps/blog/public/evolving-agentic-engineering-at-prisma/imgs/meta.png and b/apps/blog/public/evolving-agentic-engineering-at-prisma/imgs/meta.png differ
diff --git a/apps/blog/public/from-local-to-production-with-prisma-postgres/imgs/hero.svg b/apps/blog/public/from-local-to-production-with-prisma-postgres/imgs/hero.svg
index dfb1c4d8bc..0b037c0762 100644
--- a/apps/blog/public/from-local-to-production-with-prisma-postgres/imgs/hero.svg
+++ b/apps/blog/public/from-local-to-production-with-prisma-postgres/imgs/hero.svg
@@ -1,74 +1,71 @@
-
-
-
- From Local Development to Production with Prisma Postgres
- A .env file swaps a local Postgres connection string for a hosted Prisma Postgres one; the app moves from local to production.
+
+ From Local Development to Production with Prisma Postgres
+ One env swap takes a Prisma app from local Postgres to hosted Prisma Postgres. Prisma blog cover, 2026 brand, prism yellow accent.
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+ Prisma Postgres
-
- PRISMA POSTGRES
-
- Local to
- production,
- one env swap
+
+ Local to production,
+ one env swap
-
-
- .env
-
-
- # local
- DATABASE_URL = "postgres://…@localhost:51214"
- # production
- DATABASE_URL = "postgres://…@pooled.db.prisma.io"
- DIRECT_URL = "postgres://…@db.prisma.io"
-
+
+
+
+ .env
+ # local
+ DATABASE_URL="postgres://…@localhost:51214"
+ # production
+ DATABASE_URL="postgres://…@db.prisma.io:5432"
-
-
-
-
-
-
-
- $_
- local
- prisma dev · Docker
-
-
-
-
- production
- Prisma Postgres
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- Prisma
-
diff --git a/apps/blog/public/from-local-to-production-with-prisma-postgres/imgs/meta.png b/apps/blog/public/from-local-to-production-with-prisma-postgres/imgs/meta.png
index e465c56a18..4652b4cc19 100644
Binary files a/apps/blog/public/from-local-to-production-with-prisma-postgres/imgs/meta.png and b/apps/blog/public/from-local-to-production-with-prisma-postgres/imgs/meta.png differ
diff --git a/apps/blog/public/give-your-agent-a-database/imgs/hero.svg b/apps/blog/public/give-your-agent-a-database/imgs/hero.svg
index 347535f50d..b35a1ede33 100644
--- a/apps/blog/public/give-your-agent-a-database/imgs/hero.svg
+++ b/apps/blog/public/give-your-agent-a-database/imgs/hero.svg
@@ -1,60 +1,75 @@
-
-
-
- Your AI Agent Needs a Database. Give It One in Five Seconds
- A terminal runs npx create-db --json and returns a Postgres connection string an agent can use immediately.
+
+ Your AI Agent Needs a Database. Give It One in Five Seconds
+ A flat three step provisioning flow: a coding agent runs npx create-db@latest --json and gets a real Prisma Postgres database at db.prisma.io that deletes itself after 24 hours. Prisma blog cover, 2026 brand, prism yellow accent, no headline.
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
-
-
- NPX CREATE-DB
-
- Give your agent
- a database
-
+
+
+ Ephemeral Prisma Postgres
-
-
-
-
-
-
- $ npx create-db --json
-
-
- {
- "success": true ,
- "connectionString":
- "postgres://…@db.prisma.io:5432",
- "deletionDate": "2026-07-10T08:22Z" ,
- "region": "us-east-1"
- }
-
-
-
- ready in 5 seconds, deletes itself in 24 hours
+
+
+
+ coding agent
+ Cursor, Codex, Claude Code
+ wants a clean database
+
+ npx create-db@latest --json
+ real PostgreSQL, no account
+ no Docker, no sign-up
+
+ db.prisma.io:5432
+ deletes itself after 24 hours
+ claim it to keep it, free
+
+
+
+
- Prisma
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/give-your-agent-a-database/imgs/meta.png b/apps/blog/public/give-your-agent-a-database/imgs/meta.png
index 4c4d63be57..123f758474 100644
Binary files a/apps/blog/public/give-your-agent-a-database/imgs/meta.png and b/apps/blog/public/give-your-agent-a-database/imgs/meta.png differ
diff --git a/apps/blog/public/gremlin-turning-open-tasks-into-pull-requests/imgs/hero.png b/apps/blog/public/gremlin-turning-open-tasks-into-pull-requests/imgs/hero.png
deleted file mode 100644
index 482d820190..0000000000
Binary files a/apps/blog/public/gremlin-turning-open-tasks-into-pull-requests/imgs/hero.png and /dev/null differ
diff --git a/apps/blog/public/gremlin-turning-open-tasks-into-pull-requests/imgs/hero.svg b/apps/blog/public/gremlin-turning-open-tasks-into-pull-requests/imgs/hero.svg
new file mode 100644
index 0000000000..23736eebec
--- /dev/null
+++ b/apps/blog/public/gremlin-turning-open-tasks-into-pull-requests/imgs/hero.svg
@@ -0,0 +1,86 @@
+
+ Gremlin: turning open tasks into pull requests
+ A pipeline: Sentry issues, Linear tasks and Slack threads fan into one chain, gather context, sandbox, validate, and end in an Open PR tile marked in prism cyan. Prisma blog cover, 2026 brand.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gremlin, an autonomous agent
+
+
+
+
+ The pull request is the interface
+
+
+
+
+
+
+ Sentry issue
+
+ Linear task
+
+ Slack thread
+
+
+
+
+
+
+
+ Gather context
+
+ Sandbox
+
+ Validate
+
+ Open PR
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/gremlin-turning-open-tasks-into-pull-requests/imgs/meta.png b/apps/blog/public/gremlin-turning-open-tasks-into-pull-requests/imgs/meta.png
new file mode 100644
index 0000000000..9f27f60b7f
Binary files /dev/null and b/apps/blog/public/gremlin-turning-open-tasks-into-pull-requests/imgs/meta.png differ
diff --git a/apps/blog/public/how-prisma-build-with-agentic-ai/imgs/hero.svg b/apps/blog/public/how-prisma-build-with-agentic-ai/imgs/hero.svg
new file mode 100644
index 0000000000..e3e9ac61a2
--- /dev/null
+++ b/apps/blog/public/how-prisma-build-with-agentic-ai/imgs/hero.svg
@@ -0,0 +1,68 @@
+
+ Agentic Engineering: How Prisma Builds with AI
+ An ink prompt card holding the three questions the post says engineers ask of an agent, with the operative line, how can I set it up to succeed, marked in prism cyan. Prisma blog cover, 2026 brand.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Agentic engineering
+
+
+
+
+
+ >
+ what can this do
+ >
+ where does it fail
+ >
+ how can I set it up to succeed
+
+
+
+
+ A failure is signal,
+ not proof
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/how-prisma-build-with-agentic-ai/imgs/meta.png b/apps/blog/public/how-prisma-build-with-agentic-ai/imgs/meta.png
index 59b88b9ad0..08894dd5d4 100644
Binary files a/apps/blog/public/how-prisma-build-with-agentic-ai/imgs/meta.png and b/apps/blog/public/how-prisma-build-with-agentic-ai/imgs/meta.png differ
diff --git a/apps/blog/public/how-to-use-ai-safely-and-responsibly/imgs/hero.png b/apps/blog/public/how-to-use-ai-safely-and-responsibly/imgs/hero.png
deleted file mode 100644
index 18e14b770a..0000000000
Binary files a/apps/blog/public/how-to-use-ai-safely-and-responsibly/imgs/hero.png and /dev/null differ
diff --git a/apps/blog/public/how-to-use-ai-safely-and-responsibly/imgs/hero.svg b/apps/blog/public/how-to-use-ai-safely-and-responsibly/imgs/hero.svg
new file mode 100644
index 0000000000..782135bb27
--- /dev/null
+++ b/apps/blog/public/how-to-use-ai-safely-and-responsibly/imgs/hero.svg
@@ -0,0 +1,80 @@
+
+ How to Use AI Safely and Responsibly
+ A guardrail policy card pairing scoped permissions the post allows, bash(npm test), repo:read and /sandbox, against the broad grants it refuses, bash(*), admin:org and skipping permissions. Prisma blog cover, 2026 brand, prism cyan accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Security baseline
+
+
+
+
+ Your agent runs with
+ your permissions
+
+
+
+
+
+
+
+ allowed
+ refused
+
+ bash(npm test)
+
+ bash(*)
+
+ repo:read
+
+ admin:org
+
+ /sandbox
+
+ --dangerously-skip-permissions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/how-to-use-ai-safely-and-responsibly/imgs/meta.png b/apps/blog/public/how-to-use-ai-safely-and-responsibly/imgs/meta.png
new file mode 100644
index 0000000000..45b4f9bd8f
Binary files /dev/null and b/apps/blog/public/how-to-use-ai-safely-and-responsibly/imgs/meta.png differ
diff --git a/apps/blog/public/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/hero.svg b/apps/blog/public/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/hero.svg
index b4db9e4638..1f6561346d 100644
--- a/apps/blog/public/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/hero.svg
+++ b/apps/blog/public/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/hero.svg
@@ -1,74 +1,74 @@
How One Founder Builds a Live Sports Platform Without a Database Team
- A Prisma customer story cover for Xeito, showing one founder building a live sports platform while Prisma handles database defaults.
+ A typographic quote card: Gabriel Gil Graña of Xeito on wanting to spend his time creating features instead of managing memory, pool connections, storage limits, replicas and backups. Prisma blog cover, 2026 brand, prism yellow accent.
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
- CUSTOMER STORY
- One founder.
- Live sports
- platform.
- Xeito keeps shipping product work.
- Prisma handles database defaults.
+
+
+
+
+
-
-
- Xeito product work
+
+
+ Xeito, live sports platform
+
-
-
-
- Features
- leagues.live
- payments
- standings
- ai.coach
-
+
+
+
-
-
- Prisma defaults
- schema → migrations → types
-
+ “
+ I really wanted to spend time creating features
+
+ and not having to deal with memory, pool connections,
+ storage limits, replicas, backups.”
+
-
-
+
+ Gabriel Gil Graña
+ Founder, Xeito
- Prisma
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/meta.png b/apps/blog/public/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/meta.png
index 02d50a113f..89ed0fa553 100644
Binary files a/apps/blog/public/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/meta.png and b/apps/blog/public/how-xeito-builds-features-not-database-infrastructure-with-prisma/imgs/meta.png differ
diff --git a/apps/blog/public/image-transformations-with-bun-on-prisma-compute/imgs/hero.svg b/apps/blog/public/image-transformations-with-bun-on-prisma-compute/imgs/hero.svg
index 38a03648c1..0df3214ab4 100644
--- a/apps/blog/public/image-transformations-with-bun-on-prisma-compute/imgs/hero.svg
+++ b/apps/blog/public/image-transformations-with-bun-on-prisma-compute/imgs/hero.svg
@@ -1 +1,94 @@
-Image Transformations with Bun on Prisma Compute Request-time image pipeline from source to Bun.Image to WebP on Prisma Compute. PRISMA COMPUTE Image transforms as app logic Request-time image pipeline input source native Bun.Image output webp Prisma
\ No newline at end of file
+
+ Image Transformations with Bun on Prisma Compute
+ A request-time pipeline of three tiles: chair.jpg requested with w=640 and q=75, transformed by Bun.Image into webp, and returned as chair.webp cached immutable for a year. Prisma blog cover, 2026 brand, prism red Compute accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Image transforms on Bun
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ chair.jpg
+ Bun.Image
+ chair.webp
+ ?w=640&q=75
+ resize · webp
+ immutable, 1 year
+
+
+
+
+
+ Image transforms are
+ just app logic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/image-transformations-with-bun-on-prisma-compute/imgs/meta.png b/apps/blog/public/image-transformations-with-bun-on-prisma-compute/imgs/meta.png
index 11528e0698..aae98af52a 100644
Binary files a/apps/blog/public/image-transformations-with-bun-on-prisma-compute/imgs/meta.png and b/apps/blog/public/image-transformations-with-bun-on-prisma-compute/imgs/meta.png differ
diff --git a/apps/blog/public/infraslopture-and-other-paradoxes/imgs/hero.svg b/apps/blog/public/infraslopture-and-other-paradoxes/imgs/hero.svg
index aa6fd74cb3..6ab7611df0 100644
--- a/apps/blog/public/infraslopture-and-other-paradoxes/imgs/hero.svg
+++ b/apps/blog/public/infraslopture-and-other-paradoxes/imgs/hero.svg
@@ -1,59 +1,74 @@
-
-
- Infraslopture and Other Paradoxes
- A terminal where a prompt asking for reproducible server configurations resolves into a checklist of NixOS, colmena, sops-nix, Incus, and Tailscale.
+
+ Infraslopture and Other Paradoxes
+ Untrustable agents meeting production infrastructure: a reproducible-config checklist. Prisma blog cover, 2026 brand, prism red accent.
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+ Agentic engineering
-
- AGENTIC ENGINEERING
-
- Infraslopture
- and other paradoxes
+
+ Infraslopture,
+ and other paradoxes
+ Untrustable agents, production infrastructure, no burned-down servers.
-
-
-
-
-
- > i need reproducible server configs
-
-
-
-
- NixOS + flakes
-
-
-
- colmena + sops-nix
-
-
-
- Incus + Tailscale
-
+
+
+
+ > i need reproducible server configs
+ ✓
+ NixOS + flakes
+ ✓
+ colmena + sops-nix
+ ✓
+ Incus + Tailscale
- Prisma
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/infraslopture-and-other-paradoxes/imgs/meta.png b/apps/blog/public/infraslopture-and-other-paradoxes/imgs/meta.png
index 07f25dc6da..b0ae05df68 100644
Binary files a/apps/blog/public/infraslopture-and-other-paradoxes/imgs/meta.png and b/apps/blog/public/infraslopture-and-other-paradoxes/imgs/meta.png differ
diff --git a/apps/blog/public/introducing-create-prisma/imgs/hero.png b/apps/blog/public/introducing-create-prisma/imgs/hero.png
deleted file mode 100644
index 2e48d60706..0000000000
Binary files a/apps/blog/public/introducing-create-prisma/imgs/hero.png and /dev/null differ
diff --git a/apps/blog/public/introducing-create-prisma/imgs/hero.svg b/apps/blog/public/introducing-create-prisma/imgs/hero.svg
new file mode 100644
index 0000000000..275ffa9fd7
--- /dev/null
+++ b/apps/blog/public/introducing-create-prisma/imgs/hero.svg
@@ -0,0 +1,83 @@
+
+ Introducing Create-Prisma: Start a Prisma App With One Command
+ An ink terminal card running npm create prisma at latest, with a checklist of what the CLI generates: a Prisma schema, a seed file, prisma.config.ts, a dotenv file with DATABASE_URL, and the database scripts. Prisma blog cover, 2026 brand, prism cyan accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create-prisma
+
+
+
+
+ Every framework,
+ the same setup
+
+ Templates for Next.js, Nuxt, Hono, and more.
+
+
+
+
+
+ $ npm create prisma@latest
+
+
+
+ ✓
+ prisma/schema.prisma
+ ✓
+ prisma/seed.ts
+ ✓
+ prisma.config.ts
+ ✓
+ .env with DATABASE_URL
+ ✓
+ db:generate, db:migrate, db:seed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/introducing-create-prisma/imgs/meta.png b/apps/blog/public/introducing-create-prisma/imgs/meta.png
index 457abfe666..90bfdc0d2b 100644
Binary files a/apps/blog/public/introducing-create-prisma/imgs/meta.png and b/apps/blog/public/introducing-create-prisma/imgs/meta.png differ
diff --git a/apps/blog/public/launching-prisma-compute-public-beta/imgs/hero.png b/apps/blog/public/launching-prisma-compute-public-beta/imgs/hero.png
index 33d382d51c..fdc68fa8db 100644
Binary files a/apps/blog/public/launching-prisma-compute-public-beta/imgs/hero.png and b/apps/blog/public/launching-prisma-compute-public-beta/imgs/hero.png differ
diff --git a/apps/blog/public/launching-prisma-compute-public-beta/imgs/hero.svg b/apps/blog/public/launching-prisma-compute-public-beta/imgs/hero.svg
new file mode 100644
index 0000000000..dc1211171f
--- /dev/null
+++ b/apps/blog/public/launching-prisma-compute-public-beta/imgs/hero.svg
@@ -0,0 +1,80 @@
+
+ Launching Prisma Compute in Public Beta
+ Prisma Compute public beta: TypeScript app hosting on the same infrastructure as your database. Prisma blog cover, 2026 brand, prism red accent with the prism-stripe launch motif.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prisma Compute · Public beta
+
+
+
+
+ Your app, hosted
+ next to its database
+
+ TypeScript app hosting on the same infrastructure as your data.
+
+
+
+
+
+ $ prisma app deploy
+ ✓ build · 12s
+ ✓ database connected
+ → live
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/launching-prisma-compute-public-beta/imgs/meta.png b/apps/blog/public/launching-prisma-compute-public-beta/imgs/meta.png
index bb2b5ccbb8..fdc68fa8db 100644
Binary files a/apps/blog/public/launching-prisma-compute-public-beta/imgs/meta.png and b/apps/blog/public/launching-prisma-compute-public-beta/imgs/meta.png differ
diff --git a/apps/blog/public/logo/full-color-white.svg b/apps/blog/public/logo/full-color-white.svg
new file mode 100644
index 0000000000..cdca28ebdd
--- /dev/null
+++ b/apps/blog/public/logo/full-color-white.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/logo/full-color.svg b/apps/blog/public/logo/full-color.svg
new file mode 100644
index 0000000000..5945912315
--- /dev/null
+++ b/apps/blog/public/logo/full-color.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/logo/prisma-footer-black.svg b/apps/blog/public/logo/prisma-footer-black.svg
new file mode 100644
index 0000000000..56293264a0
--- /dev/null
+++ b/apps/blog/public/logo/prisma-footer-black.svg
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/logo/prisma-footer-color.svg b/apps/blog/public/logo/prisma-footer-color.svg
new file mode 100644
index 0000000000..b54c20465d
--- /dev/null
+++ b/apps/blog/public/logo/prisma-footer-color.svg
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/make-your-docs-agent-ready/imgs/hero.svg b/apps/blog/public/make-your-docs-agent-ready/imgs/hero.svg
index 10abab986c..29fc3c90c1 100644
--- a/apps/blog/public/make-your-docs-agent-ready/imgs/hero.svg
+++ b/apps/blog/public/make-your-docs-agent-ready/imgs/hero.svg
@@ -1,100 +1,80 @@
-
-
-
- How to Make Your Docs Agent-Ready
- Prisma blog cover. A row of four document tiles, llms.txt highlighted in teal, then a markdown page, skill.md, and the .well-known MCP discovery document, under the headline "Make your docs agent-ready".
-
+
+ How to Make Your Docs Agent-Ready
+ An ink panel listing the Prisma docs endpoints an agent fetches: the split llms.txt index at 7 KB, per-area indexes, llms-full.txt at 4.5 MB, skill.md and the MCP discovery document. Prisma blog cover, 2026 brand, prism cyan accent.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
-
-
- DOCS FOR CODING AGENTS
+
+
+ Agent-ready docs
-
- Make your docs
- agent-ready
+
+ Small enough to
+ survive one fetch
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { }
-
-
-
- llms.txt
- postgres.md
- skill.md
- .well-known/mcp
-
+
+ 116,000 characters down to 7,000.
+
+
+
+
+
+ agent endpoints
+
+
+
+ /docs/llms.txt
+ 7 KB
+ /docs/llms/orm.txt
+ /docs/llms/orm-v6.txt
+ 37 KB
+ /docs/llms/postgres.txt
+ /docs/llms-full.txt
+ 4.5 MB
+ /skill.md
+ /.well-known/mcp
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/make-your-docs-agent-ready/imgs/meta.png b/apps/blog/public/make-your-docs-agent-ready/imgs/meta.png
index e0261cbe1d..6f168c8474 100644
Binary files a/apps/blog/public/make-your-docs-agent-ready/imgs/meta.png and b/apps/blog/public/make-your-docs-agent-ready/imgs/meta.png differ
diff --git a/apps/blog/public/mongodb-without-compromise/imgs/hero.svg b/apps/blog/public/mongodb-without-compromise/imgs/hero.svg
index 4624c8ebf6..18e113685b 100644
--- a/apps/blog/public/mongodb-without-compromise/imgs/hero.svg
+++ b/apps/blog/public/mongodb-without-compromise/imgs/hero.svg
@@ -1 +1,91 @@
-
\ No newline at end of file
+
+ MongoDB Without Compromise
+ Data shape drawing: an untyped MongoDB document beside the Prisma 8 contract that types it, including the embedded Address type. Prisma blog cover, 2026 brand, prism cyan accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prisma 8 and MongoDB
+
+
+
+ Typed all the way down
+
+
+
+
+ MongoDB document
+
+
+ {
+ _id: ObjectId
+ name: "Alice Chen"
+ email: "alice@example.com"
+ address: { street, city }
+ }
+
+
+
+
+
+
+
+ Prisma 8 contract
+
+
+ model User {
+ id ObjectId @id @map("_id")
+ name String
+ email String
+ address Address?
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/mongodb-without-compromise/imgs/meta.png b/apps/blog/public/mongodb-without-compromise/imgs/meta.png
index aaf5e3e604..56c204bcc3 100644
Binary files a/apps/blog/public/mongodb-without-compromise/imgs/meta.png and b/apps/blog/public/mongodb-without-compromise/imgs/meta.png differ
diff --git a/apps/blog/public/object-store-buckets/imgs/hero.svg b/apps/blog/public/object-store-buckets/imgs/hero.svg
index f17aa8e9c6..c126761931 100644
--- a/apps/blog/public/object-store-buckets/imgs/hero.svg
+++ b/apps/blog/public/object-store-buckets/imgs/hero.svg
@@ -1,85 +1,81 @@
-
-
-
- Your AI Agent Needs File Storage. Now It Can Get Its Own
- An agent chip issues two Management API calls that create a bucket and mint a key, then writes hello/first-upload.txt, 44 bytes, into the bucket.
+
+ Your AI Agent Needs File Storage. Now It Can Get Its Own
+ Object Store buckets: two Management API calls take an agent from nothing to reading and writing files. Prisma blog cover, 2026 brand, prism yellow accent.
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
-
-
- OBJECT STORE BUCKETS
+
+
+ Object Store
- Your agent can provision
- file storage now
+
+ Your agent gets
+ its own file storage
+
+ S3-compatible buckets on every Prisma project, two API calls away.
-
-
-
- agent
-
-
-
-
- uploads
- bkt_ic7y0a24
-
+
+
+
+ agent
+ needs files
-
-
- POST /v1/buckets
- ready
+ →
-
- POST /v1/buckets/:id/keys
- read_write
+
+ Management API
+ 2 calls
-
-
-
- hello/first-upload.txt
- 44 bytes
+ →
-
- S3-compatible · any client · keys scoped read / read_write
+
+ bucket
+ read · write
-
- Prisma
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/object-store-buckets/imgs/meta.png b/apps/blog/public/object-store-buckets/imgs/meta.png
index 27d6d9cace..067e95b92b 100644
Binary files a/apps/blog/public/object-store-buckets/imgs/meta.png and b/apps/blog/public/object-store-buckets/imgs/meta.png differ
diff --git a/apps/blog/public/postgres-bloom-index-the-overlooked-postgres-feature/imgs/bloom-filters-in-postgres.png b/apps/blog/public/postgres-bloom-index-the-overlooked-postgres-feature/imgs/bloom-filters-in-postgres.png
deleted file mode 100644
index cb1c5c9d03..0000000000
Binary files a/apps/blog/public/postgres-bloom-index-the-overlooked-postgres-feature/imgs/bloom-filters-in-postgres.png and /dev/null differ
diff --git a/apps/blog/public/postgres-bloom-index-the-overlooked-postgres-feature/imgs/hero.svg b/apps/blog/public/postgres-bloom-index-the-overlooked-postgres-feature/imgs/hero.svg
new file mode 100644
index 0000000000..42fd7553e6
--- /dev/null
+++ b/apps/blog/public/postgres-bloom-index-the-overlooked-postgres-feature/imgs/hero.svg
@@ -0,0 +1,130 @@
+
+ Bloom Filters in Postgres: The Index Type Most Developers Overlook
+ Probabilistic set drawing: the item alice hashed by fnv1a, djb2 and murmur3, setting bits 2, 7 and 11 of a sixteen bit array. Prisma blog cover, 2026 brand, prism yellow accent, no headline.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ item
+
+ "alice"
+
+
+
+
+
+
+
+
+
+
+ fnv1a
+
+ djb2
+
+ murmur3
+
+
+
+
+
+
+
+
+
+
+
+
+ 16 bits
+
+
+ 0
+
+ 0
+
+ 1
+
+ 0
+
+ 0
+
+ 0
+
+ 0
+
+ 1
+
+ 0
+
+ 0
+
+ 0
+
+ 1
+
+ 0
+
+ 0
+
+ 0
+
+ 0
+
+
+ 2
+ 7
+ 11
+
+
+
+ one bloom signature per row
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/postgres-bloom-index-the-overlooked-postgres-feature/imgs/meta.png b/apps/blog/public/postgres-bloom-index-the-overlooked-postgres-feature/imgs/meta.png
new file mode 100644
index 0000000000..a59a00fb10
Binary files /dev/null and b/apps/blog/public/postgres-bloom-index-the-overlooked-postgres-feature/imgs/meta.png differ
diff --git a/apps/blog/public/price-the-work-not-the-workflow/imgs/hero.png b/apps/blog/public/price-the-work-not-the-workflow/imgs/hero.png
deleted file mode 100644
index dcb14afad2..0000000000
Binary files a/apps/blog/public/price-the-work-not-the-workflow/imgs/hero.png and /dev/null differ
diff --git a/apps/blog/public/price-the-work-not-the-workflow/imgs/hero.svg b/apps/blog/public/price-the-work-not-the-workflow/imgs/hero.svg
new file mode 100644
index 0000000000..e73d4b5901
--- /dev/null
+++ b/apps/blog/public/price-the-work-not-the-workflow/imgs/hero.svg
@@ -0,0 +1,96 @@
+
+ Price the Work, Not the Workflow
+ Four meters priced separately, one per kind of consumption: requests, provisioned memory, active CPU and outbound bandwidth, with deploys, previews, retries, seats and idle time struck out as not billed. Prisma blog cover, 2026 brand, prism red accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prisma Compute pricing
+
+
+
+ One meter per kind of work
+
+
+
+
+
+
+
+
+
+
+
+
+ Requests
+ $1.00
+ per 1M
+
+ Provisioned memory
+ $0.006
+ per GB-hour
+
+ Active CPU
+ $0.064
+ per vCPU-hour
+
+ Outbound bandwidth
+ $0.025
+ per GB
+
+
+
+ deploys, previews, retries, seats, idle time
+
+ not billed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/price-the-work-not-the-workflow/imgs/meta.png b/apps/blog/public/price-the-work-not-the-workflow/imgs/meta.png
new file mode 100644
index 0000000000..072db6b251
Binary files /dev/null and b/apps/blog/public/price-the-work-not-the-workflow/imgs/meta.png differ
diff --git a/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/hero-fed37f83921ceeba6d0395d774c48ae9d5b68dcc-844x474-7cca11ee09.png b/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/hero-fed37f83921ceeba6d0395d774c48ae9d5b68dcc-844x474-7cca11ee09.png
deleted file mode 100644
index 6150d03403..0000000000
Binary files a/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/hero-fed37f83921ceeba6d0395d774c48ae9d5b68dcc-844x474-7cca11ee09.png and /dev/null differ
diff --git a/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/hero.svg b/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/hero.svg
new file mode 100644
index 0000000000..09a8040447
--- /dev/null
+++ b/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/hero.svg
@@ -0,0 +1,76 @@
+
+ Prisma 7 AMA: Clearing Up the Why Behind the Changes
+ A typographic question and answer from the Prisma 7 AMA: is Prisma 7 faster or slower than Prisma 6, answered with the line that it depends heavily on how you measure performance, with the operative phrase set in prism cyan. Prisma blog cover, 2026 brand, prism cyan accent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prisma 7 AMA
+
+
+
+
+
+ Q.
+
+ Prisma 7 vs Prisma 6 performance:
+ is it faster or slower?
+
+
+
+
+
+
+ A.
+
+ This depends heavily on
+ how you measure performance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/meta-64c44281ee8d3e0fe5e7e9bbd309603e5496945d-1266x711-26d35e93c9.png b/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/meta-64c44281ee8d3e0fe5e7e9bbd309603e5496945d-1266x711-26d35e93c9.png
deleted file mode 100644
index 735886ab0c..0000000000
Binary files a/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/meta-64c44281ee8d3e0fe5e7e9bbd309603e5496945d-1266x711-26d35e93c9.png and /dev/null differ
diff --git a/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/meta.png b/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/meta.png
new file mode 100644
index 0000000000..99bca91ad8
Binary files /dev/null and b/apps/blog/public/prisma-7-ama-clearing-up-the-why-behind-the-changes/imgs/meta.png differ
diff --git a/apps/blog/public/prisma-compute-config-file/imgs/hero.svg b/apps/blog/public/prisma-compute-config-file/imgs/hero.svg
index 521918cefa..7478628352 100644
--- a/apps/blog/public/prisma-compute-config-file/imgs/hero.svg
+++ b/apps/blog/public/prisma-compute-config-file/imgs/hero.svg
@@ -1,504 +1,79 @@
-
-