Skip to content

Conversation

@ComputelessComputer
Copy link
Collaborator

No description provided.

@coderabbitai
Copy link

coderabbitai bot commented Nov 9, 2025

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Widespread UI and layout updates across many product and download routes: hero/CTA redesigns, added SlashSeparator and MockWindow previews, composed cn usage for CTA/button styling, several pages simplified to centered “Coming Soon” cards, draggable-icon interactions added to integrations pages, and minor header spacing tweaks. No public API or export-signature changes.

Changes

Cohort / File(s) Summary
Download page
apps/web/src/routes/_view/download/index.tsx
Restructured header into a constrained translucent banner with hover transition; simplified container hierarchy and spacing; changed disabled DownloadCard visuals to a gradient with reduced opacity.
Hero CTAs (multiple products)
apps/web/src/routes/_view/product/ai-assistant.tsx, apps/web/src/routes/_view/product/notepad.tsx, apps/web/src/routes/_view/product/mini-apps.tsx
Reworked hero areas to centered headings with prominent “Download for free” CTAs (inline SVGs), inserted SlashSeparator dividers, added/updated feature grids and CTA/button styling.
Modularized ai-notetaking
apps/web/src/routes/_view/product/ai-notetaking.tsx
Replaced monolithic page with componentized sections (Hero, Editor, Transcription, Summaries, Search, Sharing, FloatingPanel, CTA) and MockWindow placeholder visuals; removed prior template rendering.
Minimal / Coming-soon pages
apps/web/src/routes/_view/product/extensions.tsx, apps/web/src/routes/_view/product/api.tsx, apps/web/src/routes/_view/product/self-hosting.tsx
Simplified content to centered hero/card layouts with a disabled “Coming Soon” CTA; API page adds MockWindow and uses composed cn for button classes.
Interactive draggable integrations
apps/web/src/routes/_view/product/bot.tsx, apps/web/src/routes/_view/product/workflows.tsx
Introduced DRAGGABLE_ICONS data, DraggableIcon components with pointer drag handlers, position/scale state, resize/scroll recalculation, and SVG bezier connection beams between center and draggable icons.
Index / feature links
apps/web/src/routes/_view/index.tsx
Added link fields to several mainFeatures and detailsFeatures entries and render a “Learn more” Link when link exists instead of a button.
Header / navigation tweaks
apps/web/src/routes/_view/route.tsx
Increased header gap and added hover:underline with decoration-dotted to Product/Features dropdown links.
Routing content / minor edits
apps/web/src/routes/_view/product/local-ai.tsx
Non-functional formatting change (blank line after cn import).
New content
apps/web/content/articles/why-we-burned-it-down.mdx
Added a new MDX article with front matter, images, and CtaCard invocation.
Pricing changes
apps/web/src/routes/_view/pricing.tsx
Added optional originalPrice to PricingPlan; updated plan prices and UI to conditionally show original prices with strikethrough and adjusted savings text; TeamPricingBanner made static (no Link).

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Page as Integrations Page
  participant Icon as DraggableIcon
  participant State as Position State

  Note over Page,Icon `#f3f4f6`: Draggable icons with SVG beam connections
  User->>Icon: pointerdown
  Icon->>Icon: capture pointer, set dragging=true, record pointer offset, apply scale
  User->>Icon: pointermove
  Icon->>State: compute absolute position
  State-->>Page: update render (icon position + recompute SVG bezier path)
  User->>Icon: pointerup
  Icon->>Icon: release pointer, reset scale, set dragging=false
  Note over Page,State `#f8fafc`: window resize/scroll -> recalc bounding rects and initial positions
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Focus review on:
    • Drag logic, pointer capture/release, resize/scroll handlers, and SVG bezier math in workflows.tsx and bot.tsx.
    • Large componentized refactor in ai-notetaking.tsx (imports, mock components, internal state).
    • CTA/button consistency and accessibility across pages where cn is used and disabled variants changed.
    • Pricing type change: PricingPlan.originalPrice addition and UI conditional rendering.

Possibly related PRs

  • working on products sub-landings #1642 — modifies many same product sub-landing route files (product/*.tsx); high overlap with these UI changes.
  • landing-4 #1602 — touches the download route and DownloadCard UI; directly related to download/index.tsx edits.
  • ui fixes #1623 — edits header/navigation layout (_view/route.tsx); overlaps with header spacing and dropdown link styling.

Suggested reviewers

  • yujonglee

Pre-merge checks and finishing touches

❌ Failed checks (2 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'landing wip' is extremely vague and generic, using non-descriptive terms that don't convey meaningful information about the substantial UI restructuring across multiple product pages. Revise title to be specific about the changes, e.g. 'Restructure product landing pages with new hero sections and separators' or 'Redesign AI assistant, notetaking, and product pages UI'.
Description check ❓ Inconclusive No pull request description was provided by the author, making it impossible to assess whether the intent and scope of changes are communicated. Add a detailed description explaining the UI redesign scope, affected product pages, new components introduced (SlashSeparator, MockWindow, DraggableIcon), and the overall design intent.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between af1e1bf and d25cef3.

📒 Files selected for processing (15)
  • apps/web/content/articles/why-we-burned-it-down.mdx (1 hunks)
  • apps/web/src/routes/_view/download/index.tsx (2 hunks)
  • apps/web/src/routes/_view/index.tsx (5 hunks)
  • apps/web/src/routes/_view/pricing.tsx (5 hunks)
  • apps/web/src/routes/_view/product/ai-assistant.tsx (6 hunks)
  • apps/web/src/routes/_view/product/ai-notetaking.tsx (2 hunks)
  • apps/web/src/routes/_view/product/api.tsx (2 hunks)
  • apps/web/src/routes/_view/product/bot.tsx (2 hunks)
  • apps/web/src/routes/_view/product/extensions.tsx (1 hunks)
  • apps/web/src/routes/_view/product/local-ai.tsx (1 hunks)
  • apps/web/src/routes/_view/product/mini-apps.tsx (9 hunks)
  • apps/web/src/routes/_view/product/notepad.tsx (7 hunks)
  • apps/web/src/routes/_view/product/self-hosting.tsx (2 hunks)
  • apps/web/src/routes/_view/product/workflows.tsx (2 hunks)
  • apps/web/src/routes/_view/route.tsx (3 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link

@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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
apps/web/src/routes/_view/product/mini-apps.tsx (1)

106-106: Critical: Invalid Tailwind CSS class name.

bg-linear-to-b is not a valid Tailwind CSS class. This should be bg-gradient-to-b for the gradient background to render correctly.

Apply this fix:

-      className="bg-linear-to-b from-white via-stone-50/20 to-white min-h-screen"
+      className="bg-gradient-to-b from-white via-stone-50/20 to-white min-h-screen"
apps/web/src/routes/_view/product/ai-assistant.tsx (1)

23-23: Critical: Invalid Tailwind CSS class name.

bg-linear-to-b should be bg-gradient-to-b.

-      className="bg-linear-to-b from-white via-stone-50/20 to-white min-h-screen"
+      className="bg-gradient-to-b from-white via-stone-50/20 to-white min-h-screen"
🧹 Nitpick comments (7)
apps/web/src/routes/_view/product/bot.tsx (1)

93-94: Percentage parsing works but could be more explicit.

Using parseInt() on strings like "15%" works because it stops at the first non-digit character, but this implicit behavior could be made clearer for maintainability.

Consider making the parsing more explicit:

-const x = (containerWidth * parseInt(initialPosition.left)) / 100 - size / 2;
-const y = (containerHeight * parseInt(initialPosition.top)) / 100 - size / 2;
+const leftPercent = parseInt(initialPosition.left, 10);
+const topPercent = parseInt(initialPosition.top, 10);
+const x = (containerWidth * leftPercent) / 100 - size / 2;
+const y = (containerHeight * topPercent) / 100 - size / 2;
apps/web/src/routes/_view/product/mini-apps.tsx (4)

330-333: Simplify badge centering.

Using inline-flex with w-full and justify-center is unnecessarily complex. A simple flex with centering utilities would be clearer.

-            <div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-orange-100 text-sm text-orange-700 mb-6 mx-auto justify-center w-full">
+            <div className="flex items-center gap-2 px-3 py-1 rounded-full bg-orange-100 text-sm text-orange-700 mb-6 justify-center">

357-360: Simplify badge centering.

Same issue as Line 330 - using inline-flex with w-full is unnecessarily complex.

-            <div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-purple-100 text-sm text-purple-700 mb-6 mx-auto justify-center w-full">
+            <div className="flex items-center gap-2 px-3 py-1 rounded-full bg-purple-100 text-sm text-purple-700 mb-6 justify-center">

413-420: Consider extracting hardcoded image URL to configuration.

The Supabase storage URL is hardcoded. Consider extracting this to a configuration file or constant for easier maintenance and environment-specific overrides.


439-452: Add ARIA label to decorative SVG icon.

The arrow SVG lacks an aria-hidden="true" attribute since it's decorative, or should have an aria-label if it conveys meaning.

                 <svg
                   xmlns="http://www.w3.org/2000/svg"
                   fill="none"
                   viewBox="0 0 24 24"
                   strokeWidth="1.5"
                   stroke="currentColor"
                   className="h-5 w-5 ml-2 group-hover:translate-x-1 transition-transform"
+                  aria-hidden="true"
                 >
apps/web/src/routes/_view/product/ai-assistant.tsx (2)

235-241: Consider extracting hardcoded image URL to configuration.

The Supabase storage URL is hardcoded. Consider extracting this to a configuration file or constant for easier maintenance.


260-273: Add ARIA label to decorative SVG icon.

The arrow SVG should have an aria-hidden="true" attribute since it's decorative.

                 <svg
                   xmlns="http://www.w3.org/2000/svg"
                   fill="none"
                   viewBox="0 0 24 24"
                   strokeWidth="1.5"
                   stroke="currentColor"
                   className="h-5 w-5 ml-2 group-hover:translate-x-1 transition-transform"
+                  aria-hidden="true"
                 >
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6ac6ab8 and 8021e3e.

📒 Files selected for processing (12)
  • apps/web/src/routes/_view/download/index.tsx (2 hunks)
  • apps/web/src/routes/_view/product/ai-assistant.tsx (2 hunks)
  • apps/web/src/routes/_view/product/ai-notetaking.tsx (3 hunks)
  • apps/web/src/routes/_view/product/api.tsx (2 hunks)
  • apps/web/src/routes/_view/product/bot.tsx (2 hunks)
  • apps/web/src/routes/_view/product/extensions.tsx (1 hunks)
  • apps/web/src/routes/_view/product/local-ai.tsx (1 hunks)
  • apps/web/src/routes/_view/product/mini-apps.tsx (4 hunks)
  • apps/web/src/routes/_view/product/notepad.tsx (3 hunks)
  • apps/web/src/routes/_view/product/self-hosting.tsx (2 hunks)
  • apps/web/src/routes/_view/product/workflows.tsx (1 hunks)
  • apps/web/src/routes/_view/route.tsx (3 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-10-12T01:18:52.105Z
Learnt from: CR
Repo: fastrepl/hyprnote PR: 0
File: packages/nango/.cursor/rules/nango.mdc:0-0
Timestamp: 2025-10-12T01:18:52.105Z
Learning: Applies to packages/nango/**/models.ts : Do not edit the models.ts file; it is auto-generated at compilation time

Applied to files:

  • apps/web/src/routes/_view/product/local-ai.tsx
🧬 Code graph analysis (10)
apps/web/src/routes/_view/product/extensions.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/download/index.tsx (2)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/components/slash-separator.tsx (1)
  • SlashSeparator (1-8)
apps/web/src/routes/_view/product/workflows.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/api.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/notepad.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/ai-notetaking.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/mini-apps.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/bot.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/ai-assistant.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/self-hosting.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
🔇 Additional comments (11)
apps/web/src/routes/_view/product/local-ai.tsx (1)

2-2: LGTM! Formatting improvement.

The added blank line improves readability by separating local imports from external library imports.

apps/web/src/routes/_view/route.tsx (2)

85-85: LGTM! Improved header spacing.

The increased gap from 4 to 5 units provides better visual breathing room for the desktop navigation items.


117-117: LGTM! Enhanced link affordance.

Adding hover underlines with dotted decoration to dropdown menu items improves user feedback and makes interactive elements more discoverable.

Also applies to: 137-137

apps/web/src/routes/_view/product/workflows.tsx (1)

21-49: LGTM! Clean "Coming Soon" placeholder.

The simplified layout effectively communicates that workflows are not yet available while maintaining visual consistency with the broader redesign. The disabled button is properly styled with appropriate cursor and opacity states.

apps/web/src/routes/_view/product/extensions.tsx (1)

22-51: LGTM! Consistent "Coming Soon" implementation.

The simplified layout matches the pattern established in other product pages (workflows.tsx), providing a consistent user experience for unreleased features.

apps/web/src/routes/_view/download/index.tsx (2)

19-33: LGTM! Informative banner with good UX.

The new header banner effectively communicates platform availability with appropriate hover feedback. The use of cn for class composition keeps styling maintainable.


141-145: LGTM! Consistent disabled button styling.

The disabled button styling using cn matches the pattern established across other product pages, providing visual consistency.

apps/web/src/routes/_view/product/notepad.tsx (1)

27-49: LGTM! Effective hero section with clear value proposition.

The new hero section with gradient background and three-card feature row effectively communicates the product's key differentiators. The visual hierarchy guides users naturally toward the CTA.

Also applies to: 52-73

apps/web/src/routes/_view/product/self-hosting.tsx (1)

22-51: LGTM! Consistent "Coming Soon" implementation.

The simplified layout maintains the established pattern for unreleased features, providing visual consistency across the product suite.

apps/web/src/routes/_view/product/api.tsx (1)

36-41: Verify disabled button meets WCAG contrast requirements.

The disabled button uses opacity-50 which may reduce text contrast below WCAG AA standards (4.5:1 for normal text). Ensure the resulting contrast ratio is sufficient.

apps/web/src/routes/_view/product/ai-notetaking.tsx (1)

32-52: Confirm Tailwind version before shipping the new gradient utilities
All of the new backgrounds use bg-linear-to-*, which only exists in Tailwind CSS v4+. If the app is still on Tailwind 3 (current codebase hasn’t merged a Tailwind upgrade yet), every one of these gradients will silently drop and fall back to a solid fill. Please double‑check that we’ve already upgraded the dependency; otherwise stick with the v3 bg-gradient-to-* classes or bundle the Tailwind upgrade in this PR. (stevekinney.com)

Also applies to: 182-407

Comment on lines +39 to +44
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-linear-to-t from-stone-600 to-stone-500 text-white",
"hover:scale-105 active:scale-95 transition-transform",
])}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Invalid Tailwind CSS class name.

bg-linear-to-t should be bg-gradient-to-t.

                 className={cn([
                   "inline-block px-8 py-3 text-base font-medium rounded-full",
-                  "bg-linear-to-t from-stone-600 to-stone-500 text-white",
+                  "bg-gradient-to-t from-stone-600 to-stone-500 text-white",
                   "hover:scale-105 active:scale-95 transition-transform",
                 ])}
📝 Committable suggestion

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

Suggested change
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-linear-to-t from-stone-600 to-stone-500 text-white",
"hover:scale-105 active:scale-95 transition-transform",
])}
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-gradient-to-t from-stone-600 to-stone-500 text-white",
"hover:scale-105 active:scale-95 transition-transform",
])}
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/ai-assistant.tsx around lines 39 to 43 the
Tailwind class name "bg-linear-to-t" is invalid; replace it with the correct
"bg-gradient-to-t" in the className array so the gradient utility is applied
correctly (keep the rest of the classes unchanged).


<section className="bg-stone-50 border border-neutral-200 rounded-lg p-8 lg:p-12 text-center">
<h2 className="text-3xl font-serif text-stone-600 mb-4">
<section className="py-16 bg-linear-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Invalid Tailwind CSS class name.

bg-linear-to-t should be bg-gradient-to-t.

-        <section className="py-16 bg-linear-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
+        <section className="py-16 bg-gradient-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
📝 Committable suggestion

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

Suggested change
<section className="py-16 bg-linear-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
<section className="py-16 bg-gradient-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/ai-assistant.tsx around line 232, the
Tailwind CSS class name is invalid: replace the incorrect "bg-linear-to-t" with
the correct "bg-gradient-to-t" so the background gradient utility renders
properly; update the class string accordingly and run a build or Tailwind JIT to
verify the class is recognized.

return (
<div
className="bg-linear-to-b from-white via-stone-50/20 to-white min-h-screen flex items-center justify-center"
className="bg-linear-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Invalid Tailwind CSS class name.

bg-linear-to-b should be bg-gradient-to-b.

-      className="bg-linear-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
+      className="bg-gradient-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
📝 Committable suggestion

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

Suggested change
className="bg-linear-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
className="bg-gradient-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/api.tsx around line 21, the Tailwind class
name is invalid: replace the incorrect "bg-linear-to-b" with the correct
"bg-gradient-to-b" so the gradient utility is applied properly (leave the rest
of the class string unchanged).

Built-in mini apps
<br />
for everything
<div className="bg-linear-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Invalid Tailwind CSS class name.

bg-linear-to-b should be bg-gradient-to-b.

-        <div className="bg-linear-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
+        <div className="bg-gradient-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
📝 Committable suggestion

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

Suggested change
<div className="bg-linear-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
<div className="bg-gradient-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/mini-apps.tsx around line 110, the Tailwind
class `bg-linear-to-b` is invalid; replace it with the correct
`bg-gradient-to-b` so the gradient utility is recognized and the background
renders as intended, keeping the rest of the class list (from-stone-50/30
to-stone-100/30 px-6 py-12 lg:py-20) unchanged.

Comment on lines +122 to +128
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-linear-to-t from-stone-600 to-stone-500 text-white",
"hover:scale-105 active:scale-95 transition-transform",
])}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Invalid Tailwind CSS class name.

bg-linear-to-t should be bg-gradient-to-t.

                 className={cn([
                   "inline-block px-8 py-3 text-base font-medium rounded-full",
-                  "bg-linear-to-t from-stone-600 to-stone-500 text-white",
+                  "bg-gradient-to-t from-stone-600 to-stone-500 text-white",
                   "hover:scale-105 active:scale-95 transition-transform",
                 ])}
📝 Committable suggestion

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

Suggested change
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-linear-to-t from-stone-600 to-stone-500 text-white",
"hover:scale-105 active:scale-95 transition-transform",
])}
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-gradient-to-t from-stone-600 to-stone-500 text-white",
"hover:scale-105 active:scale-95 transition-transform",
])}
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/mini-apps.tsx around lines 122 to 126, the
Tailwind class "bg-linear-to-t" is invalid; replace it with the correct class
"bg-gradient-to-t" so the gradient background works as intended, keeping the
rest of the class list unchanged and ensuring the element still applies the
intended from/to color classes.


<section className="bg-stone-50 border border-neutral-200 rounded-lg p-8 lg:p-12 text-center">
<h2 className="text-3xl font-serif text-stone-600 mb-4">
<section className="py-16 bg-linear-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Invalid Tailwind CSS class name.

bg-linear-to-t should be bg-gradient-to-t.

-        <section className="py-16 bg-linear-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
+        <section className="py-16 bg-gradient-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
📝 Committable suggestion

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

Suggested change
<section className="py-16 bg-linear-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
<section className="py-16 bg-gradient-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/mini-apps.tsx around line 410, the Tailwind
class name is invalid: replace the incorrect `bg-linear-to-t` with the correct
`bg-gradient-to-t` in the section's className string so the gradient utility is
applied properly.

Comment on lines +431 to +456
className={cn([
"group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
"bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full",
"shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
"transition-all",
])}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Invalid Tailwind CSS class name.

bg-linear-to-t should be bg-gradient-to-t.

                 className={cn([
                   "group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
-                  "bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full",
+                  "bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full",
                   "shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
                   "transition-all",
                 ])}
📝 Committable suggestion

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

Suggested change
className={cn([
"group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
"bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full",
"shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
"transition-all",
])}
className={cn([
"group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
"bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full",
"shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
"transition-all",
])}
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/mini-apps.tsx around lines 431 to 436, the
Tailwind class name typo `bg-linear-to-t` is invalid; replace it with the
correct `bg-gradient-to-t` so the gradient utility applies properly and keep the
rest of the class list unchanged.

Comment on lines +38 to +47
href="https://hyprnote.com/download"
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-linear-to-t from-stone-600 to-stone-500 text-white",
"hover:scale-105 active:scale-95 transition-transform",
])}
>
Download for free
</a>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify the external download URL is intentional.

Both CTAs link to https://hyprnote.com/download which may cause a full page reload. If there's a local download route (like /download as seen in other files), consider using the Link component for client-side navigation.

If a local route exists, apply this change:

-<a
-  href="https://hyprnote.com/download"
+<Link
+  to="/download"
   className={cn([
     "inline-block px-8 py-3 text-base font-medium rounded-full",
     "bg-linear-to-t from-stone-600 to-stone-500 text-white",
     "hover:scale-105 active:scale-95 transition-transform",
   ])}
 >
   Download for free
-</a>
+</Link>

Run this script to check for local download routes:

Also applies to: 376-399


🏁 Script executed:

#!/bin/bash
# Check if there's a local download route definition
rg -n --type=ts --type=tsx 'createFileRoute.*download' -A 2

Length of output: 27


🏁 Script executed:

#!/bin/bash
# Check if there's a local download route definition - simplified search
rg -n 'createFileRoute.*download|path.*download|route.*download' --type=ts -A 2

Length of output: 2077


🏁 Script executed:

#!/bin/bash
# Alternative: search for download routes without type restriction
rg -n 'download' apps/web/src/routes -A 1 -B 1 | head -50

Length of output: 3618


🏁 Script executed:

#!/bin/bash
# Get the actual content of notepad.tsx at the specified lines
sed -n '30,55p' apps/web/src/routes/_view/product/notepad.tsx
sed -n '370,405p' apps/web/src/routes/_view/product/notepad.tsx

Length of output: 2912


🏁 Script executed:

#!/bin/bash
# Also check imports in notepad.tsx to see if Link component is available
head -20 apps/web/src/routes/_view/product/notepad.tsx

Length of output: 554


Both CTA links should use the local /download route instead of the external domain.

The file already imports the Link component and local download routes exist at /_view/download/. Using the external URL causes unnecessary full page reloads, while other files (e.g., pricing.tsx) already follow the client-side navigation pattern with local routes. Apply the suggested change at both locations (lines 38–46 and 376–399).

🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/notepad.tsx around lines 38–46 and 376–399,
replace the external anchor tags that point to "https://hyprnote.com/download"
with the local client-side Link component pointing to the local route
"/_view/download/" (or "/_view/download") to avoid full page reloads; preserve
the existing className and children text, and ensure you use the imported Link
component for both CTA locations so navigation is handled via client-side
routing.

@ComputelessComputer ComputelessComputer force-pushed the jj-branch-1 branch 2 times, most recently from 3a360d5 to af1e1bf Compare November 9, 2025 18:10
Copy link

@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: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
apps/web/src/routes/_view/product/mini-apps.tsx (1)

108-475: Use Tailwind’s bg-gradient-to-* utilities

Every bg-linear-to-* here (page shell, hero band, both CTA buttons, and the closing section) is a typo, so Tailwind won’t emit any gradient styles and the design regresses to a flat background. Please replace them with the supported bg-gradient-to-* variants.

-    <div
-      className="bg-linear-to-b from-white via-stone-50/20 to-white min-h-screen"
+    <div
+      className="bg-gradient-to-b from-white via-stone-50/20 to-white min-h-screen"
@@
-        <div className="bg-linear-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
+        <div className="bg-gradient-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
@@
-                  "bg-linear-to-t from-stone-600 to-stone-500 text-white",
+                  "bg-gradient-to-t from-stone-600 to-stone-500 text-white",
@@
-        <section className="py-16 bg-linear-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
+        <section className="py-16 bg-gradient-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
@@
-                  "bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full",
+                  "bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full",
apps/web/src/routes/_view/product/notepad.tsx (1)

25-413: Replace bg-linear-to-* with valid Tailwind gradients

The notepad page also introduces bg-linear-to-b/bg-linear-to-t, which Tailwind doesn’t compile. As a result, the hero band and both CTAs lose their gradient styling. Please switch every occurrence in this file to the supported bg-gradient-to-* utilities.

-    <div
-      className="bg-linear-to-b from-white via-stone-50/20 to-white min-h-screen"
+    <div
+      className="bg-gradient-to-b from-white via-stone-50/20 to-white min-h-screen"
@@
-        <div className="bg-linear-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
+        <div className="bg-gradient-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
@@
-                className={cn([
-                  "inline-block px-8 py-3 text-base font-medium rounded-full",
-                  "bg-linear-to-t from-stone-600 to-stone-500 text-white",
+                className={cn([
+                  "inline-block px-8 py-3 text-base font-medium rounded-full",
+                  "bg-gradient-to-t from-stone-600 to-stone-500 text-white",
@@
-        <section className="py-16 bg-linear-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
+        <section className="py-16 bg-gradient-to-t from-stone-50/30 to-stone-100/30 px-4 lg:px-0">
@@
-                className={cn([
-                  "group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
-                  "bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full",
+                className={cn([
+                  "group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
+                  "bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full",
🧹 Nitpick comments (1)
apps/web/src/routes/_view/product/extensions.tsx (1)

20-27: Remove unused description field.

The description property is defined for each extension area but never rendered in the UI (lines 46-52 only use area.label). Consider removing it to keep the data structure clean.

Apply this diff:

  const extensionAreas = [
-    { label: "Custom Views", description: "Graph views, kanban boards, and more" },
-    { label: "Themes", description: "Personalize your workspace" },
-    { label: "Editor Plugins", description: "Enhanced editing capabilities" },
-    { label: "Integrations", description: "Connect external tools" },
-    { label: "Data Sources", description: "Import from anywhere" },
-    { label: "Export Formats", description: "Share in any format" },
+    "Custom Views",
+    "Themes",
+    "Editor Plugins",
+    "Integrations",
+    "Data Sources",
+    "Export Formats",
  ];

And update the mapping:

-                {extensionAreas.map((area) => (
+                {extensionAreas.map((label) => (
                  <div
-                    key={area.label}
+                    key={label}
                    className="px-3 py-1.5 rounded-full bg-stone-50 border border-stone-200 text-stone-600 text-xs font-medium"
                  >
-                    {area.label}
+                    {label}
                  </div>
                ))}
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8021e3e and af1e1bf.

📒 Files selected for processing (13)
  • apps/web/src/routes/_view/download/index.tsx (2 hunks)
  • apps/web/src/routes/_view/index.tsx (5 hunks)
  • apps/web/src/routes/_view/product/ai-assistant.tsx (6 hunks)
  • apps/web/src/routes/_view/product/ai-notetaking.tsx (2 hunks)
  • apps/web/src/routes/_view/product/api.tsx (2 hunks)
  • apps/web/src/routes/_view/product/bot.tsx (2 hunks)
  • apps/web/src/routes/_view/product/extensions.tsx (1 hunks)
  • apps/web/src/routes/_view/product/local-ai.tsx (1 hunks)
  • apps/web/src/routes/_view/product/mini-apps.tsx (9 hunks)
  • apps/web/src/routes/_view/product/notepad.tsx (7 hunks)
  • apps/web/src/routes/_view/product/self-hosting.tsx (2 hunks)
  • apps/web/src/routes/_view/product/workflows.tsx (2 hunks)
  • apps/web/src/routes/_view/route.tsx (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • apps/web/src/routes/_view/product/api.tsx
  • apps/web/src/routes/_view/product/self-hosting.tsx
🧰 Additional context used
🧬 Code graph analysis (9)
apps/web/src/routes/_view/index.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/extensions.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/bot.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/download/index.tsx (2)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/components/slash-separator.tsx (1)
  • SlashSeparator (1-8)
apps/web/src/routes/_view/product/mini-apps.tsx (2)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/components/slash-separator.tsx (1)
  • SlashSeparator (1-8)
apps/web/src/routes/_view/product/workflows.tsx (2)
apps/web/src/components/image.tsx (1)
  • Image (5-16)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/product/notepad.tsx (2)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/components/slash-separator.tsx (1)
  • SlashSeparator (1-8)
apps/web/src/routes/_view/product/ai-notetaking.tsx (3)
apps/web/src/components/slash-separator.tsx (1)
  • SlashSeparator (1-8)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/components/mock-window.tsx (1)
  • MockWindow (4-42)
apps/web/src/routes/_view/product/ai-assistant.tsx (2)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/components/slash-separator.tsx (1)
  • SlashSeparator (1-8)
🔇 Additional comments (4)
apps/web/src/routes/_view/route.tsx (2)

85-85: LGTM: Spacing refinement improves visual balance.

The increased gap between header navigation items is a subtle improvement to the header layout.


117-117: LGTM: Hover effects enhance navigation consistency.

Adding the dotted underline hover effect to dropdown menu items brings them in line with the other navigation links in the header (Docs, Blog, Pricing, etc.), creating a more cohesive user experience.

Also applies to: 137-137

apps/web/src/routes/_view/download/index.tsx (2)

19-33: Well-structured banner with smooth hover transition.

The use of cn to compose the banner classes is clean and maintainable. The translucent background with hover effect provides good visual feedback.


35-102: Clean page structure with proper semantic sections.

The layout is well-organized with clear Desktop and Mobile sections. The use of SlashSeparator components between sections provides consistent visual separation.

function Component() {
return (
<div
className="bg-linear-to-b from-white via-blue-50/20 to-white min-h-screen"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix invalid Tailwind gradient class names.

Multiple locations use bg-linear-to-* which is not a valid Tailwind CSS class. The standard Tailwind gradient classes use bg-gradient-to-* instead. This will prevent the gradients from rendering correctly.

Apply these fixes:

Line 16 - Page background gradient:

-      className="bg-linear-to-b from-white via-blue-50/20 to-white min-h-screen"
+      className="bg-gradient-to-b from-white via-blue-50/20 to-white min-h-screen"

Line 129 - Enabled download button:

-            className="group w-full px-4 h-11 flex items-center justify-center bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all text-base font-medium"
+            className="group w-full px-4 h-11 flex items-center justify-center bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all text-base font-medium"

Line 143 - Disabled download button:

-              "bg-linear-to-t from-stone-600 to-stone-500 text-white",
+              "bg-gradient-to-t from-stone-600 to-stone-500 text-white",

Line 201 - CTA section background:

-    <section className="py-16 bg-linear-to-t from-stone-50/30 to-stone-100/30 px-4 laptop:px-0">
+    <section className="py-16 bg-gradient-to-t from-stone-50/30 to-stone-100/30 px-4 laptop:px-0">

Line 221 - CTA button:

-            className="px-6 h-12 flex items-center justify-center text-base sm:text-lg bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all"
+            className="px-6 h-12 flex items-center justify-center text-base sm:text-lg bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all"

Also applies to: 129-129, 143-143, 201-201, 221-221

🤖 Prompt for AI Agents
In apps/web/src/routes/_view/download/index.tsx around lines 16, 129, 143, 201
and 221, the Tailwind gradient classes use the invalid prefix "bg-linear-to-*"
so gradients won't render; replace each "bg-linear-to-<direction>" with the
correct "bg-gradient-to-<direction>" (keeping the existing from-*, via-*, to-*
color stops and other classes intact) for the page background (line 16), enabled
download button (line 129), disabled download button (line 143), CTA section
background (line 201), and CTA button (line 221).

Comment on lines +29 to +60
className="bg-linear-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)] relative overflow-hidden"
style={{ backgroundImage: "url(/patterns/dots.svg)" }}
>
<div className="max-w-6xl mx-auto border-x border-neutral-100 bg-white">
<div className="px-6 py-12 lg:py-20">
<header className="text-center">
<h1 className="text-4xl sm:text-5xl lg:text-6xl font-serif text-stone-600 mb-6">
<div className="max-w-6xl mx-auto border-x border-neutral-100 bg-white h-full relative">
{DRAGGABLE_ICONS.map((icon, idx) => (
<DraggableIcon
key={idx}
initialPosition={{ left: icon.left, top: icon.top, rotate: icon.rotate }}
size={icon.size}
/>
))}

<div className="bg-[linear-gradient(to_bottom,rgba(245,245,244,0.2),white_50%,rgba(245,245,244,0.3))] px-6 h-full flex items-center justify-center relative z-10 pointer-events-none">
<div className="text-center max-w-4xl mx-auto pointer-events-auto">
<h1 className="text-4xl sm:text-5xl font-serif tracking-tight text-stone-600 mb-6">
Hyprnote Bot
</h1>
<p className="text-xl lg:text-2xl text-neutral-600 leading-relaxed max-w-3xl mx-auto mb-8">
<p className="text-lg sm:text-xl text-neutral-600">
An optional bot solution for teams that need centralized meeting recording and management.
</p>
<button
disabled
className="px-8 py-3 text-base font-medium rounded-full bg-neutral-200 text-neutral-500 cursor-not-allowed"
>
Coming Soon
</button>
</header>
<div className="mt-8">
<button
disabled
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-linear-to-t from-stone-600 to-stone-500 text-white",
"opacity-50 cursor-not-allowed",
])}
>
Coming Soon
</button>
</div>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix Tailwind gradient class typo

Tailwind only generates gradient utilities as bg-gradient-to-*. The new bg-linear-to-b/bg-linear-to-t classes on the hero container and CTA button won’t exist, so the gradient background disappears. Please swap every bg-linear-to-* in this file for the proper bg-gradient-to-*.

-    <div
-      className="bg-linear-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)] relative overflow-hidden"
+    <div
+      className="bg-gradient-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)] relative overflow-hidden"
@@
-                className={cn([
-                  "inline-block px-8 py-3 text-base font-medium rounded-full",
-                  "bg-linear-to-t from-stone-600 to-stone-500 text-white",
+                className={cn([
+                  "inline-block px-8 py-3 text-base font-medium rounded-full",
+                  "bg-gradient-to-t from-stone-600 to-stone-500 text-white",
📝 Committable suggestion

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

Suggested change
className="bg-linear-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)] relative overflow-hidden"
style={{ backgroundImage: "url(/patterns/dots.svg)" }}
>
<div className="max-w-6xl mx-auto border-x border-neutral-100 bg-white">
<div className="px-6 py-12 lg:py-20">
<header className="text-center">
<h1 className="text-4xl sm:text-5xl lg:text-6xl font-serif text-stone-600 mb-6">
<div className="max-w-6xl mx-auto border-x border-neutral-100 bg-white h-full relative">
{DRAGGABLE_ICONS.map((icon, idx) => (
<DraggableIcon
key={idx}
initialPosition={{ left: icon.left, top: icon.top, rotate: icon.rotate }}
size={icon.size}
/>
))}
<div className="bg-[linear-gradient(to_bottom,rgba(245,245,244,0.2),white_50%,rgba(245,245,244,0.3))] px-6 h-full flex items-center justify-center relative z-10 pointer-events-none">
<div className="text-center max-w-4xl mx-auto pointer-events-auto">
<h1 className="text-4xl sm:text-5xl font-serif tracking-tight text-stone-600 mb-6">
Hyprnote Bot
</h1>
<p className="text-xl lg:text-2xl text-neutral-600 leading-relaxed max-w-3xl mx-auto mb-8">
<p className="text-lg sm:text-xl text-neutral-600">
An optional bot solution for teams that need centralized meeting recording and management.
</p>
<button
disabled
className="px-8 py-3 text-base font-medium rounded-full bg-neutral-200 text-neutral-500 cursor-not-allowed"
>
Coming Soon
</button>
</header>
<div className="mt-8">
<button
disabled
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-linear-to-t from-stone-600 to-stone-500 text-white",
"opacity-50 cursor-not-allowed",
])}
>
Coming Soon
</button>
</div>
className="bg-gradient-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)] relative overflow-hidden"
style={{ backgroundImage: "url(/patterns/dots.svg)" }}
>
<div className="max-w-6xl mx-auto border-x border-neutral-100 bg-white h-full relative">
{DRAGGABLE_ICONS.map((icon, idx) => (
<DraggableIcon
key={idx}
initialPosition={{ left: icon.left, top: icon.top, rotate: icon.rotate }}
size={icon.size}
/>
))}
<div className="bg-[linear-gradient(to_bottom,rgba(245,245,244,0.2),white_50%,rgba(245,245,244,0.3))] px-6 h-full flex items-center justify-center relative z-10 pointer-events-none">
<div className="text-center max-w-4xl mx-auto pointer-events-auto">
<h1 className="text-4xl sm:text-5xl font-serif tracking-tight text-stone-600 mb-6">
Hyprnote Bot
</h1>
<p className="text-lg sm:text-xl text-neutral-600">
An optional bot solution for teams that need centralized meeting recording and management.
</p>
<div className="mt-8">
<button
disabled
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-gradient-to-t from-stone-600 to-stone-500 text-white",
"opacity-50 cursor-not-allowed",
])}
>
Coming Soon
</button>
</div>
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/bot.tsx around lines 29 to 60, the Tailwind
gradient utility is mistyped as bg-linear-to-* (bg-linear-to-b and
bg-linear-to-t) which don’t exist; replace those occurrences with the correct
Tailwind class names bg-gradient-to-b and bg-gradient-to-t respectively so the
gradients are generated and applied (update both the hero container and the CTA
button classes).

return (
<div
className="bg-linear-to-b from-white via-stone-50/20 to-white min-h-screen"
className="bg-linear-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Fix Tailwind gradient class typo.

The class bg-linear-to-b is invalid. Tailwind uses bg-gradient-to-b for linear gradients.

Apply this diff:

-      className="bg-linear-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
+      className="bg-gradient-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
📝 Committable suggestion

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

Suggested change
className="bg-linear-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
className="bg-gradient-to-b from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/extensions.tsx around line 31, the Tailwind
class `bg-linear-to-b` is incorrect; replace it with `bg-gradient-to-b` so the
element uses Tailwind's gradient utility (`className="bg-gradient-to-b
from-white via-stone-50/20 to-white h-[calc(100vh-65px)]"`).

Comment on lines 60 to 64
className={cn([
"inline-flex items-center justify-center gap-2 px-8 py-3 text-base font-medium rounded-full",
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-linear-to-t from-stone-600 to-stone-500 text-white",
"hover:scale-105 active:scale-95 transition-transform",
])}
>
<Icon icon="mdi:puzzle" />
<span>Request integration</span>
</a>
<a
href="mailto:[email protected]?subject=API Access Request"
className={cn([
"inline-flex items-center justify-center gap-2 px-8 py-3 text-base font-medium rounded-full",
"border border-neutral-300 text-stone-600",
"hover:bg-white transition-colors",
"opacity-50 cursor-not-allowed",
])}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Fix Tailwind gradient class typo.

The class bg-linear-to-t on line 62 is invalid. Tailwind uses bg-gradient-to-t for linear gradients.

Apply this diff:

                className={cn([
                  "inline-block px-8 py-3 text-base font-medium rounded-full",
-                  "bg-linear-to-t from-stone-600 to-stone-500 text-white",
+                  "bg-gradient-to-t from-stone-600 to-stone-500 text-white",
                  "opacity-50 cursor-not-allowed",
                ])}
📝 Committable suggestion

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

Suggested change
className={cn([
"inline-flex items-center justify-center gap-2 px-8 py-3 text-base font-medium rounded-full",
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-linear-to-t from-stone-600 to-stone-500 text-white",
"hover:scale-105 active:scale-95 transition-transform",
])}
>
<Icon icon="mdi:puzzle" />
<span>Request integration</span>
</a>
<a
href="mailto:[email protected]?subject=API Access Request"
className={cn([
"inline-flex items-center justify-center gap-2 px-8 py-3 text-base font-medium rounded-full",
"border border-neutral-300 text-stone-600",
"hover:bg-white transition-colors",
"opacity-50 cursor-not-allowed",
])}
className={cn([
"inline-block px-8 py-3 text-base font-medium rounded-full",
"bg-gradient-to-t from-stone-600 to-stone-500 text-white",
"opacity-50 cursor-not-allowed",
])}
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/product/extensions.tsx around lines 60 to 64, the
Tailwind class `bg-linear-to-t` is invalid; replace it with `bg-gradient-to-t`
so the gradient utility is applied correctly, keeping the rest of the className
array intact and preserving spacing/order.

@ComputelessComputer ComputelessComputer merged commit a820ddf into main Nov 10, 2025
3 of 4 checks passed
@ComputelessComputer ComputelessComputer deleted the jj-branch-1 branch November 10, 2025 08:45
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