Skip to content

feat: add pn ea blog#7902

Open
ankur-arch wants to merge 8 commits into
mainfrom
pn-ea
Open

feat: add pn ea blog#7902
ankur-arch wants to merge 8 commits into
mainfrom
pn-ea

Conversation

@ankur-arch
Copy link
Copy Markdown
Contributor

@ankur-arch ankur-arch commented May 18, 2026

Summary by CodeRabbit

  • Documentation
    • Published an announcement for Prisma Next Early Access covering contract-driven data layers, agent-guided type-safe query iteration, automated TypeScript migration workflows, multi-branch migration conflict handling, environment-specific contract/version tracking, upgrade recipes, try-it-out instructions, and Early Access for Postgres and MongoDB.
  • New Features
    • Blog now supports embedded video content and includes an autoplaying, looping YouTube embed with thumbnail overlay and non-interactive iframe behavior; MDX video sources are resolved under the blog base path.

Review Change Stack

@vercel
Copy link
Copy Markdown

vercel Bot commented May 18, 2026

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

Project Deployment Actions Updated (UTC)
blog Ready Ready Preview, Comment May 19, 2026 11:02am
docs Ready Ready Preview, Comment May 19, 2026 11:02am
eclipse Ready Ready Preview, Comment May 19, 2026 11:02am
site Ready Ready Preview, Comment May 19, 2026 11:02am

Request Review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 18, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds a new MDX announcement for Prisma Next Early Access (full frontmatter, technical narrative, and “Try it out”), introduces a client AutoplayYoutubeEmbed component, and registers MDX media mappings including a video component that rewrites video src under the blog base path.

Changes

Blog Post: Prisma Next Early Access Announcement

Layer / File(s) Summary
Page metadata and SEO setup
apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx
Frontmatter defines title, slug, publication date, authors, SEO/meta fields, tags, hero image, and meta image paths.
Feature narrative and technical examples
apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx
Main article body describes the contract-first workflow, agent-driven type-safe query/migration iterations, TypeScript migration planning and application flows, conflict handling via migration graph/re-plan, review/CI validation, environment version tracking, and upgrade recipes.
Getting started and closing
apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx
“Try it out” section with project setup/init commands, an example agent prompt, community links, and a note that Prisma Next is not production-ready.
Autoplay YouTube embed and MDX media registration
apps/blog/src/components/AutoplayYoutubeEmbed.tsx, apps/blog/src/mdx-components.tsx
Adds AutoplayYoutubeEmbed (client component using postMessage to detect play state and fade a thumbnail) and registers it in MDX; adds a video MDX mapping that rewrites props.src via withBlogBasePathForImageSrc.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'feat: add pn ea blog' uses abbreviations ('pn' and 'ea') that lack clarity; while it broadly relates to adding a blog post about Prisma Next Early Access, a teammate scanning history would struggle to understand what 'pn ea' represents without additional context. Consider expanding the title to 'feat: add Prisma Next Early Access blog post' or similar to make the acronyms explicit and improve discoverability in commit history.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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

@argos-ci
Copy link
Copy Markdown

argos-ci Bot commented May 18, 2026

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

Build Status Details Updated (UTC)
default (Inspect) ⚠️ Changes detected (Review) 1 changed May 19, 2026, 11:07 AM

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx (1)

176-176: 💤 Low value

Consider hyphenating "up-to-date" for consistency.

While "up to date" is acceptable in this predicate position, many style guides recommend hyphenating compound adjectives consistently.

📝 Suggested refinement
-Prisma Next is in Early Access and we're shipping every day, including breaking changes. To stay up to date, we ship a dedicated skill to your agent with instructions for every breaking change.
+Prisma Next is in Early Access and we're shipping every day, including breaking changes. To stay up-to-date, we ship a dedicated skill to your agent with instructions for every breaking change.

As per static analysis hint: "Use a hyphen to join words (QB_NEW_EN_HYPHEN)".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx`
at line 176, Replace the unhyphenated phrase "up to date" in the sentence that
begins "Prisma Next is in Early Access..." with the hyphenated form "up-to-date"
to make the compound adjective consistent; update the string in the file's
paragraph so it reads "...To stay up-to-date, we ship a dedicated skill..."
(target the sentence containing "To stay up to date, we ship" in the document).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx`:
- Line 25: Replace the nonstandard compound "rampup" with the hyphenated form
"ramp-up" in the heading string "## One-line setup and onboarding. No rampup."
so the line reads "## One-line setup and onboarding. No ramp-up." and update any
identical occurrences in the same file to match standard spelling
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1).

---

Nitpick comments:
In
`@apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx`:
- Line 176: Replace the unhyphenated phrase "up to date" in the sentence that
begins "Prisma Next is in Early Access..." with the hyphenated form "up-to-date"
to make the compound adjective consistent; update the string in the file's
paragraph so it reads "...To stay up-to-date, we ship a dedicated skill..."
(target the sentence containing "To stay up to date, we ship" in the document).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: b58fef41-f1a8-4822-831b-ce48900e419d

📥 Commits

Reviewing files that changed from the base of the PR and between dc85af1 and 8360736.

⛔ Files ignored due to path filters (9)
  • apps/blog/public/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/ci-check.png is excluded by !**/*.png
  • apps/blog/public/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/contract-update.mp4 is excluded by !**/*.mp4
  • apps/blog/public/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/hero.svg is excluded by !**/*.svg
  • apps/blog/public/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/meta.png is excluded by !**/*.png
  • apps/blog/public/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/migration-graph.png is excluded by !**/*.png
  • apps/blog/public/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/migration-plan.mp4 is excluded by !**/*.mp4
  • apps/blog/public/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/migration-review.png is excluded by !**/*.png
  • apps/blog/public/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/type-checked-query.mp4 is excluded by !**/*.mp4
  • apps/blog/public/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/imgs/upgrade.mp4 is excluded by !**/*.mp4
📒 Files selected for processing (1)
  • apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx

Replace four self-hosted .mp4 videos in the Prisma Next EA blog post
with unlisted YouTube iframes (autoplay, muted, looped, no controls,
click-through blocked via pointer-events: none). Removes ~24 MB of
binary assets from the repo.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx`:
- Around line 63-71: The iframe embeds disable user interaction via style
pointerEvents: "none" and query params controls=0, disablekb=1 and fs=0; update
each iframe (the <iframe> elements in this file) to remove pointerEvents: "none"
from the inline style and enable controls and keyboard/fullscreen by setting
controls=1 (or removing controls=0), removing disablekb=1 and fs=0 from the src
URL while keeping autoplay=1&mute=1&loop=1&playlist=..., so users can
pause/seek/enter fullscreen; apply the same change to all four video embeds
referenced in the content.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 005e0097-6a12-4832-ab4c-29708a60f6b0

📥 Commits

Reviewing files that changed from the base of the PR and between 8360736 and 4fc362a.

📒 Files selected for processing (2)
  • apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx
  • apps/blog/src/mdx-components.tsx
✅ Files skipped from review due to trivial changes (1)
  • apps/blog/src/mdx-components.tsx

- heroImagePath now points to the polished meta.png; the SVG's
  filter/clip-path stack rendered inconsistently in browsers.
- New AutoplayYoutubeEmbed wraps each video iframe with a thumbnail
  overlay that fades out only once the IFrame API reports PLAYING,
  hiding the big center play/pause icon during the autoplay handshake.
- iframe and overlay both use pointer-events: none so users cannot
  click through to youtube.com; videos autoplay muted and loop.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/blog/src/components/AutoplayYoutubeEmbed.tsx`:
- Line 45: The iframe in AutoplayYoutubeEmbed builds a src string that disables
user controls (const src) and the component also sets pointerEvents: "none",
preventing any interaction and violating WCAG Pause/Stop; update the src in
AutoplayYoutubeEmbed to allow user control by removing or changing the query
params that block interaction (remove controls=0, disablekb=1, fs=0 and keep
controls=1 and keyboard enabled) and remove the pointerEvents: "none" style so
users can click, pause, seek, and use keyboard controls; ensure autoplay can
remain muted if desired but the embed must permit user interaction (adjust
playlist/loop params as needed to preserve looping without disabling controls).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 1825de4a-dcfd-4657-84c5-287e604113a3

📥 Commits

Reviewing files that changed from the base of the PR and between 4fc362a and 5e00f0b.

📒 Files selected for processing (3)
  • apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx
  • apps/blog/src/components/AutoplayYoutubeEmbed.tsx
  • apps/blog/src/mdx-components.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/blog/src/mdx-components.tsx

);
};

const src = `https://www.youtube.com/embed/${videoId}?enablejsapi=1&autoplay=1&mute=1&loop=1&playlist=${videoId}&controls=0&modestbranding=1&rel=0&showinfo=0&disablekb=1&fs=0&iv_load_policy=3&playsinline=1`;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Remove accessibility barriers to user control.

The iframe URL disables all user interaction (controls=0, disablekb=1, fs=0), and line 69 adds pointerEvents: "none". This completely prevents users from pausing, seeking, or controlling the video, violating WCAG 2.2.2 (Pause, Stop, Hide).

Users must be able to control auto-playing content—especially instructional demonstrations where they may need to pause and review specific steps.

♿ Proposed fix to restore user control
-  const src = `https://www.youtube.com/embed/${videoId}?enablejsapi=1&autoplay=1&mute=1&loop=1&playlist=${videoId}&controls=0&modestbranding=1&rel=0&showinfo=0&disablekb=1&fs=0&iv_load_policy=3&playsinline=1`;
+  const src = `https://www.youtube.com/embed/${videoId}?enablejsapi=1&autoplay=1&mute=1&loop=1&playlist=${videoId}&controls=1&modestbranding=1&rel=0&showinfo=0&iv_load_policy=3&playsinline=1`;

And remove pointer-events blocking:

         style={{
           position: "absolute",
           inset: 0,
           width: "100%",
           height: "100%",
           border: 0,
-          pointerEvents: "none",
         }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const src = `https://www.youtube.com/embed/${videoId}?enablejsapi=1&autoplay=1&mute=1&loop=1&playlist=${videoId}&controls=0&modestbranding=1&rel=0&showinfo=0&disablekb=1&fs=0&iv_load_policy=3&playsinline=1`;
const src = `https://www.youtube.com/embed/${videoId}?enablejsapi=1&autoplay=1&mute=1&loop=1&playlist=${videoId}&controls=1&modestbranding=1&rel=0&showinfo=0&iv_load_policy=3&playsinline=1`;
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/blog/src/components/AutoplayYoutubeEmbed.tsx` at line 45, The iframe in
AutoplayYoutubeEmbed builds a src string that disables user controls (const src)
and the component also sets pointerEvents: "none", preventing any interaction
and violating WCAG Pause/Stop; update the src in AutoplayYoutubeEmbed to allow
user control by removing or changing the query params that block interaction
(remove controls=0, disablekb=1, fs=0 and keep controls=1 and keyboard enabled)
and remove the pointerEvents: "none" style so users can click, pause, seek, and
use keyboard controls; ensure autoplay can remain muted if desired but the embed
must permit user interaction (adjust playlist/loop params as needed to preserve
looping without disabling controls).

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx`:
- Line 31: The sentence currently uses the noun "setup" as a verb; change "You
can quickly setup Prisma Next..." to use the verb form "set up" so it reads "You
can quickly set up Prisma Next along with the skills and template of your choice
by running:" (update the string in the markdown content in index.mdx
accordingly).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c5f5840e-ede2-47ed-9750-fac969a4e7a0

📥 Commits

Reviewing files that changed from the base of the PR and between 5e00f0b and 4744bd3.

📒 Files selected for processing (1)
  • apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx

…tract-prompt-your-agent-ship-your-app/index.mdx
…tract-prompt-your-agent-ship-your-app/index.mdx
…tract-prompt-your-agent-ship-your-app/index.mdx
Copy link
Copy Markdown
Contributor

@sneub sneub left a comment

Choose a reason for hiding this comment

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

It's already great! I have a few comments that may help make it clearer


Today, **Prisma Next is open for Early Access for Postgres and [MongoDB](https://www.prisma.io/blog/mongodb-without-compromise).**

## One-line setup and onboarding. No ramp-up.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

"Learning curve" would be more immediately understandable. Ramp up feels ambiguous, not necessarily talking about your understanding/confidence in the topic

…tract-prompt-your-agent-ship-your-app/index.mdx
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.

2 participants