Skip to content

Prisma 8 + Supabase: blog post and extension docs guide - #8131

Draft
ankur-arch wants to merge 21 commits into
mainfrom
ankur/prisma-8-supabase-blog-guide
Draft

ankur-arch wants to merge 21 commits into
mainfrom
ankur/prisma-8-supabase-blog-guide

Conversation

@ankur-arch

Copy link
Copy Markdown
Contributor

TL;DR

Adds the Prisma 8 + Supabase launch content: the blog post ("Your Supabase RLS policies and auth.users, in your Prisma contract", authors Will + Ankur, with cover images) and the orm/next/extensions/supabase docs guide. Every command and code block was executed against a real hosted Supabase project and deployed to Prisma Compute before being written down. Draft until launch coordination (publish date + public example repo link).

What's in the PR

  • apps/blog/content/blog/prisma-8-supabase-rls-and-auth/index.mdx + hero.svg/meta.png (Eclipse house style, official Prisma + Supabase logos)
  • apps/docs/content/docs/orm/next/extensions/supabase.mdx + registration in the extensions meta.json

Evidence behind the content

  • Example app (contract with @@rls + 4 policies, supabase:auth.AuthUser FK, Hono API) built with prisma-next@0.17.0, @prisma/orm-postgres@0.17.0, @prisma/orm-extension-supabase@0.17.0
  • 15/15 vitest acceptance tests against hosted Supabase (owner-scoped reads/writes, forged-owner rejected, anon denied, cross-user updates 0 rows, service-role bypass, FK integrity + cascade, JWT rejection), re-verified from a fresh clone
  • Deployed to Prisma Compute (live 7.2s); RLS behavior re-verified over HTTP against the deployed URL
  • Known upstream defect surfaced honestly in both documents: db verify fails against current hosted Supabase projects: extension contract declares storage.iceberg_* tables that no longer exist orm#29896 (db verify fails on current hosted projects due to extension storage-contract drift; workaround --marker-only)

Conventions

  • Product named Prisma 8 throughout; real package names recorded (prisma@next does not exist)
  • No em dashes; Early Access framing per the locked positioning; Compute qualified as public beta
  • Docs guide follows the docs-writer skill (numbered steps, verify blocks, troubleshooting, agent prompt); one flagged deviation: the skill reference still says "Prisma Next", overridden by the Prisma 8 naming decision

Before merge

  • Set the real publish date in the blog frontmatter
  • Replace the TODO before publish comment with the public example repo link
  • Coordinate with the Prisma 8 launch train (this content references 0.17.0 as current)

🤖 Generated with Claude Code

Blog: prisma-8-supabase-rls-and-auth (Will + Ankur), covering RLS policies
in the Prisma contract and the supabase:auth.AuthUser cross-space FK, with
hero/meta cover images. Docs: orm/next/extensions/supabase guide following
the docs-writer conventions. All code executed against a real hosted
Supabase project and deployed to Prisma Compute; see the test evidence in
the PR description.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
blog Error Error Sep 15, 2026 10:13am UTC
docs Error Error Sep 15, 2026 10:13am UTC
eclipse Ready Ready Preview Sep 15, 2026 10:13am UTC
site Ready Ready Preview Sep 15, 2026 10:13am UTC

Request Review

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

🍈 Lychee Link Check Report

10 links: ✅ 8 OK | 🚫 0 errors | 🔀 4 redirects | 👻 2 excluded

✅ All links are working!


Full Statistics Table
Status Count
✅ Successful 8
🔀 Redirected 4
👻 Excluded 2
🚫 Errors 0
⛔ Unsupported 0
⏳ Timeouts 0
❓ Unknown 0

@argos-ci

argos-ci Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Argos notifications ↗︎

Awaiting the start of a new Argos build…

Blog: new benefit-led title, pain-first opening, schema and policy in the
first third, one policy shown in full, before/after and request-flow
diagrams, Compute/versions/test-report sections cut.

Docs: replace unsupported 'terminal' code fence language with 'bash'
(broke the Shiki-based docs build and every downstream docs check) and
add the new page's SQL catalog terms plus PostgREST to cspell.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread apps/docs/content/docs/orm/next/extensions/supabase.mdx Outdated
Pyramid-principle pass: RC1 framing throughout with a feedback CTA,
sections renamed to reader takeaways, connected prose instead of
fragments, proof section removed, limitations reframed around
supported scenarios.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Restructure in the Turborepo-guide style: what-you'll-learn list,
connection details collected up front, numbered steps with expected
output after each command, plain-language explanations of the auth
relation, @@rls, and policy blocks, and a verification step. RC1
framing replaces Early Access copy; jargon (contract space, facade,
secondary root) replaced with plain terms.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Validated the full guide against a fresh hosted Supabase project on
prisma@next (rc.6 CLI + rc.4 extension): scaffold, extension config,
session pooler connection, contract emit, migration plan + migrate
(policy hash names and auth.users FK match the published SQL), all six
RLS behavior checks (owner-scoped select with no filter, zero-row
cross-user update, WITH CHECK rejection of forged inserts, empty anon
reads, service_role bypass), and the db verify storage.iceberg known
issue with --marker-only as the workaround.

Only divergence found: the extension snapshot lands in
migrations/snapshots/ referenced from migrations/supabase/, and the app
migration in migrations/app/, so the step-7 bullet now says to commit
the whole migrations directory.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…one idea per paragraph

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ankur-arch and others added 2 commits August 28, 2026 14:41
…over; guide on db migrate

- Blog: lead with the one-file authorization model, show three concrete supabase-js
  failure modes (service-role .eq, hand-written policy SQL, separate type generation),
  then the Prisma 8 answer with a live 7-check RLS run against a fresh Supabase project.
- Commands moved to npx prisma@latest (8.0.0-rc.12): migrate -> db migrate,
  migration ref set db for follow-up plans.
- Guide: same command updates, runnable src/check.ts, PLAN_ORIGIN_UNKNOWN troubleshooting,
  /orm/extensions paths after the main merge.
- Cover regenerated in the 2026 brand: paper surface, prism cyan accent, prism mark +
  Supabase tiles, ink code card, full-color lockup sign-off.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KQCq52DbjW5rnYPEBTjaJv
ankur-arch and others added 2 commits September 7, 2026 22:52
…on rc.13

Blog: restructure value-first (what you get, schema legend, three commands,
no-filter query, six-line check output), add "If you use supabase-js today"
with three comparisons each citing verified Supabase GitHub issues, a
side-by-side table, and name Edge Functions as staying on supabase-js.
Link the RLS issue at its new prisma/orm URL.

Guide: use `db migrate --advance-ref db` from the first migrate (it creates
the db ref, so manual `ref set` is gone), extend the check script to six
checks, drop the stale "npx prisma == npx prisma@latest" claim, add the
column-before-policy drop-order gotcha to troubleshooting.

Every command and output re-run against a fresh Supabase project on
prisma@latest 8.0.0-rc.13 / extension rc.8.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y2EHLWBJnNdder935Hwaat
…he supabase-js comparison

Cites the highest-reaction supabase-js and postgrest-js threads for each problem
(client-side transactions, Json type depth, to-one join typing, insert types,
timestamptz as Date, BigInt, throwOnError) and extends the side-by-side table.
Style pass over the rest of the post: fewer contrast slogans and absolutes,
split the semicolon-joined limitations sentence.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ap, smooth prose

The demo's Enforce step now renders the policy_select block from the schema
(highlighted with the Prisma 8 grammar) instead of the CREATE POLICY SQL.
The code column gets the wider grid share and scrolls long lines instead of
overlapping the captions. Prose pass joins the short chopped sentences from
the last revision into longer ones.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Resolves: extensions meta.json keeps main's new index page and adds supabase;
docs package.json takes shiki from the catalog; lockfile regenerated from main.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant