Skip to content

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

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

Prisma 8 + Supabase: blog post and extension docs guide#8131
ankur-arch wants to merge 11 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 prisma#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 (UTC)
blog Ready Ready Preview Aug 6, 2026 11:31pm
docs Ready Ready Preview Aug 6, 2026 11:31pm
eclipse Ready Ready Preview Aug 6, 2026 11:31pm
site Ready Ready Preview Aug 6, 2026 11:31pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 1bc8b8cb-3452-489a-a421-f7783174ed47

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

9 links: ✅ 7 OK | 🚫 0 errors | 🔀 4 redirects | 👻 2 excluded

✅ All links are working!


Full Statistics Table
Status Count
✅ Successful 7
🔀 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 ↗︎

Build Status Details Updated (UTC)
default (Inspect) ✅ No changes detected - Aug 6, 2026, 11:41 PM

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>

The CLI builds locally, uploads, and prints a live URL. Environment values from `.env` are configured through the deploy per the config's `env` field and never land in your repository. Because enforcement lives in Postgres, the deployed app preserves the exact RLS behavior you tested locally; re-run your curl checks against the live URL to confirm.

## Reading auth.users for admin work

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Reading auth.users for admin work
## Reading `auth.users` for admin work

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add backticks for things that represent code/or a part of.

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>
Remount the code block when the snippet language changes so codehike's
token transitions only run between same-language steps; the ts->sql
transition locked the main thread. Shorten contract-graph comments
that clipped at desktop card width.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Open with the migration-hunt pain and the schema as the answer, move
generated SQL after the schema as an implementation detail, drop
Prisma-history framing and negative migration language, reframe the
contrast graph as Supabase today vs Prisma 8, and weave the AI-agent
angle into the story.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Restructure the opening per the DevRel storytelling pass: show the
policy-next-to-model payoff first, then walk through today's migration
hunt, then unpack the schema one idea at a time.

Co-Authored-By: Claude Fable 5 <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