Skip to content

feat: DR-7730 About page#7719

Merged
carlagn merged 15 commits intomainfrom
feat/DR-7730-about
Mar 30, 2026
Merged

feat: DR-7730 About page#7719
carlagn merged 15 commits intomainfrom
feat/DR-7730-about

Conversation

@carlagn
Copy link
Copy Markdown
Contributor

@carlagn carlagn commented Mar 27, 2026

Summary by CodeRabbit

  • New Features

    • Added a full About page with hero, investor highlights, values, masonry image gallery, and team CTA.
    • New responsive masonry gallery component and per-card alignment options for improved layout control.
    • New cookie-consent UI, surveys, feedback toolbar, and referral/tracking integrations for richer site interactions.
  • Chores

    • Added runtime packages for masonry layout and prop validation.
    • Added multiple new public assets (styles, scripts) to support visuals, consent, analytics, and interactive widgets.

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 27, 2026

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

Project Deployment Actions Updated (UTC)
blog Ready Ready Preview, Comment Mar 30, 2026 7:13pm
docs Ready Ready Preview, Comment Mar 30, 2026 7:13pm
eclipse Ready Ready Preview, Comment Mar 30, 2026 7:13pm
site Ready Ready Preview, Comment Mar 30, 2026 7:13pm

Request Review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 27, 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 About page and masonry component, two runtime dependencies, and a large set of public assets under apps/site/public/illustrations/about/prisma_files/ (CSS bundles, consent/analytics/tracking scripts, Webpack chunks, and runtime widgets).

Changes

Cohort / File(s) Summary
Dependencies
apps/site/package.json
Added runtime deps: react-responsive-masonry ^2.7.1 and prop-types ^15.8.1.
About page
apps/site/src/app/about/page.tsx
New Next.js route exporting metadata and default About component with hero, masonry gallery, investors/people, CTAs, and content arrays.
Components
apps/site/src/components/careers/masonry.tsx, apps/site/src/components/homepage/card-section/card-section.tsx
Added client-only MasonryPict component (uses react-responsive-masonry) and extended TwoColumnItem with optional alignItems prop.
Public CSS - globals & tokens
apps/site/public/illustrations/about/prisma_files/c876cebd...css, ...ea94d1...css, ...c8d2c7...css
New global token/variable files and theme overrides (light/dark, fonts, spacing, design tokens).
Public CSS - typography & code
...2a6fb28c...css, ...3f3d7f9...css
Added typography/normalize and Prism/CodeMirror/EasyMDE styling and code-syntax token rules.
Public CSS - illustrations & animations
...468d1dc4...css, ...7ccc8ba6...css, ...beddc112...css, ...fb89d5b...css
Added SVG reveal animations, marquee/illustration layouts, responsive grid/card utilities, and interactive UI/animation rules.
Consent / Cookie runtime
apps/site/public/illustrations/about/prisma_files/banner.js, script.js
Added CookieYes banner runtime and blocking logic: consent store, scripts/iframe interception, placeholders, consent APIs on window.cookieyes.
Analytics / PostHog config & surveys
.../config.js, .../surveys.js
Added PostHog remote config assignment and a bundled surveys runtime with global hooks (assigns to ir.__PosthogExtensions__).
Tracking / referral / pixels
.../tolt.js, .../uwt.js, .../f.txt
Added Tolt referral integration (Stripe DOM hooks), UWT/OneTag pixel wrapper (exports UWT/OneTag/SET and window.twq.exe), and a beacon helper (f.txt).
Feedback / Vercel toolbar
.../feedback.js, .../webpack-6e25fd0d2f931c77.js
Added Vercel live-feedback bundle and conditional loader that injects the feedback script when opt-in cookie is present.
Layout / runtime chunks
.../layout-cf24a85dfe968efb.js, .../main-app-4bd62aea...js
Added Webpack/Next.js chunks: layout wrapper component (preloads, JSON‑LD, UTM persistence) and main-app bootstrapping chunk.
Misc public scripts
many files under `apps/site/public/illustrations/about/prisma_files/*.(js
css

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

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.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly indicates a new About page feature (DR-7730), which aligns with the primary changeset additions including the new about/page.tsx route and supporting components.

✏️ 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 Mar 27, 2026

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

Build Status Details Updated (UTC)
default (Inspect) ✅ No changes detected - Mar 30, 2026, 7:19 PM

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: 12

🧹 Nitpick comments (1)
apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css (1)

1-1: Prefer shipping source CSS (or preserve readable build artifact) for maintainability.

On Line 1, having a single-line minified stylesheet in the repo makes review/debugging extremely hard and increases risk when future edits are needed. Prefer committing source styles (or non-minified artifact) and generating minified output in build/deploy.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css` at
line 1, The committed file is a single-line minified stylesheet (e.g. classes
like _1jljjz60, ruictu26, r3ds9x1) which is hard to review and maintain; replace
this minified CSS with the original source (precompiled SASS/LESS/PostCSS) or a
beautified/unminified CSS build artifact, and update the repo to store the
readable source alongside generated outputs (and/or add the minified file to
CI/build artifacts rather than committing it). Ensure classes referenced in the
codebase (such as ._1jljjz60, .ruictu26, .r3ds9x1) continue to match the
compiled output and add a source map or link to the build pipeline so
minification happens during CI/deploy instead of in the repo.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/site/public/illustrations/about/prisma_files/f.txt`:
- Line 1: The bundle currently calls s.ss_(...) immediately which triggers D/F/E
and sends Google Ads beacons; modify the code so the final s.ss_(window,
'OjE3...',['https://www.google.com/...', ...], []) invocation only runs after a
marketing consent check (e.g., call a hasMarketingConsent() or
getUserConsent('marketing') function). Specifically, locate the IIFE that
defines D, E, F and the final s.ss_ call and wrap that final invocation in a
conditional that verifies marketing consent before calling s.ss_, and ensure
D/F/E still safely no-op or queue when consent is denied to avoid runtime
errors.

In `@apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css`:
- Line 1: The generated CSS bundle contains many Stylelint violations (see long
selector names like ._1jljjz60, ._1jljjz61, etc.), so either fix the generator
output (ensure font-family values, url() quoting, and deprecated properties are
corrected at the source that emits these hashed/minified classes) or exclude
generated bundles from strict linting by adding an ignore rule/pattern to your
Stylelint config (e.g., via ignoreFiles or .stylelintignore) that matches the
hashed/minified CSS outputs (the files that include selectors like ._1jljjz60),
so the CI lint step no longer blocks merges.
- Line 1: The file contains invalid top-level nested selectors like
"(._1jljjz67:hover) &:before{...}" which browsers drop; find occurrences of
those patterns (e.g. the invalid selectors referencing ._1jljjz67, ._1jljjz6d,
._1jljjz6f, ._1jljjz68, ._1jljjz69) and replace them with valid, flattened
selectors: remove the parentheses and the "&" and compose a proper selector that
expresses the intended relationship (for example "._1jljjz67:hover:before" or,
if the pseudo-element is on a child, "._1jljjz67:hover .<child-class>:before");
if this CSS is generated, fix the generator configuration to emit flattened
selectors instead of nested "&" at top level.

In
`@apps/site/public/illustrations/about/prisma_files/layout-cf24a85dfe968efb.js`:
- Line 1: Remove or document the unused production bundle file
layout-cf24a85dfe968efb.js inside the public/illustrations/about/prisma_files/
directory: if this is an accidental CMS/export artifact, delete the file (and
similar dated content-hash artifacts) and update the commit to remove them; if
this directory is an intentional CMS cache layer, add documentation (README)
explaining its purpose and add an entry to .gitignore or repository docs to
prevent future accidental commits; reference the prisma_files directory and the
layout-cf24a85dfe968efb.js filename when making the change so reviewers can
verify the removal or added documentation.

In `@apps/site/public/illustrations/about/prisma_files/tolt.js`:
- Line 1: The signup handler in function f sets window.tolt_data.customer_id
without ensuring window.tolt_data exists and always uses a 30-day TTL; update
the "signup" branch inside f (the expression that currently does "return
'signup'===e&&r.customer_id&&(window.tolt_data.customer_id=r.customer_id,u('tolt_data',window.tolt_data,30)),r")
to first ensure window.tolt_data is an object (create it if null), assign
customer_id into it, and call u('tolt_data', window.tolt_data, ttl) where ttl
preserves an existing window.tolt_data.cookie_duration or uses r.cookie_duration
if present, falling back to 30 only as a last resort; reference symbols:
function f, helper u, and global window.tolt_data.
- Line 1: The code posts full window.location.href and document.referrer when
building the referral payload (see the block that creates the local variable i
assigned from window.location.href and the object literal
{public_id:s,param:r,code:...,page:i,referrer:document?.referrer}); change these
to sanitized versions that strip query strings and fragments (e.g. use
location.origin + location.pathname for the current page and parse
document.referrer with URL to keep only origin+pathname) before placing them
into the payload, and also ensure any other places referencing
window.location.href or document.referrer (e.g. where click/signup payloads are
assembled) use the same sanitized values.
- Line 1: The psl script onerror handler only logs the error and never calls the
initialization callback t, preventing the fallback path in the self-invoking
initializer from running; update the onerror handler for the created script
element (variable e) so it calls the same init callback t() after logging the
error (or invokes the initializer directly) to ensure the code path that uses
window.location.hostname runs even when psl fails to load; reference the script
element variable e, its onerror handler, and the init callback t in your change
(ensure any existing console.error("Failed to load the PSL script") remains).

In `@apps/site/src/app/about/page.tsx`:
- Around line 208-216: The card object with icon "fa-regular fa-cubes-stacked"
has a mismatched title "Built on open source" versus a description about Data
DX; update the title in that card (the object containing icon/title/description)
to reflect the body copy (e.g., "Built on Data DX" or "Data DX principles") so
the heading and description match across the hero grid.
- Around line 333-336: The /about page is reusing SITE_HOME_TITLE and
SITE_HOME_DESCRIPTION (from blog-metadata) which are home-specific; update the
exported metadata object in page.tsx to use about-specific values instead:
either create and import new constants (e.g., SITE_ABOUT_TITLE,
SITE_ABOUT_DESCRIPTION) from a new or existing about-metadata module, or replace
the values with the correct about page strings inline in the metadata export;
ensure the symbol metadata in page.tsx references the new about constants (not
SITE_HOME_TITLE/SITE_HOME_DESCRIPTION) so search engines and previews show the
correct copy.
- Around line 494-497: The footer CTA using the Button component rendering the
text "View open positions" is inert; make it navigate to the careers page by
either wrapping the Button with a Link (next/link) pointing to the desired route
(e.g. "/careers" or external jobs URL) or by adding an onClick that calls
router.push("/careers"); update the element that contains Button in
apps/site/src/app/about/page.tsx (the Button instance with the <i
className="fa-regular fa-arrow-right ml-2" />) to perform the navigation so the
CTA is actionable.
- Around line 135-145: Remove the pasted OSS nomination copy that follows the
climate action list: delete the <ul> with the three <li> items starting with
"Usage within Prisma..." and the trailing <h6> that begins "Projects owned or
managed by Prisma employees cannot be nominated." (these strings appear in
page.tsx within the climate accordion). Replace them with the intended
climate-specific content or simply remove the block so the accordion shows only
climate-related items.

In `@apps/site/src/components/careers/masonry.tsx`:
- Around line 20-27: The Image tiles currently hardcode alt="hello" inside the
images.map rendering; update the Image component to use each item's alt text
(e.g., replace alt="hello" with alt={e.imageAlt ?? ''} or alt={e.alt ?? ''}
depending on your data shape) so each image announces its own descriptive text,
and fallback to an empty string when the image is decorative or no alt provided.

---

Nitpick comments:
In `@apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css`:
- Line 1: The committed file is a single-line minified stylesheet (e.g. classes
like _1jljjz60, ruictu26, r3ds9x1) which is hard to review and maintain; replace
this minified CSS with the original source (precompiled SASS/LESS/PostCSS) or a
beautified/unminified CSS build artifact, and update the repo to store the
readable source alongside generated outputs (and/or add the minified file to
CI/build artifacts rather than committing it). Ensure classes referenced in the
codebase (such as ._1jljjz60, .ruictu26, .r3ds9x1) continue to match the
compiled output and add a source map or link to the build pipeline so
minification happens during CI/deploy instead of in the repo.
🪄 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: d9795d65-2682-4268-9296-897c42aa31c0

📥 Commits

Reviewing files that changed from the base of the PR and between 6f79795 and 343649d.

⛔ Files ignored due to path filters (71)
  • apps/site/public/icons/companies/about/altimeter.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/amplify.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/fathom.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/ivp.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/kleiner-perkins.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/system-one.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/about_0.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/about_0_light.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/about_1.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/about_1_light.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/hero_bg.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/hero_bg_light.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/01d73ffd0742aee4bb8f5094755bbf4c8a6f83d5-225x225.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/0296c63e6cb358789ee2e8e8bbe373b5be0d2b21-200x200.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/07c17958b386a607bfce5428de6ee46ec751a91a-3792x2845.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/0db0ed93bc58ad5cf6985a3e781a32b6d948c43e-519x680.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/0e8b284f045c3aa0c3f389678402137028920c68-461x263.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/10bfd6ecaa49258e970f665796456121df77f3fe-2048x1365.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/1b3698c250765f09e18bbf2b799e683c4cd54947-178x29.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/1c34bce335f90fe52fb95c1df232caa3bb637588-200x200.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/2e019733d341be788cc69ef340d8a3140f5383e4-227x222.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/354e0720283c6c4d95a40a351f4d56756d28dceb-400x400.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/394d186f400227fff5e71467b6161836f20fd06a-188x188.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/42c637eaaed5341ca3d58401a6df89d4b7f78cd8-2758x4142.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/4bd99e8b741a8134cb0684ff92e091398d6d6a6c-300x300.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/6614514c52c46a2c0dca3387761dfbf110ea6e8f-53x40.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/6ddac71dbf7aef73e7ac36a4c1e2991af1d51568-245x24.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/6f2151ed08d45abd2e313f97d2961b01cfcfab0b-461x263.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/7a8b63cf5b1857d758c2cedf8abae7bf46a4fb5d-2196x1464.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/815e3639bf5015b8fb73c8e04ba013ae2e308d26-400x400.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/9435edc784d96be94591febcbeba2ddcef634f0d-3024x4032.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/9dde2ecce5c1a7eb6d26bcd67a9977a3bf6add84-240x239.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/a287aa7afa807276e1c1b2f4f066bc39d4812750-170x29.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/a7d8e10d8a79776b14ef16aa697ee5aed11eada3-1000x667.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/a92221e0f1209b27e3e08e0c7585a602498170e3-126x126.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/a97e3b4e19dbcd0ffe56405050ced0a2cab2b1e1-400x400.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/aa05e441e8ce81c2b660fbce6ce333e06482d97b-6000x4000.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/ab64fadb9a1e6b2dc4d7a85aee7da95a54358d70-300x300.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/ab8da63ccc0309c00b55e2b87a5c834f5e39b68b-227x222.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/bd84f47217c32edff355162d73d991f0d533eac2-502x683.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/cb32ce5bc133b0f22f8e8416a6e897ea84c7715b-139x31.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/close.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/d030a86003f4ccda292bdcb7ff5dfbb4e03066a3-200x200.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/dd6ee90c01850a6e35416bf7a3c087c6725c5461-200x113.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/fd62c80d50a331ecf48d34e10ef78e3b938a6a34-6118x4079.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/fd6f119163e2aaeac4bbcab5e947e5849555281a-124x35.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/gdpr.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/hipaa.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/insight.min.js is excluded by !**/*.min.js
  • apps/site/public/illustrations/about/prisma_files/iso27.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/logo-white.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/psl.min.js is excluded by !**/*.min.js
  • apps/site/public/illustrations/about/prisma_files/soc2.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/careers/hero_lines.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/careers/hero_lines_light.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/careers/hero_lines_mobile_light.svg is excluded by !**/*.svg
  • apps/site/public/photos/people/adam-gross.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/adam-wiggins.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/andy-chung.png is excluded by !**/*.png
  • apps/site/public/photos/people/augusto-marietti.jpeg is excluded by !**/*.jpeg
  • apps/site/public/photos/people/christian-bach.png is excluded by !**/*.png
  • apps/site/public/photos/people/guillermo-rauch.jpeg is excluded by !**/*.jpeg
  • apps/site/public/photos/people/james.png is excluded by !**/*.png
  • apps/site/public/photos/people/jeremy-yap.png is excluded by !**/*.png
  • apps/site/public/photos/people/nick-schrock.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/nicolas-dessaigne.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/philip-moehring.png is excluded by !**/*.png
  • apps/site/public/photos/people/robin-vasan.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/spencer-kimball.jpeg is excluded by !**/*.jpeg
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (52)
  • apps/site/package.json
  • apps/site/public/illustrations/about/prisma.html
  • apps/site/public/illustrations/about/prisma_files/2815-807c31d5443cd91b.js
  • apps/site/public/illustrations/about/prisma_files/2a6fb28cfeead51d.css
  • apps/site/public/illustrations/about/prisma_files/3f3d7f98fd449ef4.css
  • apps/site/public/illustrations/about/prisma_files/468d1dc45841be39.css
  • apps/site/public/illustrations/about/prisma_files/7615-27c1a37f2e576ab0.js
  • apps/site/public/illustrations/about/prisma_files/7ccc8ba673eb4091.css
  • apps/site/public/illustrations/about/prisma_files/__enzuzo-cookiebar.js
  • apps/site/public/illustrations/about/prisma_files/adsct
  • apps/site/public/illustrations/about/prisma_files/adsct(1)
  • apps/site/public/illustrations/about/prisma_files/banner.js
  • apps/site/public/illustrations/about/prisma_files/be30ea5f-09b6c7eb0dcd4b70.js
  • apps/site/public/illustrations/about/prisma_files/beddc1125f0bc184.css
  • apps/site/public/illustrations/about/prisma_files/c876cebdff8dd769.css
  • apps/site/public/illustrations/about/prisma_files/c8d2c7ba52084189.css
  • apps/site/public/illustrations/about/prisma_files/config.js
  • apps/site/public/illustrations/about/prisma_files/d22b7bbe7e7112a8.css
  • apps/site/public/illustrations/about/prisma_files/ea94d1a48123726c.css
  • apps/site/public/illustrations/about/prisma_files/f.txt
  • apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css
  • apps/site/public/illustrations/about/prisma_files/feedback.js
  • apps/site/public/illustrations/about/prisma_files/gtm.js
  • apps/site/public/illustrations/about/prisma_files/js
  • apps/site/public/illustrations/about/prisma_files/layout-cf24a85dfe968efb.js
  • apps/site/public/illustrations/about/prisma_files/main-app-4bd62aea08e7cb65.js
  • apps/site/public/illustrations/about/prisma_files/polyfills-42372ed130431b0a.js
  • apps/site/public/illustrations/about/prisma_files/posthog-recorder.js
  • apps/site/public/illustrations/about/prisma_files/script.js
  • apps/site/public/illustrations/about/prisma_files/surveys.js
  • apps/site/public/illustrations/about/prisma_files/tolt.js
  • apps/site/public/illustrations/about/prisma_files/uwt.js
  • apps/site/public/illustrations/about/prisma_files/webpack-6e25fd0d2f931c77.js
  • apps/site/public/photos/careers/masonry_1.webp
  • apps/site/public/photos/careers/masonry_10.webp
  • apps/site/public/photos/careers/masonry_11.webp
  • apps/site/public/photos/careers/masonry_12.webp
  • apps/site/public/photos/careers/masonry_13.webp
  • apps/site/public/photos/careers/masonry_14.webp
  • apps/site/public/photos/careers/masonry_2.webp
  • apps/site/public/photos/careers/masonry_3.webp
  • apps/site/public/photos/careers/masonry_4.webp
  • apps/site/public/photos/careers/masonry_5.webp
  • apps/site/public/photos/careers/masonry_6.webp
  • apps/site/public/photos/careers/masonry_7.webp
  • apps/site/public/photos/careers/masonry_8.webp
  • apps/site/public/photos/careers/masonry_9.webp
  • apps/site/public/photos/people/sam-lambert.webp
  • apps/site/public/photos/people/tom-preston-warner.webp
  • apps/site/src/app/about/page.tsx
  • apps/site/src/components/careers/masonry.tsx
  • apps/site/src/components/homepage/card-section/card-section.tsx

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

♻️ Duplicate comments (3)
apps/site/src/app/about/page.tsx (3)

203-211: ⚠️ Potential issue | 🟡 Minor

Rename the third hero card.

The heading still says "Built on open source", but the body copy is about Data DX. This reads like leftover copy and makes the card grid inconsistent.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/src/app/about/page.tsx` around lines 203 - 211, The third hero
card's title string ("Built on open source") is inconsistent with its
description about Data DX; find the hero card object that has icon "fa-regular
fa-cubes-stacked" and the JSX description referencing Data DX and replace the
title value with a matching heading such as "Built on Data DX" or "Data DX
principles" so the card's title and body copy are consistent.

489-492: ⚠️ Potential issue | 🔴 Critical

Make the primary CTA actually navigate.

This button still renders without an href, link wrapper, or click handler, so the page's main conversion point is dead. Point it at the intended jobs/careers destination.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/src/app/about/page.tsx` around lines 489 - 492, The primary CTA
Button rendering "View open positions" is missing navigation — wrap the Button
(the element containing <span>View open positions</span> and the <i> icon) with
a Link to the careers page (e.g. "/careers") or give the Button an onClick that
routes there; if this is a Next.js page, import Link from 'next/link' and
replace the bare Button with <Link href="/careers"><Button
...>...</Button></Link> so the main conversion CTA actually navigates to the
jobs/careers destination.

328-331: ⚠️ Potential issue | 🟠 Major

Use about-specific metadata on this route.

SITE_HOME_TITLE and SITE_HOME_DESCRIPTION still come from apps/site/src/lib/blog-metadata.ts, where they contain home-page product copy. That means /about will publish the wrong title and description to crawlers and link previews.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/src/app/about/page.tsx` around lines 328 - 331, The page exports
generic home metadata (export const metadata) using SITE_HOME_TITLE and
SITE_HOME_DESCRIPTION which are home-page copy; replace these with
about-specific metadata by either importing ABOUT_TITLE/ABOUT_DESCRIPTION (or
adding new ABOUT_PAGE_TITLE and ABOUT_PAGE_DESCRIPTION constants) and using
those in the metadata object for the about page (update the metadata symbol in
page.tsx to reference the about-specific identifiers so crawlers and link
previews get the correct title/description).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/site/src/app/about/page.tsx`:
- Around line 80-83: Multiple image entries use non-descriptive alt text
("About", "Masonry 1", "Hero lines"); update each imageAlt and mobileImageAlt
value to either a concise, descriptive string that conveys the image content for
assistive tech (e.g., "Portrait of team working in office" or "Abstract mosaic
background" where meaningful) or set alt="" for purely decorative/background
artwork. Locate all occurrences of the image objects that define
imageUrl/imageAlt/mobileImageUrl/mobileImageAlt (including the blocks containing
"Masonry 1" and "Hero lines") and replace the placeholder strings accordingly,
keeping mobile and desktop alts consistent or tailored to the cropped mobile
view.

---

Duplicate comments:
In `@apps/site/src/app/about/page.tsx`:
- Around line 203-211: The third hero card's title string ("Built on open
source") is inconsistent with its description about Data DX; find the hero card
object that has icon "fa-regular fa-cubes-stacked" and the JSX description
referencing Data DX and replace the title value with a matching heading such as
"Built on Data DX" or "Data DX principles" so the card's title and body copy are
consistent.
- Around line 489-492: The primary CTA Button rendering "View open positions" is
missing navigation — wrap the Button (the element containing <span>View open
positions</span> and the <i> icon) with a Link to the careers page (e.g.
"/careers") or give the Button an onClick that routes there; if this is a
Next.js page, import Link from 'next/link' and replace the bare Button with
<Link href="/careers"><Button ...>...</Button></Link> so the main conversion CTA
actually navigates to the jobs/careers destination.
- Around line 328-331: The page exports generic home metadata (export const
metadata) using SITE_HOME_TITLE and SITE_HOME_DESCRIPTION which are home-page
copy; replace these with about-specific metadata by either importing
ABOUT_TITLE/ABOUT_DESCRIPTION (or adding new ABOUT_PAGE_TITLE and
ABOUT_PAGE_DESCRIPTION constants) and using those in the metadata object for the
about page (update the metadata symbol in page.tsx to reference the
about-specific identifiers so crawlers and link previews get the correct
title/description).
🪄 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: bc6b5ac7-9c96-4d35-9fef-f8612c91ff3e

📥 Commits

Reviewing files that changed from the base of the PR and between 343649d and 2cc778f.

📒 Files selected for processing (1)
  • apps/site/src/app/about/page.tsx

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: 12

♻️ Duplicate comments (5)
apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css (1)

1-1: ⚠️ Potential issue | 🟠 Major

Regenerate this CSS — the top-level &:before selectors are invalid.

Rules like (._1jljjz67:hover) &:before{...} only make sense before a nesting transform runs. In a plain .css asset browsers drop them, so the related hover pseudo-element styles never apply. Please flatten these selectors in the source bundle instead of shipping them verbatim.

Verify by searching for top-level nesting syntax in the emitted file. Expected result after the fix: no matches.

#!/bin/bash
rg -n '\(\._[a-z0-9]+:hover\)\s*&:before' apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css` at
line 1, Top-level nested selectors like "(._1jljjz67:hover) &:before" remain in
the emitted CSS and must be flattened because browsers ignore nesting syntax;
find occurrences of the pattern (e.g. selectors containing ") &:before" such as
"(._1jljjz67:hover) &:before", "(._1jljjz6d:hover) &:before",
"(._1jljjz6f:hover) &:before", "(._1jljjz68:hover) &:before",
"(._1jljjz69:hover) &:before" and update the generator/source so these become
valid flat selectors (for example ".<child-selector>:before" tied to the hovered
parent, or duplicate the :before rule under the parent hover selector) so the
pseudo-element styles are applied; regenerate the CSS bundle and verify no
top-level nesting patterns remain by searching for the ") &:before" pattern.
apps/site/public/illustrations/about/prisma_files/tolt.js (3)

1-1: ⚠️ Potential issue | 🟠 Major

Guard the signup success path when window.tolt_data is still null.

window.tolt_data starts as null, but the "signup" branch writes window.tolt_data.customer_id unconditionally. A successful signup before any referral state is hydrated turns into a client-side exception, and the hard-coded 30 also discards the stored cookie duration. Initialize the object before writing and preserve the existing TTL.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/public/illustrations/about/prisma_files/tolt.js` at line 1, The
signup success path in function f currently writes window.tolt_data.customer_id
without ensuring window.tolt_data exists and always uses 30 days; update f so
that when r.customer_id is present you first ensure window.tolt_data =
window.tolt_data || {} then set window.tolt_data.customer_id = r.customer_id and
compute ttl = window.tolt_data.cookie_duration || r.cookie_duration || 30 (or
similar) before calling u("tolt_data", window.tolt_data, ttl) so you preserve
any existing TTL and avoid null deref; reference functions/vars: f, u,
window.tolt_data.

1-1: ⚠️ Potential issue | 🟠 Major

Call the initializer from the PSL load error path.

e.onerror only logs the failure. When the PSL CDN request fails, the fallback host logic inside t() never runs, queued commands never drain, and toltScriptLoaded is never dispatched. After logging, invoke the same init callback.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/public/illustrations/about/prisma_files/tolt.js` at line 1, The PSL
script's onerror handler only logs and never invokes the initializer (t), so
fallback initialization, draining window.tolt.queue and dispatching
"toltScriptLoaded" never occur; update the e.onerror handler to log the error
and then call the same initializer (t) used by e.onload (i.e., after
console.error("Failed to load the PSL script") invoke t()) so the fallback host
logic inside the async initializer runs and queued commands are processed.

1-1: ⚠️ Potential issue | 🟠 Major

Strip query and fragment data before sending page and referrer.

The click payload posts window.location.href and document.referrer verbatim. That can leak emails, invite tokens, or other sensitive query/hash data even though the referral code is already sent separately. Send only origin + pathname for both fields.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/public/illustrations/about/prisma_files/tolt.js` at line 1, When
building the click payload object (the local variable t created inside the async
initializer where you set page=i and referrer=document?.referrer), strip query
and fragment components and send only origin + pathname for both fields; update
the assignment that constructs t (and any place that sends f("clicks", t)) to
set page = window.location.origin + window.location.pathname and referrer =
(document.referrer ? new URL(document.referrer).origin + new
URL(document.referrer).pathname : "") so sensitive query/hash data is not
included.
apps/site/public/illustrations/about/prisma_files/f.txt (1)

1-1: ⚠️ Potential issue | 🟠 Major

Gate the Google Ads beacon behind marketing consent.

This asset still invokes s.ss_(...) immediately and posts to google.com/pagead/... before any consent check. If this snapshot is served, ad-tech data is sent on first execution. Please gate the final invocation in the source that emits this file, or drop the bundle entirely.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/public/illustrations/about/prisma_files/f.txt` at line 1, The
snippet calls s.ss_(...) immediately, sending ad-tech beacons
(google.com/pagead/...) before any consent check; update the emitter so the
final invocation of s.ss_ (the call at the end of this bundle) is only executed
after marketing consent is granted (or remove the bundle entirely). Locate the
final invocation symbol s.ss_ and the surrounding I/D/E functions in the emitted
output and wrap or gate that call behind your app's marketing-consent predicate
(or stop emitting this file when consent is not given) so no network requests to
pagead/* occur on initial execution.
🧹 Nitpick comments (1)
apps/site/public/illustrations/about/prisma_files/config.js (1)

4-4: Stale time-bound survey config is hardcoded in a static asset.

As of March 30, 2026, several end_date values in Line 4 are already in the past (e.g., January 21, 2026 and December 4, 2025). This suggests production snapshot drift and unnecessary payload in a public About-page asset.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/public/illustrations/about/prisma_files/config.js` at line 4, The
public static asset embeds config.surveys with hardcoded end_date values that
are now stale; update the code that produces/embeds the config object (the
config JSON with keys "surveys", "token", etc.) to filter out or omit any survey
entries whose end_date is in the past before writing to the public asset (i.e.,
remove/skip items in config.surveys where survey.end_date && new
Date(survey.end_date) < new Date()); alternatively stop embedding time-bound
surveys in the static about payload and serve them from a dynamic endpoint
instead so the build artifact (config) no longer contains expired time-bound
data.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/site/public/illustrations/about/prisma_files/2a6fb28cfeead51d.css`:
- Line 1: The emitted CSS still contains uncompiled nesting (e.g., the selectors
"h2 .icon.icon-link:before" and "h2:hover .icon.icon-link:before" with nested
blocks like "h1{font-size:64px}…") and a nested "@media only screen" inside a
declaration, which indicates the CSS nesting step didn't run; update the build
pipeline to run the nesting/PostCSS step (add or enable postcss-nesting or
postcss-preset-env with nesting enabled) before minification/bundling, ensure
your CSS loader (webpack/rollup/vite) applies PostCSS plugins in the correct
order, rebuild the assets, and verify the final generated stylesheet no longer
contains nested rules.

In `@apps/site/public/illustrations/about/prisma_files/468d1dc45841be39.css`:
- Line 1: Stylelint flags unquoted url() arguments in the generated CSS (e.g.
fill:url(`#paint7_linear_1411_8106`) in selectors like
.accelerate_connection-pooling__aAAU8 .accelerate_svg-elem-25__JfR0I and similar
.accelerate_svg-elem-* rules); update each fill:url(#...) and any other url(...)
occurrences to include quotes around the fragment/id (e.g.
url("#paint7_linear_1411_8106")) across the file (check
.accelerate_svg-elem-22__54PRu, -23__Bvayn, -25__JfR0I, -26__0ntrq, -27__LfgbT,
-28__RzGXB, -30__Sjn6f, -31__ga6VZ, -32__rkZUB, -33__M_idA, -34__yP0W_,
-36__kPNiW, -37__ajSi8, -38__4I_Zf etc.), then re-run stylelint to confirm the
function-url-quotes violations are resolved.

In `@apps/site/public/illustrations/about/prisma_files/beddc1125f0bc184.css`:
- Line 1: The committed file is a minified build artifact (the hashed CSS with
obfuscated classes like ._27doyo1, ._27doyol, .ao9sk73) and should be removed
from source control; delete this file from the repo, add a .gitignore entry to
exclude generated/minified CSS (e.g., patterns that match hashed filenames or
the build output directory where files such as prisma_files/*.css are emitted),
ensure the original source styles (e.g., your src/ or styles/ CSS/SCSS files)
remain committed, and update CI/CD (build step in GitHub Actions/Vercel) to
generate these hashed/minified assets at deploy time instead of committing them.

In `@apps/site/public/illustrations/about/prisma_files/c8d2c7ba52084189.css`:
- Line 1: The CSS uses root-relative asset URLs (see variables
--16ohvvs2:/logo-dark.svg, --16ohvvs2:/logo-white.svg,
--16ohvvsy:/grid-left.svg, --16ohvvsz:/grid-right.svg) that 404 because assets
are colocated under illustrations/about/prisma_files; fix by either (A) changing
those URL references to correct relative paths (e.g., ./logo-white.svg or
../prisma_files/logo-white.svg) so the files resolve next to this CSS, or (B)
moving/adding the missing assets (logo-dark.svg, grid-left.svg, grid-right.svg
and logo-white.svg if needed) into the public root expected by the root-relative
paths and update any build/static copy config to include them; update
occurrences of the --16ohvvs2/--16ohvvsy/--16ohvvsz variables accordingly.

In `@apps/site/public/illustrations/about/prisma_files/config.js`:
- Around line 3-4: The public snapshot files prisma_files/config.js and
prisma_files/surveys.js contain a real PostHog project token
(phc_cmc85avbWyuJ2JyKdGPdv7dxXli8xLdWDBPbvIXWJfs) assigned to
window._POSTHOG_REMOTE_CONFIG and internal survey targeting metadata; remove
these files from the public/illustrations/about directory (or move them out of
the public static assets) so they are not served, and ensure any reference to
window._POSTHOG_REMOTE_CONFIG or the token is deleted or replaced with a
sanitized placeholder before committing.

In `@apps/site/public/illustrations/about/prisma_files/ea94d1a48123726c.css`:
- Line 1: The font stack defined in the CSS custom property --_123a9qen contains
unquoted keywords "Monaco" and "Consolas" which trigger stylelint
value-keyword-case errors; update the declaration for --_123a9qen (the value
currently "JetBrains Mono",Monaco,Consolas,"Liberation Mono","Courier
New",monospace) to either quote Monaco and Consolas (e.g. "Monaco","Consolas")
or lowercase them to satisfy the linter, then run the linter to confirm the
value-keyword-case violation is resolved.

In `@apps/site/public/illustrations/about/prisma_files/feedback.js`:
- Line 2: The vendored bundle contains a malformed instrument bootstrap URL in
the iframe srcdoc (see the srcdoc assignment that builds the instrument script
URL containing "instrument.62eb92924...js?dpl=...?dpl=..." inside the me/ge (or
me -> ge) initialization where f.srcdoc is set); fix by regenerating the
vendored bundle from upstream/source so the query-string is correctly emitted
(the second "?" should be "&") rather than hand-patching the minified file, then
replace the bundled file so the srcdoc string is rebuilt properly.

In
`@apps/site/public/illustrations/about/prisma_files/layout-cf24a85dfe968efb.js`:
- Line 1: The GTM and Tolt scripts are injected unconditionally inside h() (the
f.default elements with id "gmanager" and src "https://cdn.tolt.io/tolt.js");
move those injections behind the CookieYes consent resolution by: remove or stop
rendering the f.default for "gmanager" and the async tolt script in h(), and
instead register a consent callback (using CookieYes's JS API or your existing
consent handler) inside the layout initialization (e.g., in P or b) that only
inserts/creates those scripts after marketing/analytics consent is granted; keep
the rest of h() (preloads, schema tags) unchanged and ensure the injection uses
the same element attributes (id "gmanager" and async/data-tolt) so behaviour/IDs
remain stable.

In `@apps/site/public/illustrations/about/prisma_files/script.js`:
- Line 1: The bundle currently hard-throws inside the anonymous domain-check
IIFE (the if(!function(){...}()) throw new Error(...)) when
window.location.hostname doesn't resolve to the expected _ckyStore._rootDomain,
aborting the consent bootstrap; change that throw into a safe no-op by replacing
the throw Error with a non-throwing fallback (e.g., console.warn/log and return)
so the rest of the script can gracefully no-op on non-production hosts; ensure
the check references the same logic (the inline registeredDomain/currentDomain
comparison) and keep o._ckyStore._rootDomain as the production sentinel, or
alternatively gate the entire banner injection (the code that appends the script
element with id "cookieyes-banner") behind a positive domain check so
preview/staging/local hosts simply skip loading instead of aborting.

In `@apps/site/public/illustrations/about/prisma_files/uwt.js`:
- Line 1: This JS bundle is active tracking code — it exposes/uses
getAutoMatchedParams, interceptDataLayer, saveTwclidIntoCookie,
saveTwpidIntoCookie and executes the pixel bootstrap (the module invoked at the
end that calls n(2735)/window.twttr setup) — remove or neutralize it so the
illustration is inert: either delete this file from the About-page asset or edit
the bundle to remove/disable the top-level pixel bootstrap and any calls that
register pixels or persist identifiers (specifically remove the module execution
that wires up window.twq/window.twttr, and disable functions
getAutoMatchedParams, interceptDataLayer, saveTwclidIntoCookie and
saveTwpidIntoCookie or guard them behind a strict opt-in so they cannot run in
the static illustration).
- Line 1: Remove the checked-in saved webpage artifact (prisma.html) and its
extracted assets directory (prisma_files/) which include the bundled third-party
script uwt.js; delete prisma.html and the prisma_files/ directory from the
branch, ensure there are no runtime references by grepping the repo for
"prisma.html" or "uwt.js" and remove any accidental references, add prisma.html
and prisma_files/ to .gitignore to prevent re-adding, run the tests/build to
confirm no breakage, and commit the cleanup with a clear message like "chore:
remove unused prisma.html and prisma_files (contains bundled third‑party
uwt.js)".

In
`@apps/site/public/illustrations/about/prisma_files/webpack-6e25fd0d2f931c77.js`:
- Line 2: Remove the Vercel live feedback bootstrap from the static mirrored
assets: delete the conditional injection block that checks document.cookie for
"__vercel_toolbar=1" and appends feedback.js in webpack-6e25fd0d2f931c77.js (the
IIFE that creates element s, sets s.src to
'https://vercel.live/_next-live/feedback/feedback.js' and appends it), and also
remove the direct feedback script tag from prisma.html (the script that loads
feedback.js), or move both behind an internal-only runtime guard so they never
run in the public/static export.

---

Duplicate comments:
In `@apps/site/public/illustrations/about/prisma_files/f.txt`:
- Line 1: The snippet calls s.ss_(...) immediately, sending ad-tech beacons
(google.com/pagead/...) before any consent check; update the emitter so the
final invocation of s.ss_ (the call at the end of this bundle) is only executed
after marketing consent is granted (or remove the bundle entirely). Locate the
final invocation symbol s.ss_ and the surrounding I/D/E functions in the emitted
output and wrap or gate that call behind your app's marketing-consent predicate
(or stop emitting this file when consent is not given) so no network requests to
pagead/* occur on initial execution.

In `@apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css`:
- Line 1: Top-level nested selectors like "(._1jljjz67:hover) &:before" remain
in the emitted CSS and must be flattened because browsers ignore nesting syntax;
find occurrences of the pattern (e.g. selectors containing ") &:before" such as
"(._1jljjz67:hover) &:before", "(._1jljjz6d:hover) &:before",
"(._1jljjz6f:hover) &:before", "(._1jljjz68:hover) &:before",
"(._1jljjz69:hover) &:before" and update the generator/source so these become
valid flat selectors (for example ".<child-selector>:before" tied to the hovered
parent, or duplicate the :before rule under the parent hover selector) so the
pseudo-element styles are applied; regenerate the CSS bundle and verify no
top-level nesting patterns remain by searching for the ") &:before" pattern.

In `@apps/site/public/illustrations/about/prisma_files/tolt.js`:
- Line 1: The signup success path in function f currently writes
window.tolt_data.customer_id without ensuring window.tolt_data exists and always
uses 30 days; update f so that when r.customer_id is present you first ensure
window.tolt_data = window.tolt_data || {} then set window.tolt_data.customer_id
= r.customer_id and compute ttl = window.tolt_data.cookie_duration ||
r.cookie_duration || 30 (or similar) before calling u("tolt_data",
window.tolt_data, ttl) so you preserve any existing TTL and avoid null deref;
reference functions/vars: f, u, window.tolt_data.
- Line 1: The PSL script's onerror handler only logs and never invokes the
initializer (t), so fallback initialization, draining window.tolt.queue and
dispatching "toltScriptLoaded" never occur; update the e.onerror handler to log
the error and then call the same initializer (t) used by e.onload (i.e., after
console.error("Failed to load the PSL script") invoke t()) so the fallback host
logic inside the async initializer runs and queued commands are processed.
- Line 1: When building the click payload object (the local variable t created
inside the async initializer where you set page=i and
referrer=document?.referrer), strip query and fragment components and send only
origin + pathname for both fields; update the assignment that constructs t (and
any place that sends f("clicks", t)) to set page = window.location.origin +
window.location.pathname and referrer = (document.referrer ? new
URL(document.referrer).origin + new URL(document.referrer).pathname : "") so
sensitive query/hash data is not included.

---

Nitpick comments:
In `@apps/site/public/illustrations/about/prisma_files/config.js`:
- Line 4: The public static asset embeds config.surveys with hardcoded end_date
values that are now stale; update the code that produces/embeds the config
object (the config JSON with keys "surveys", "token", etc.) to filter out or
omit any survey entries whose end_date is in the past before writing to the
public asset (i.e., remove/skip items in config.surveys where survey.end_date &&
new Date(survey.end_date) < new Date()); alternatively stop embedding time-bound
surveys in the static about payload and serve them from a dynamic endpoint
instead so the build artifact (config) no longer contains expired time-bound
data.
🪄 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: bda01458-e882-4da0-8481-be5dbb74d041

📥 Commits

Reviewing files that changed from the base of the PR and between 2cc778f and c095c09.

⛔ Files ignored due to path filters (71)
  • apps/site/public/icons/companies/about/altimeter.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/amplify.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/fathom.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/ivp.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/kleiner-perkins.svg is excluded by !**/*.svg
  • apps/site/public/icons/companies/about/system-one.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/about_0.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/about_0_light.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/about_1.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/about_1_light.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/hero_bg.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/hero_bg_light.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/01d73ffd0742aee4bb8f5094755bbf4c8a6f83d5-225x225.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/0296c63e6cb358789ee2e8e8bbe373b5be0d2b21-200x200.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/07c17958b386a607bfce5428de6ee46ec751a91a-3792x2845.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/0db0ed93bc58ad5cf6985a3e781a32b6d948c43e-519x680.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/0e8b284f045c3aa0c3f389678402137028920c68-461x263.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/10bfd6ecaa49258e970f665796456121df77f3fe-2048x1365.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/1b3698c250765f09e18bbf2b799e683c4cd54947-178x29.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/1c34bce335f90fe52fb95c1df232caa3bb637588-200x200.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/2e019733d341be788cc69ef340d8a3140f5383e4-227x222.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/354e0720283c6c4d95a40a351f4d56756d28dceb-400x400.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/394d186f400227fff5e71467b6161836f20fd06a-188x188.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/42c637eaaed5341ca3d58401a6df89d4b7f78cd8-2758x4142.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/4bd99e8b741a8134cb0684ff92e091398d6d6a6c-300x300.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/6614514c52c46a2c0dca3387761dfbf110ea6e8f-53x40.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/6ddac71dbf7aef73e7ac36a4c1e2991af1d51568-245x24.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/6f2151ed08d45abd2e313f97d2961b01cfcfab0b-461x263.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/7a8b63cf5b1857d758c2cedf8abae7bf46a4fb5d-2196x1464.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/815e3639bf5015b8fb73c8e04ba013ae2e308d26-400x400.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/9435edc784d96be94591febcbeba2ddcef634f0d-3024x4032.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/9dde2ecce5c1a7eb6d26bcd67a9977a3bf6add84-240x239.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/a287aa7afa807276e1c1b2f4f066bc39d4812750-170x29.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/a7d8e10d8a79776b14ef16aa697ee5aed11eada3-1000x667.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/a92221e0f1209b27e3e08e0c7585a602498170e3-126x126.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/a97e3b4e19dbcd0ffe56405050ced0a2cab2b1e1-400x400.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/aa05e441e8ce81c2b660fbce6ce333e06482d97b-6000x4000.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/ab64fadb9a1e6b2dc4d7a85aee7da95a54358d70-300x300.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/ab8da63ccc0309c00b55e2b87a5c834f5e39b68b-227x222.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/bd84f47217c32edff355162d73d991f0d533eac2-502x683.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/cb32ce5bc133b0f22f8e8416a6e897ea84c7715b-139x31.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/close.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/d030a86003f4ccda292bdcb7ff5dfbb4e03066a3-200x200.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/dd6ee90c01850a6e35416bf7a3c087c6725c5461-200x113.png is excluded by !**/*.png
  • apps/site/public/illustrations/about/prisma_files/fd62c80d50a331ecf48d34e10ef78e3b938a6a34-6118x4079.jpg is excluded by !**/*.jpg
  • apps/site/public/illustrations/about/prisma_files/fd6f119163e2aaeac4bbcab5e947e5849555281a-124x35.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/gdpr.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/hipaa.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/insight.min.js is excluded by !**/*.min.js
  • apps/site/public/illustrations/about/prisma_files/iso27.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/logo-white.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/about/prisma_files/psl.min.js is excluded by !**/*.min.js
  • apps/site/public/illustrations/about/prisma_files/soc2.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/careers/hero_lines.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/careers/hero_lines_light.svg is excluded by !**/*.svg
  • apps/site/public/illustrations/careers/hero_lines_mobile_light.svg is excluded by !**/*.svg
  • apps/site/public/photos/people/adam-gross.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/adam-wiggins.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/andy-chung.png is excluded by !**/*.png
  • apps/site/public/photos/people/augusto-marietti.jpeg is excluded by !**/*.jpeg
  • apps/site/public/photos/people/christian-bach.png is excluded by !**/*.png
  • apps/site/public/photos/people/guillermo-rauch.jpeg is excluded by !**/*.jpeg
  • apps/site/public/photos/people/james.png is excluded by !**/*.png
  • apps/site/public/photos/people/jeremy-yap.png is excluded by !**/*.png
  • apps/site/public/photos/people/nick-schrock.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/nicolas-dessaigne.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/philip-moehring.png is excluded by !**/*.png
  • apps/site/public/photos/people/robin-vasan.jpg is excluded by !**/*.jpg
  • apps/site/public/photos/people/spencer-kimball.jpeg is excluded by !**/*.jpeg
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (52)
  • apps/site/package.json
  • apps/site/public/illustrations/about/prisma.html
  • apps/site/public/illustrations/about/prisma_files/2815-807c31d5443cd91b.js
  • apps/site/public/illustrations/about/prisma_files/2a6fb28cfeead51d.css
  • apps/site/public/illustrations/about/prisma_files/3f3d7f98fd449ef4.css
  • apps/site/public/illustrations/about/prisma_files/468d1dc45841be39.css
  • apps/site/public/illustrations/about/prisma_files/7615-27c1a37f2e576ab0.js
  • apps/site/public/illustrations/about/prisma_files/7ccc8ba673eb4091.css
  • apps/site/public/illustrations/about/prisma_files/__enzuzo-cookiebar.js
  • apps/site/public/illustrations/about/prisma_files/adsct
  • apps/site/public/illustrations/about/prisma_files/adsct(1)
  • apps/site/public/illustrations/about/prisma_files/banner.js
  • apps/site/public/illustrations/about/prisma_files/be30ea5f-09b6c7eb0dcd4b70.js
  • apps/site/public/illustrations/about/prisma_files/beddc1125f0bc184.css
  • apps/site/public/illustrations/about/prisma_files/c876cebdff8dd769.css
  • apps/site/public/illustrations/about/prisma_files/c8d2c7ba52084189.css
  • apps/site/public/illustrations/about/prisma_files/config.js
  • apps/site/public/illustrations/about/prisma_files/d22b7bbe7e7112a8.css
  • apps/site/public/illustrations/about/prisma_files/ea94d1a48123726c.css
  • apps/site/public/illustrations/about/prisma_files/f.txt
  • apps/site/public/illustrations/about/prisma_files/fb89d5bb5dbb824e.css
  • apps/site/public/illustrations/about/prisma_files/feedback.js
  • apps/site/public/illustrations/about/prisma_files/gtm.js
  • apps/site/public/illustrations/about/prisma_files/js
  • apps/site/public/illustrations/about/prisma_files/layout-cf24a85dfe968efb.js
  • apps/site/public/illustrations/about/prisma_files/main-app-4bd62aea08e7cb65.js
  • apps/site/public/illustrations/about/prisma_files/polyfills-42372ed130431b0a.js
  • apps/site/public/illustrations/about/prisma_files/posthog-recorder.js
  • apps/site/public/illustrations/about/prisma_files/script.js
  • apps/site/public/illustrations/about/prisma_files/surveys.js
  • apps/site/public/illustrations/about/prisma_files/tolt.js
  • apps/site/public/illustrations/about/prisma_files/uwt.js
  • apps/site/public/illustrations/about/prisma_files/webpack-6e25fd0d2f931c77.js
  • apps/site/public/photos/careers/masonry_1.webp
  • apps/site/public/photos/careers/masonry_10.webp
  • apps/site/public/photos/careers/masonry_11.webp
  • apps/site/public/photos/careers/masonry_12.webp
  • apps/site/public/photos/careers/masonry_13.webp
  • apps/site/public/photos/careers/masonry_14.webp
  • apps/site/public/photos/careers/masonry_2.webp
  • apps/site/public/photos/careers/masonry_3.webp
  • apps/site/public/photos/careers/masonry_4.webp
  • apps/site/public/photos/careers/masonry_5.webp
  • apps/site/public/photos/careers/masonry_6.webp
  • apps/site/public/photos/careers/masonry_7.webp
  • apps/site/public/photos/careers/masonry_8.webp
  • apps/site/public/photos/careers/masonry_9.webp
  • apps/site/public/photos/people/sam-lambert.webp
  • apps/site/public/photos/people/tom-preston-warner.webp
  • apps/site/src/app/about/page.tsx
  • apps/site/src/components/careers/masonry.tsx
  • apps/site/src/components/homepage/card-section/card-section.tsx
✅ Files skipped from review due to trivial changes (5)
  • apps/site/package.json
  • apps/site/src/components/homepage/card-section/card-section.tsx
  • apps/site/public/illustrations/about/prisma_files/main-app-4bd62aea08e7cb65.js
  • apps/site/public/illustrations/about/prisma_files/c876cebdff8dd769.css
  • apps/site/src/app/about/page.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/site/src/components/careers/masonry.tsx

@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
@prisma prisma deleted a comment from coderabbitai bot Mar 30, 2026
Swap the careers masonry gallery to a Tailwind-only columns layout to avoid hydration mismatches and remove the unused react-responsive-masonry package.

Made-with: Cursor
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