Skip to content

Redesign /stack: one connected TypeScript stack - #8104

Merged
ankur-arch merged 11 commits into
mainfrom
feat/stack-redesign
Jul 27, 2026
Merged

Redesign /stack: one connected TypeScript stack#8104
ankur-arch merged 11 commits into
mainfrom
feat/stack-redesign

Conversation

@ankur-arch

@ankur-arch ankur-arch commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

What this does

Rebuilds prisma.io/stack inside the existing Eclipse theme so a developer who has never heard of the individual products understands the complete Prisma Stack in a few seconds. This is a rewrite of the page's information architecture, copy, and interactions, not a restyle.

Critique of the current page

  • The hero tagline ("Stop configuring. Start shipping.") repeats verbatim in the final CTA and never says what the stack is; Prisma ORM is absent from the hero entirely.
  • The client-drawn SVG diagram carries most of the story in 15 nodes that need study, are not keyboard-accessible, and put key content outside static HTML.
  • Claims repeat across sections: "same runtime, same database, same deploy" (twice), replaceability (hero, diagram, section head), reduced configuration (three places).
  • Code is decorative (two static snippets); there is no developer journey, no create-prisma CTA, no Prisma Next naming, and no structured data.

New structure (pyramid principle: every section leads with its conclusion)

  1. Hero: one-sentence value prop, npm create prisma@next with copy button, animated four-layer stack visual (pure CSS, server-rendered)
  2. The stack, simplified: "Prisma plus your framework is the whole stack" — an interactive stack pyramid (successor to the old diagram): your app as the tip cycling through ten frameworks, Prisma Postgres as the foundation. Each layer is a tab with a detail panel, so you inspect one layer without losing the whole; flowing connectors show the request path
  3. How it works (primary section): six-step Code Hike walkthrough — Scaffold, Project, Model, Query, Deploy, Extend — with token-transition code morphing and a rail showing which layers each step touches
  4. Opinionated by default, replaceable by design: owns the replaceability message exclusively
  5. Database and data access: Prisma Next + Postgres, one-schema story
  6. Runtime and deployment: Compute + Bun stated as developer outcomes
  7. Built for developers and agents: concrete mechanisms, no "AI-ready" hand-waving
  8. Final CTA: "Stop configuring. Start shipping." + the command and what it produces

Original-page features and messaging carried forward

  • The diagram is back as the pyramid, easier to digest: 5 layers instead of 15 nodes, keyboard-accessible tabs, all content in static HTML
  • Framework cycling + full framework list ("We have no opinion here. On purpose.")
  • Bun batteries-included APIs (Bun.serve(), bun test, bundler, Bun.s3, Bun.redis, …) as chips in the Bun panel
  • Postgres extensions (pgvector, pg_search, pg_cron, pg_trgm, pg_stat_statements, uuid-ossp) as chips in the Postgres panel
  • Sub-ms Compute↔Postgres co-location, agent guardrails fact, "Stop configuring. Start shipping."

Later revisions (from review feedback)

  • Flow order is now your app → Prisma ORM → Prisma Postgres → Prisma Compute across the journey rail, pyramid, hero visual, swap cards, and section order; the Query step pulses the full request path
  • The project tree uses indentation + dimmed # annotations instead of box-drawing characters (which misaligned via font fallback)
  • Framework tiles and swap cards use real brand logos from public/icons/technologies (Elysia and Vite had no asset in the repo, so the list features NestJS and React instead); swap targets show PostgreSQL, Vercel, AWS, and Node.js logos; Compute (no logo asset) uses its microchip stack icon
  • Outcome and agent cards carry one-line bodies plus icon chips (pg_cron with a time icon, pg_search a magnifier, pgvector stars, a green post.title / red post.titel pair for type safety) instead of dense prose

Redundancies removed

  • Replaceability stated once (section 4); frameworks message lives only in the pyramid; extensions and Bun APIs live only in their panels
  • Duplicate tagline resolved: hero and CTA now say different things

Implementation notes

  • Code Hike: codehike@^1.1.0 added to apps/site (already a dep of docs/blog). Token-transitions fed with real shiki tokens from the site's prisma-dark CSS-variable theme; highlighting happens server-side.
  • React Bits patterns rebuilt on Eclipse tokens, no new deps: spotlight cards, flowing dashed connectors, staggered entrances, progressive hero text reveal.
  • Icons: audited every FontAwesome class against the kit at runtime (::before content check); replaced eight classes that have no glyph in the kit (fa-window, fa-box-open, fa-browser, fa-folder-tree, fa-list-check, fa-file-lines, fa-rotate, fa-play/fa-pause → verified glyphs or inline SVG). Audit now reports zero missing glyphs.
  • Accessibility / reduced motion: tablist semantics with roving tabindex and arrow keys, labelled play/pause + steppers, aria-live announcements; framework cycling, autoplay, connector flow, and token transitions all stop under prefers-reduced-motion, with everything readable statically.
  • SEO / agents: SoftwareApplication + CollectionPage JSON-LD (five layers as an ItemList), single h1 with a clean conclusion-first h2/h3 outline, every framework name, Bun API, extension, command, and code step served in static HTML. Review script confirms valid JSON-LD, no vague link text, and no unnamed buttons introduced by this page (the few empty-name links flagged live in the shared nav/footer chrome).
  • Terminology: Prisma Next throughout; queries use the real namespace-qualified surface (db.orm.public.Post.where().include().all()); schema uses @default(cuid(2)).

Verification

  • pnpm types:check, oxlint, and a production next build pass (/stack prerenders statically)
  • Playwright-verified at 1440/834/390 in both themes: no horizontal overflow, keyboard navigation works, reduced-motion renders everything statically, zero missing icon glyphs

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added an animated Stack hero, decorative spotlight cards, copy-to-clipboard command buttons, and an interactive keyboard-friendly stack pyramid.
    • Introduced a six-step “How it works” journey with autoplay, play/pause, step navigation, and smoothly transitioning code.
  • Content Updates
    • Redid the /stack page into a more data-driven experience with updated outcomes, framework branding, and JSON-LD structured data.
    • Removed the previous carousel/diagram visuals in favor of the new stack pyramid and animated hero presentation.
  • Chores
    • Added a new runtime dependency to support enhanced code rendering and transitions.

Rework the Prisma Stack page's information architecture, copy, and
interactions so the complete stack reads in seconds, within the existing
Eclipse theme:

- Hero states the value in one sentence, leads with npm create prisma@next,
  and shows an animated four-layer stack visual (pure CSS, server-rendered)
- Interactive stack overview: an accessible tablist shaped like the stack
  (app -> Compute + Bun -> ORM -> Postgres) with every panel in static HTML
- "How it works": a six-step Code Hike walkthrough (scaffold, project,
  model, query, deploy, extend) with token-transition code morphing and a
  rail showing which layers each step touches; all step code stays in the
  DOM for crawlers and no-JS
- One section each for replaceability, runtime/deployment, data layer, and
  agent-friendliness, deduplicating claims the old page repeated
- Prisma Next naming and real query surface (db.orm.public.*) throughout
- SoftwareApplication + CollectionPage JSON-LD, semantic headings,
  keyboard-accessible steppers, prefers-reduced-motion support everywhere

Adds codehike to apps/site (already used in docs/blog); code highlighting
reuses the shiki prisma-dark CSS-variable theme so both modes work.

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

vercel Bot commented Jul 24, 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, Comment Jul 27, 2026 1:29pm
docs Ready Ready Preview, Comment Jul 27, 2026 1:29pm
eclipse Ready Ready Preview, Comment Jul 27, 2026 1:29pm
site Ready Ready Preview, Comment Jul 27, 2026 1:29pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: c54fb5dc-ad1f-463a-accf-46539f73b920

📥 Commits

Reviewing files that changed from the base of the PR and between 178ff56 and c39705f.

📒 Files selected for processing (3)
  • apps/site/src/app/stack/page.tsx
  • apps/site/src/app/stack/stack-data.ts
  • apps/site/src/app/stack/stack-pyramid.tsx
🚧 Files skipped from review as they are similar to previous changes (3)
  • apps/site/src/app/stack/stack-data.ts
  • apps/site/src/app/stack/page.tsx
  • apps/site/src/app/stack/stack-pyramid.tsx

Walkthrough

The /stack page is rebuilt with structured stack data, an interactive pyramid, an autoplay journey walkthrough with syntax-highlighted code, new visual components, updated outcome sections, structured metadata, and revised calls to action. The previous diagram and carousel implementations are removed.

Changes

Stack page redesign

Layer / File(s) Summary
Stack data model and interactive visuals
apps/site/src/app/stack/stack-data.ts, apps/site/src/app/stack/stack-pyramid.tsx, apps/site/src/app/stack/spotlight-card.tsx, apps/site/src/app/stack/hero-visual.tsx, apps/site/src/app/stack/stack.module.css
Stack layers, frameworks, swap messages, and outcome data are updated; the page gains accessible layer tabs, framework cycling, spotlight effects, animated hero styling, and reduced-motion handling.
Journey content and code transitions
apps/site/src/app/stack/journey/*, apps/site/package.json
Six typed journey steps are added, code is highlighted server-side with Code Hike, and the client player provides viewport-aware autoplay, navigation, stable sizing, token transitions, and reduced-motion handling.
Page composition and command interactions
apps/site/src/app/stack/page.tsx, apps/site/src/app/stack/copy-command.tsx
The asynchronous page injects structured data and renders the new hero, pyramid, journey, replacement, outcome, and CTA sections; the scaffold command can be copied with an accessible announcement.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Visitor
  participant StackPage
  participant highlightJourney
  participant JourneyPlayer
  participant Clipboard
  Visitor->>StackPage: open /stack
  StackPage->>highlightJourney: generate highlighted journey code
  highlightJourney-->>StackPage: return HighlightedCode[]
  StackPage->>JourneyPlayer: provide highlighted journey code
  Visitor->>JourneyPlayer: select or autoplay a step
  Visitor->>Clipboard: copy scaffold command
  Clipboard-->>Visitor: report copy success
Loading

Possibly related PRs

  • prisma/web#8002: Reworks the same /stack page components and styles, including the diagram, carousel, data, and stylesheet.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: a redesign of /stack into a connected TypeScript stack experience.
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.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/stack-redesign

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

@argos-ci

argos-ci Bot commented Jul 24, 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 - Jul 27, 2026, 1:36 PM

- Replace the overview tablist with an interactive stack pyramid: your
  app as the tip, Prisma Postgres as the foundation, each layer a tab
  with a detail panel, flowing connectors between layers
- Restore the original page's framework story: the top layer cycles
  through ten frameworks (monogram + name), and the app panel lists
  them all with "no opinion here, on purpose" messaging
- Restore Bun API capabilities and Postgres extensions as chip strips
  in their panels; restore "Stop configuring. Start shipping." as the
  final CTA; restore sub-ms co-location and agent-guardrail facts
- Pyramid-principle copy pass: every section head now leads with its
  conclusion ("Prisma plus your framework is the whole stack")
- Fix icons missing from the FontAwesome kit (fa-window, fa-box-open,
  fa-browser, fa-folder-tree, fa-list-check, fa-file-lines, fa-rotate,
  fa-play/pause -> verified glyphs or inline SVG); verified via a
  runtime ::before-content audit that now reports zero missing glyphs
- Drop the duplicate "Bring any frontend" card and the standalone
  extensions row now that the pyramid panels own those messages

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

@coderabbitai coderabbitai Bot left a comment

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.

🧹 Nitpick comments (1)
apps/site/src/app/stack/stack-data.ts (1)

44-54: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove the duplicate Bun API list

bunApis is only defined here, while the Bun layer hardcodes the same strings in chips.items. Derive one from the other or delete bunApis if it is not used elsewhere.

🤖 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/site/src/app/stack/stack-data.ts` around lines 44 - 54, Remove the
duplicated Bun API definitions by updating the Bun layer’s chips.items to derive
from the existing bunApis data, or delete bunApis if it has no other consumers.
Ensure the displayed API and role strings continue to come from a single source
of truth.
🤖 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.

Nitpick comments:
In `@apps/site/src/app/stack/stack-data.ts`:
- Around line 44-54: Remove the duplicated Bun API definitions by updating the
Bun layer’s chips.items to derive from the existing bunApis data, or delete
bunApis if it has no other consumers. Ensure the displayed API and role strings
continue to come from a single source of truth.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 31356c81-264f-4a7f-b54f-e599edf16f37

📥 Commits

Reviewing files that changed from the base of the PR and between 04f5a0f and b7a680f.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (14)
  • apps/site/package.json
  • apps/site/src/app/stack/copy-command.tsx
  • apps/site/src/app/stack/framework-carousel.tsx
  • apps/site/src/app/stack/hero-visual.tsx
  • apps/site/src/app/stack/journey/highlight.ts
  • apps/site/src/app/stack/journey/journey-player.tsx
  • apps/site/src/app/stack/journey/journey-steps.ts
  • apps/site/src/app/stack/journey/smooth-pre.tsx
  • apps/site/src/app/stack/page.tsx
  • apps/site/src/app/stack/spotlight-card.tsx
  • apps/site/src/app/stack/stack-data.ts
  • apps/site/src/app/stack/stack-diagram.tsx
  • apps/site/src/app/stack/stack-pyramid.tsx
  • apps/site/src/app/stack/stack.module.css
💤 Files with no reviewable changes (2)
  • apps/site/src/app/stack/framework-carousel.tsx
  • apps/site/src/app/stack/stack-diagram.tsx

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 24, 2026
- Reorder every stack visual to the developer-journey flow: your app,
  Prisma ORM, Prisma Postgres, Prisma Compute (+ Bun as the runtime row
  under the app in the pyramid). Applies to the journey rail, the
  pyramid, the hero visual, the swap cards, and the page section order
  (data layer now precedes runtime/deployment)
- The Query step now pulses the full app -> ORM -> Postgres path, and
  Deploy lights the whole rail
- Replace the box-drawing project tree (misaligned via font fallback)
  with indentation-based formatting and column-aligned, comment-dimmed
  `# …` annotations rendered via the text tokenizer

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Cut every outcome/agent card to a one-line body and move the detail
into compact icon chips: pg_cron gets a time icon, pg_search a
magnifier, pgvector stars, pg_stat_statements a chart; typed queries
show a green post.title vs red post.titel pair; deploys show the
command and the resulting URL. Chip icons are runtime-verified against
the FontAwesome kit (fa-clock and both sparkles variants are missing
from it; picked verified glyphs instead).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Framework tiles now use the real logo SVGs already shipped in
  public/icons/technologies (Next.js, React Router, TanStack, Astro,
  SvelteKit, Nuxt, Hono, NestJS, SolidStart, React) on white tiles so
  they read in both themes; the pyramid's cycling badge shows the logo
- Elysia and Vite + React had no logo asset in the repo, so the list
  now features NestJS (also a create-prisma template) and React
- Swap cards show the default product's logo (Prisma mark, Prisma
  Postgres, Bun) plus real logos of the swap targets: PostgreSQL,
  Vercel, AWS, Node.js

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Framework chips in the "Your application" panel now link to their
  Prisma Next framework guides (/docs/guides/next/frameworks/*);
  frameworks without a Next guide stay plain chips.
- "See the framework guides" points at /docs/guides/next instead of the
  Prisma Next intro.
- pg_search chip uses fa-magnifying-glass-arrow-right: the kit serves a
  broken glyph for every plain magnifying-glass/search icon.
- Hero stack tapers tip-to-base with the pyramid's accent edge bars and
  a soft teal glow, so it previews the pyramid one scroll below.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 27, 2026
The Bun panel renders its chips from the layer's chips.items; bunApis
had no consumers left. Addresses CodeRabbit feedback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 27, 2026
… cards

- Tab panels stay in the layout (invisible, not display:none), so the
  section holds the tallest panel's height and switching layers no
  longer shifts the content below.
- Framework list drops React Router, SolidStart, and React until their
  Prisma Next guides ship; every remaining chip links to its guide.
- Outcome and swap cards are now full-card links with a visible CTA
  naming a real docs page (query builder, connecting any client,
  deployment guides, extensions, branching, migrations, Bun runtime,
  quickstart, data modeling, Git deploys) - all verified live.
- Card layout puts the icon on its own row so titles and body copy
  share a left edge, consistently across sections 4-7.
- Agents section gains a closing cross-link to /docs/ai.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ankur-arch
ankur-arch merged commit 2f28d20 into main Jul 27, 2026
17 checks passed
@ankur-arch
ankur-arch deleted the feat/stack-redesign branch July 27, 2026 13:47
ankur-arch added a commit that referenced this pull request Jul 27, 2026
The previous og-stack.png was an AI-generated composition with a
distorted Prisma mark and off-palette styling. This one is authored as
an SVG in the Eclipse house style (aurora background, Mona Sans display,
mono eyebrow) and rendered to a pixel-exact 1200x630 PNG. It mirrors the
page itself: the five-layer stack (your application, Bun, Prisma ORM,
Prisma Postgres, Prisma Compute) with official marks, plus the
npm create prisma@next command.

Follow-up to #8104.

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