Conversation
Update postgres page
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughThis PR migrates blog frontmatter tags to a new taxonomy, updates site configuration and redirects, adds deterministic anchorable MDX h2 headings, standardizes typography tokens across marketing pages, and refactors several UI components and layout/CSS files. ChangesBlog Taxonomy Migration and Site Modernization
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
|
|
The latest updates on your projects. Learn more about Argos notifications ↗︎
|
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
apps/blog/content/blog/accelerate-preview-release-ab229e69ed2/index.mdx (1)
51-72:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRemove diff markers from JavaScript snippets.
Line 54, Line 61, Line 68, and Line 69 include leading
+characters insidejavascriptcode fences. That makes copy/paste examples invalid for readers.Proposed fix
await prisma.user.findMany({ cacheStrategy: { -+ ttl: 60, + ttl: 60, }, });await prisma.user.findMany({ cacheStrategy: { -+ swr: 30, + swr: 30, }, });await prisma.user.findMany({ cacheStrategy: { -+ ttl: 60, -+ swr: 30, + ttl: 60, + swr: 30, }, });🤖 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/accelerate-preview-release-ab229e69ed2/index.mdx` around lines 51 - 72, The JavaScript examples for prisma.user.findMany include stray '+' diff markers inside the cacheStrategy object that break copy/paste; edit the three code blocks containing prisma.user.findMany and cacheStrategy and remove any leading '+' characters from the property lines (ttl and swr) so the object keys are plain JavaScript (e.g., change "+ ttl: 60," and "+ swr: 30," to " ttl: 60," and " swr: 30,"). Ensure all three snippets consistently show valid code for cacheStrategy without diff markers.apps/blog/next.config.mjs (1)
212-239:⚠️ Potential issue | 🟠 Major | ⚡ Quick winPreserve redirects for legacy tag slugs to avoid breaking existing links
This removes compatibility for old tag URLs. Keep explicit legacy-to-new mappings so inbound links keep working after taxonomy migration.
Proposed fix
async redirects() { const tagSlugs = [ "ai", "announcement", "platform", "education", "orm", "prisma-postgres", "case-study", ]; + const legacyTagRedirects = [ + { source: "/data-platform", destination: "/?tag=platform" }, + { source: "/release", destination: "/?tag=announcement" }, + { source: "/user-success-story", destination: "/?tag=case-study" }, + { source: "/serverless", destination: "/?tag=case-study" }, + ]; return [ { source: "/", destination: "/blog", permanent: false, basePath: false, }, { source: "/optimize-now-generally-available", destination: "/", permanent: true, }, + ...legacyTagRedirects.map((r) => ({ + source: r.source, + destination: r.destination, + permanent: true, + })), ...tagSlugs.map((tag) => ({ source: `/${tag}`, destination: `/?tag=${tag}`, permanent: true, })), ]; },🤖 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/next.config.mjs` around lines 212 - 239, The current redirect generation using tagSlugs loses legacy tag mappings; add an explicit legacy list (e.g., legacyTagSlugs) and map each legacy slug to the new destination `/?tag=...` with the same redirect properties (permanent: true, basePath: false if needed), then merge those mappings into the returned redirects array alongside the existing tagSlugs mapping; update the code around the tagSlugs constant and the returned array so both legacyTagSlugs.map(...) and tagSlugs.map(...) are included to preserve old links.
🤖 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/how-prisma-and-serverless-fit-together-iaSfcPQVi0/index.mdx`:
- Line 13: Update the post's taxonomy tag by replacing the incorrect
"case-study" value with the correct non-case-study tag (e.g., "platform") in the
article metadata; locate the string "case-study" in the frontmatter of this post
and change it to "platform" so tag-based discovery and related-content
algorithms categorize the article as a platform/architecture explainer.
In `@apps/blog/src/app/`(blog)/[slug]/page.tsx:
- Around line 236-252: The custom h2 renderer currently recomputes heading IDs
via extractText and final_id which can diverge from MDX/TOC IDs and cause
duplicates; update the h2 component to prefer props.id when available (use const
final_id = props.id ?? computedId) and only fall back to the existing
lowercase/replaceAll/regex computation (referencing extractText and final_id) so
anchors match MDX-generated ids and avoid duplicate ids for repeated headings.
In `@apps/site/src/app/global.css`:
- Around line 193-247: The .box::before masking relies on mask-composite and can
fail in older engines, so add a simple fallback border (e.g., a 1px neutral
stroke on .box or .box::before) and then wrap the complex mask rules in a
feature query so the fallback is suppressed when supported; specifically, add a
basic border on .box/.box::before and add an `@supports` (mask-composite: exclude)
block that contains the existing mask rules for .box::before (and removes or
hides the fallback border there), and avoid relying on vendor-prefixed
-webkit-mask-composite in the main rule.
In `@apps/site/src/components/homepage/card-section/logo-grid.tsx`:
- Line 119: Remove the debug console.log from the LogoGrid render—delete the
line that calls console.log(lightImageUrl, darkImageUrl, logo) so the component
(logo-grid.tsx / the LogoGrid component or its render function) no longer logs
logo data on every render; just remove the statement and keep the rest of the
JSX/logic unchanged.
In `@packages/ui/src/components/navigation-menu.tsx`:
- Line 197: The class string still uses the old foreground token
text-popover-foreground while background was migrated to bg-background-default;
update both occurrences of text-popover-foreground (the one inside the group
selector group-data-[viewport=false]/navigation-menu: and the standalone
text-popover-foreground token later in the same class) to the correct foreground
token that pairs with bg-background-default (e.g., text-foreground-neutral or
your design-system equivalent) so the background/foreground token pairing is
consistent.
---
Outside diff comments:
In `@apps/blog/content/blog/accelerate-preview-release-ab229e69ed2/index.mdx`:
- Around line 51-72: The JavaScript examples for prisma.user.findMany include
stray '+' diff markers inside the cacheStrategy object that break copy/paste;
edit the three code blocks containing prisma.user.findMany and cacheStrategy and
remove any leading '+' characters from the property lines (ttl and swr) so the
object keys are plain JavaScript (e.g., change "+ ttl: 60," and "+ swr:
30," to " ttl: 60," and " swr: 30,"). Ensure all three snippets
consistently show valid code for cacheStrategy without diff markers.
In `@apps/blog/next.config.mjs`:
- Around line 212-239: The current redirect generation using tagSlugs loses
legacy tag mappings; add an explicit legacy list (e.g., legacyTagSlugs) and map
each legacy slug to the new destination `/?tag=...` with the same redirect
properties (permanent: true, basePath: false if needed), then merge those
mappings into the returned redirects array alongside the existing tagSlugs
mapping; update the code around the tagSlugs constant and the returned array so
both legacyTagSlugs.map(...) and tagSlugs.map(...) are included to preserve old
links.
🪄 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: dc090ca9-de4e-4033-975b-d49a9c08256a
📒 Files selected for processing (93)
apps/blog/content/blog/accelerate-ga-release-I9cQM6bSf2g6/index.mdxapps/blog/content/blog/accelerate-ipv6-first/index.mdxapps/blog/content/blog/accelerate-preview-release-ab229e69ed2/index.mdxapps/blog/content/blog/accelerate-static-ip-support/index.mdxapps/blog/content/blog/amplication-customer-story-nmlkBNlLlxnN/index.mdxapps/blog/content/blog/announcing-accelerate-usrvpi6sfkv4/index.mdxapps/blog/content/blog/announcing-on-demand-cache-invalidation-for-prisma-accelerate/index.mdxapps/blog/content/blog/announcing-prisma-6-18-0/index.mdxapps/blog/content/blog/announcing-prisma-6-19-0/index.mdxapps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdxapps/blog/content/blog/bringing-prisma-orm-to-react-native-and-expo/index.mdxapps/blog/content/blog/build-applications-at-the-edge-with-prisma-orm-and-cloudflare-d1-preview/index.mdxapps/blog/content/blog/client-extensions-ga-4g4yIu8eOSbB/index.mdxapps/blog/content/blog/client-extensions-preview-8t3w27xkrxxn/index.mdxapps/blog/content/blog/cockroach-ga-5JrD9XVWQDYL/index.mdxapps/blog/content/blog/data-platform-static-ips/index.mdxapps/blog/content/blog/elsevier-customer-story-SsAASKagMHtN/index.mdxapps/blog/content/blog/formbricks-and-prisma-accelerate-solving-scalability-together/index.mdxapps/blog/content/blog/grover-customer-success-story-nxkWGcGNuvFd/index.mdxapps/blog/content/blog/helping-rapha-access-data-across-platforms-n3jfhtyu6rgn/index.mdxapps/blog/content/blog/how-bucket-uses-prisma-orm/index.mdxapps/blog/content/blog/how-deno-and-prisma-partnered-to-power-per-branch-databases/index.mdxapps/blog/content/blog/how-migrating-from-Sequelize-to-Prisma-allowed-Invisible-to-scale-i4pz2mwu6q/index.mdxapps/blog/content/blog/how-prisma-and-serverless-fit-together-iaSfcPQVi0/index.mdxapps/blog/content/blog/how-solin-uses-prisma-accelerate-to-serve-2-5m-database-queries-per/index.mdxapps/blog/content/blog/how-to-improve-startup-times-kdRB9MjPEv/index.mdxapps/blog/content/blog/introducing-auto-scaling-for-prisma-accelerate/index.mdxapps/blog/content/blog/introducing-platform-environments/index.mdxapps/blog/content/blog/iopool-customer-success-story-uLsCWvaqzXoa/index.mdxapps/blog/content/blog/make-your-applications-fast-globally/index.mdxapps/blog/content/blog/mongodb-general-availability-pixnun6mffmu/index.mdxapps/blog/content/blog/organize-your-prisma-schema-with-multi-file-support/index.mdxapps/blog/content/blog/orm-6-10-0-new-features-for-prisma-postgres-remote-mcp-and-more/index.mdxapps/blog/content/blog/orm-6-12-0-esm-compatible-generator-in-preview-and-new-options-for-prisma-config/index.mdxapps/blog/content/blog/orm-6-15-0-ai-safety-guardrails-for-destructive-commands-and-more/index.mdxapps/blog/content/blog/orm-v6-11-0-embedded-prisma-studio-rust-free-orm-for-mysql-in-preview-and-more/index.mdxapps/blog/content/blog/orm-v6-17-0-new-usage-metrics-and-direct-connections-in-ga-for-prisma-postgres/index.mdxapps/blog/content/blog/overcoming-challenges-in-serverless-and-edge-environments-TQtONA0RVxuW/index.mdxapps/blog/content/blog/panther-customer-story-pdmdrrhtupsl/index.mdxapps/blog/content/blog/pearly-plan-customer-success-pdmdrRhTupve/index.mdxapps/blog/content/blog/poppy-customer-success-story-swnWQcGRRvpd/index.mdxapps/blog/content/blog/prisma-5-f66prwkjx72s/index.mdxapps/blog/content/blog/prisma-6-8-0-release/index.mdxapps/blog/content/blog/prisma-and-serverless-73hbgKnZ6t/index.mdxapps/blog/content/blog/prisma-data-platform-now-generally-available-8D058s1BqOL1/index.mdxapps/blog/content/blog/prisma-data-proxy-xb16ba0p21/index.mdxapps/blog/content/blog/prisma-microsoft-sql-server-azure-sql-production-ga/index.mdxapps/blog/content/blog/prisma-migrate-dx-primitives/index.mdxapps/blog/content/blog/prisma-migrate-ga-b5eno5g08d0b/index.mdxapps/blog/content/blog/prisma-mongodb-preview-release/index.mdxapps/blog/content/blog/prisma-online-data-browser-ejgg5c8p3u4x/index.mdxapps/blog/content/blog/prisma-optimize-early-access/index.mdxapps/blog/content/blog/prisma-orm-6-6-0-esm-support-d1-migrations-and-prisma-mcp-server/index.mdxapps/blog/content/blog/prisma-orm-v6-14-0-relationships-for-sql-views-more-robust-management-api-and-more/index.mdxapps/blog/content/blog/prisma-turso-ea-support-rXGd_Tmy3UXX/index.mdxapps/blog/content/blog/read-replicas-prisma-client-extension-f66prwk56wow/index.mdxapps/blog/content/blog/saving-black-friday-with-connection-pooling/index.mdxapps/blog/content/blog/serverless-database-drivers-KML1ehXORxZV/index.mdxapps/blog/content/blog/studio-for-prisma-postgres-view-and-edit-your-data-online/index.mdxapps/blog/content/blog/tracing-launch-announcement-pmk4rlpc0ll/index.mdxapps/blog/content/blog/tryg-customer-story-pdmdrRhTupvd/index.mdxapps/blog/content/blog/vscode-extension-prisma-rust-webassembly/index.mdxapps/blog/content/blog/whats-new-in-prisma-q1-2021-spjyqp0e2rk1/index.mdxapps/blog/content/blog/whats-new-in-prisma-q2-2021-z70muetl386d/index.mdxapps/blog/content/blog/why-prisma-2024/index.mdxapps/blog/content/blog/wnip-q1-dsk0golh8v/index.mdxapps/blog/content/blog/wnip-q2-2022-pmn7rulcj8x/index.mdxapps/blog/content/blog/wnip-q3-hpk7pyth8v/index.mdxapps/blog/content/blog/wnip-q4-2022-f66prwkjx72s/index.mdxapps/blog/content/blog/wnip-q4-dsk0golh8v/index.mdxapps/blog/next.config.mjsapps/blog/source.config.tsapps/blog/src/app/(blog)/[slug]/page.tsxapps/blog/src/components/BlogHomeClient.tsxapps/site/src/app/(index)/page.tsxapps/site/src/app/changelog/page.tsxapps/site/src/app/global.cssapps/site/src/app/mcp/_components/mcp-hero-section.tsxapps/site/src/app/orm/page.tsxapps/site/src/app/postgres/page.tsxapps/site/src/app/pricing/pricing-comparison-table.tsxapps/site/src/app/pricing/pricing-hero-plans.tsxapps/site/src/app/query-insights/page.tsxapps/site/src/app/stack/page.tsxapps/site/src/app/studio/page.tsxapps/site/src/app/support-policy/page.tsxapps/site/src/components/homepage/card-section/card-section.tsxapps/site/src/components/homepage/card-section/logo-grid.tsxapps/site/src/components/homepage/copy-btn.tsxapps/site/src/components/postgres.tsxapps/site/src/data/postgres.jsonpackages/ui/src/components/navigation-menu.tsxpackages/ui/src/components/post-card.tsx
💤 Files with no reviewable changes (14)
- apps/blog/content/blog/client-extensions-ga-4g4yIu8eOSbB/index.mdx
- apps/blog/content/blog/overcoming-challenges-in-serverless-and-edge-environments-TQtONA0RVxuW/index.mdx
- apps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdx
- apps/blog/content/blog/orm-v6-11-0-embedded-prisma-studio-rust-free-orm-for-mysql-in-preview-and-more/index.mdx
- apps/blog/content/blog/prisma-turso-ea-support-rXGd_Tmy3UXX/index.mdx
- apps/blog/content/blog/orm-6-15-0-ai-safety-guardrails-for-destructive-commands-and-more/index.mdx
- apps/blog/content/blog/prisma-and-serverless-73hbgKnZ6t/index.mdx
- apps/blog/content/blog/prisma-5-f66prwkjx72s/index.mdx
- apps/blog/content/blog/prisma-orm-v6-14-0-relationships-for-sql-views-more-robust-management-api-and-more/index.mdx
- apps/blog/content/blog/orm-6-10-0-new-features-for-prisma-postgres-remote-mcp-and-more/index.mdx
- apps/blog/content/blog/cockroach-ga-5JrD9XVWQDYL/index.mdx
- apps/blog/content/blog/orm-6-12-0-esm-compatible-generator-in-preview-and-new-options-for-prisma-config/index.mdx
- apps/blog/content/blog/tracing-launch-announcement-pmk4rlpc0ll/index.mdx
- apps/blog/content/blog/read-replicas-prisma-client-extension-f66prwk56wow/index.mdx
There was a problem hiding this comment.
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/site/src/components/homepage/card-section/logo-grid.tsx`:
- Around line 103-125: The light-mode image selection is incorrectly falling
back to mobileImageUrl, conflating responsive and theme concerns; update the
logic in logo-grid.tsx so lightImageUrl is derived from logo.imageUrlLight
(e.g., const lightImageUrl = logo.imageUrlLight ?? logo.imageUrl) and keep
darkImageUrl = logo.imageUrl, removing mobileImageUrl from theme selection; if
you need a true mobile-specific asset, implement it in the responsive wrapper
around the LogoImage component (not inside the theme fallback) and adjust the
className/theme branching (the dark:hidden / dark:block usage) to only switch
based on theme.
🪄 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: 53d78c3f-de0c-4c73-ae6b-bce70647bc49
📒 Files selected for processing (3)
apps/blog/content/blog/how-prisma-and-serverless-fit-together-iaSfcPQVi0/index.mdxapps/blog/src/app/(blog)/[slug]/page.tsxapps/site/src/components/homepage/card-section/logo-grid.tsx
✅ Files skipped from review due to trivial changes (1)
- apps/blog/content/blog/how-prisma-and-serverless-fit-together-iaSfcPQVi0/index.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
- apps/blog/src/app/(blog)/[slug]/page.tsx
| const lightImageUrl = logo.mobileImageUrl ?? logo.imageUrlLight; | ||
| const darkImageUrl = logo.imageUrl; | ||
| const hasThemeVariant = lightImageUrl !== darkImageUrl; | ||
| const imageClassName = "w-full aspect-square rounded-lg object-contain"; | ||
|
|
||
| return ( | ||
| <> | ||
| <Image | ||
| src={lightImageUrl} | ||
| alt={logo.alt} | ||
| width={size} | ||
| height={size} | ||
| className={cn(imageClassName, hasThemeVariant && "block dark:hidden")} | ||
| /> | ||
| {hasThemeVariant && ( | ||
| {lightImageUrl && ( | ||
| <Image | ||
| src={darkImageUrl} | ||
| src={lightImageUrl} | ||
| alt={logo.alt} | ||
| width={size} | ||
| height={size} | ||
| className={cn(imageClassName, "hidden dark:block")} | ||
| className={cn(imageClassName, "block dark:hidden")} | ||
| /> | ||
| )} | ||
| <Image | ||
| src={darkImageUrl} | ||
| alt={logo.alt} | ||
| width={size} | ||
| height={size} | ||
| className={cn(imageClassName, lightImageUrl && "hidden dark:block")} | ||
| /> |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
python - <<'PY'
import json
from pathlib import Path
for rel in [
"apps/site/src/components/homepage/card-section/default-logos.json",
"apps/site/src/data/postgres.json",
]:
path = Path(rel)
if not path.exists():
continue
data = json.loads(path.read_text())
def walk(node):
if isinstance(node, dict):
if "alt" in node and ("mobileImageUrl" in node or "imageUrlLight" in node):
print(
f"{rel}: alt={node.get('alt')!r}, "
f"mobileImageUrl={'mobileImageUrl' in node}, "
f"imageUrlLight={'imageUrlLight' in node}"
)
for value in node.values():
walk(value)
elif isinstance(node, list):
for value in node:
walk(value)
walk(data)
PYRepository: prisma/web
Length of output: 1710
🏁 Script executed:
cat -n apps/site/src/components/homepage/card-section/logo-grid.tsxRepository: prisma/web
Length of output: 9061
Separate theme selection from responsive variant logic.
Line 103 conflates two concerns: mobileImageUrl (a responsive variant) is being used as a fallback for imageUrlLight (a theme variant). While current data doesn't show logos with both fields, the code structure silently allows one to shadow the other. More importantly, mobileImageUrl gets applied at all viewport widths in light mode because LogoImage contains no viewport branching—only theme-based CSS (dark:hidden / dark:block). This naming is misleading: the "mobile" asset isn't actually mobile-specific; it's used globally in light mode.
Suggested fix
- const lightImageUrl = logo.mobileImageUrl ?? logo.imageUrlLight;
+ const lightImageUrl = logo.imageUrlLight;
const darkImageUrl = logo.imageUrl;This clarifies that imageUrlLight is for light-mode theming. If mobile-specific image selection is needed, it belongs in a separate responsive wrapper around LogoImage, not mixed into theme selection logic.
📝 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.
| const lightImageUrl = logo.mobileImageUrl ?? logo.imageUrlLight; | |
| const darkImageUrl = logo.imageUrl; | |
| const hasThemeVariant = lightImageUrl !== darkImageUrl; | |
| const imageClassName = "w-full aspect-square rounded-lg object-contain"; | |
| return ( | |
| <> | |
| <Image | |
| src={lightImageUrl} | |
| alt={logo.alt} | |
| width={size} | |
| height={size} | |
| className={cn(imageClassName, hasThemeVariant && "block dark:hidden")} | |
| /> | |
| {hasThemeVariant && ( | |
| {lightImageUrl && ( | |
| <Image | |
| src={darkImageUrl} | |
| src={lightImageUrl} | |
| alt={logo.alt} | |
| width={size} | |
| height={size} | |
| className={cn(imageClassName, "hidden dark:block")} | |
| className={cn(imageClassName, "block dark:hidden")} | |
| /> | |
| )} | |
| <Image | |
| src={darkImageUrl} | |
| alt={logo.alt} | |
| width={size} | |
| height={size} | |
| className={cn(imageClassName, lightImageUrl && "hidden dark:block")} | |
| /> | |
| const lightImageUrl = logo.imageUrlLight; | |
| const darkImageUrl = logo.imageUrl; | |
| const hasThemeVariant = lightImageUrl !== darkImageUrl; | |
| const imageClassName = "w-full aspect-square rounded-lg object-contain"; | |
| return ( | |
| <> | |
| {lightImageUrl && ( | |
| <Image | |
| src={lightImageUrl} | |
| alt={logo.alt} | |
| width={size} | |
| height={size} | |
| className={cn(imageClassName, "block dark:hidden")} | |
| /> | |
| )} | |
| <Image | |
| src={darkImageUrl} | |
| alt={logo.alt} | |
| width={size} | |
| height={size} | |
| className={cn(imageClassName, lightImageUrl && "hidden dark:block")} | |
| /> |
🤖 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/components/homepage/card-section/logo-grid.tsx` around lines
103 - 125, The light-mode image selection is incorrectly falling back to
mobileImageUrl, conflating responsive and theme concerns; update the logic in
logo-grid.tsx so lightImageUrl is derived from logo.imageUrlLight (e.g., const
lightImageUrl = logo.imageUrlLight ?? logo.imageUrl) and keep darkImageUrl =
logo.imageUrl, removing mobileImageUrl from theme selection; if you need a true
mobile-specific asset, implement it in the responsive wrapper around the
LogoImage component (not inside the theme fallback) and adjust the
className/theme branching (the dark:hidden / dark:block usage) to only switch
based on theme.
There was a problem hiding this comment.
🧹 Nitpick comments (1)
apps/site/src/app/pricing/pricing-calculator.tsx (1)
511-511: ⚡ Quick winAvoid mixing hardcoded size with typography token on the same heading.
Line 511 combines
text-[28px]withtype-title-xl; keeping only the tokenized class avoids style conflicts and keeps typography standardization consistent.Proposed diff
- <h2 className="m-0 text-[28px] text-foreground-neutral type-title-xl"> + <h2 className="m-0 text-foreground-neutral type-title-xl"> Pricing Calculator </h2>🤖 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/pricing/pricing-calculator.tsx` at line 511, The h2 in pricing-calculator.tsx is mixing a hardcoded size class with a typography token; remove the hardcoded class text-[28px] and rely only on the token class type-title-xl (or, if a different size is required, replace the token instead of adding a raw px class) so the heading uses the standardized typography token consistently; locate the h2 element whose className contains both text-[28px] and type-title-xl and delete the text-[28px] token.
🤖 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/pricing/pricing-calculator.tsx`:
- Line 511: The h2 in pricing-calculator.tsx is mixing a hardcoded size class
with a typography token; remove the hardcoded class text-[28px] and rely only on
the token class type-title-xl (or, if a different size is required, replace the
token instead of adding a raw px class) so the heading uses the standardized
typography token consistently; locate the h2 element whose className contains
both text-[28px] and type-title-xl and delete the text-[28px] token.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: eb9cbe49-84dd-4647-b379-87932555ed7f
📒 Files selected for processing (7)
apps/site/src/app/layout.tsxapps/site/src/app/orm/page.tsxapps/site/src/app/pricing/page.tsxapps/site/src/app/pricing/pricing-calculator.tsxapps/site/src/app/pricing/pricing-page-content.tsxapps/site/src/app/studio/page.tsxpackages/ui/src/components/navigation-menu.tsx
✅ Files skipped from review due to trivial changes (4)
- apps/site/src/app/pricing/page.tsx
- apps/site/src/app/studio/page.tsx
- apps/site/src/app/orm/page.tsx
- packages/ui/src/components/navigation-menu.tsx
Fixes #DR-8082
Summary by CodeRabbit
New Features
Documentation
Style
Chores