8000
Skip to content

New bt page#97

Open
Ches-ctrl wants to merge 8 commits intomainfrom
cursor/MAF-101-new-bt-page-e035
Open

New bt page#97
Ches-ctrl wants to merge 8 commits intomainfrom
cursor/MAF-101-new-bt-page-e035

Conversation

@Ches-ctrl
Copy link
Copy Markdown
Collaborator
@Ches-ctrl Ches-ctrl commented Feb 25, 2026

Create the /bt page to serve as a landing for the Big Tony bot, featuring a WhatsApp messaging button, Wassist logo, and developer credit.


Linear Issue: MAF-101

Open in Web Open in Cursor 

Summary by CodeRabbit

  • New Features

    • Added a new "BIG TONY" responsive landing card: bold title and subtitle, full-width WhatsApp contact CTA, attribution with external logo and author link, a three-card feature grid (Support, Sales, Leads), and a checklist of benefits. All content is static and responsive; external links open in a new tab.
  • Chores

    • Enabled remote image source for the external attribution logo.

Note

Low Risk
Low risk: adds a new static /bt Next.js page and applies patch-level dependency lockfile updates (PostHog and lint tooling) with no changes to core runtime logic.

Overview
Adds a new /bt landing page (src/app/bt/page.tsx) that presents a simple marketing card with a WhatsApp deep-link CTA, Wassist attribution/logo, and a small feature/benefits section.

Updates pnpm-lock.yaml to pick up patch/minor dependency revisions, notably posthog-js/posthog-node and several ESLint/TypeScript-ESLint/lint-staged related packages.

Written by Cursor Bugbot for commit 49a5aa4. This will update automatically on new commits. Configure here.

@cursor
Copy link
Copy Markdown
cursor bot commented Feb 25, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@vercel
Copy link
Copy Markdown
vercel bot commented Feb 25, 2026

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

Project Deployment Actions Updated (UTC)
unicorn-mafia Ready Ready Preview, Comment Mar 12, 2026 1:40pm

Request Review

@Ches-ctrl Ches-ctrl self-assigned this Feb 25, 2026
Copy link
Copy Markdown
Member
@alexechoi alexechoi left a comment

Choose a reason for hiding this comment

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

See what you think of this suggestion

@coderabbitai
Copy link
Copy Markdown
coderabbitai bot commented Mar 12, 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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ef12c146-c301-4597-a1f6-7b2363de4547

📥 Commits

Reviewing files that changed from the base of the PR and between e0e17b3 and b2d6615.

📒 Files selected for processing (2)
  • next.config.ts
  • src/app/bt/page.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/app/bt/page.tsx

📝 Walkthrough

Walkthrough

Adds a new static React page component BigTony at src/app/bt/page.tsx and updates next.config.ts to allow remote images from wassist.app; BigTony renders a centered card with title, subtitle, WhatsApp CTA, attribution, three feature cards, and a checklist.

Changes

Cohort / File(s) Summary
New Page Component
src/app/bt/page.tsx
Adds default-export BigTony React component plus internal types and constants: FeatureCardData, FEATURE_CARDS, CHECK_ITEMS, FeatureCard, and CheckItem. Renders static JSX: title/subtitle, WhatsApp CTA, attribution, three SVG-backed feature cards (Support, Sales, Leads), and a checklist. No props or state.
Next.js Image Config
next.config.ts
Extends images.remotePatterns with a new entry for hostname wassist.app to allow remote images from that origin. No other config changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I hopped along the code-lined way,
Painted cards where Big Tony'll stay,
A WhatsApp wink, three badges bright,
I guard the page all through the night. 🥕✨

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'New bt page' is vague and generic, using non-descriptive terminology that doesn't clearly convey what the page does or its purpose. Use a more descriptive title that explains the page's purpose, such as 'Add Big Tony bot landing page with WhatsApp CTA' or similar.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

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

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch cursor/MAF-101-new-bt-page-e035
📝 Coding Plan for PR comments
  • Generate coding plan

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

Copy link
Copy Markdown
@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.

🧹 Nitpick comments (1)
src/app/bt/page.tsx (1)

7-11: Consider using next/image for optimized image loading.

Using the native <img> element bypasses Next.js image optimizations (automatic lazy loading, sizing, and format conversion). Since this loads from an external domain, you'll need to configure the domain in next.config.js.

♻️ Proposed fix using next/image

Add to next.config.js (or next.config.ts):

images: {
  remotePatterns: [
    {
      protocol: 'https',
      hostname: 'wassist.app',
    },
  ],
},

Then update the component:

+import Image from 'next/image';
+
 export default function BigTony() {
   return (
     <div className="min-h-screen bg-white flex items-center justify-center px-6 my-4">
       <div className="max-w-md w-full">
         <div className="border border-black p-8 md:p-12 text-center space-y-8">
           <div className="flex justify-center">
-            <img 
-              src="https://wassist.app/logo-full.svg" 
-              alt="Wassist Logo" 
-              className="h-16 md:h-20"
-            />
+            <Image 
+              src="https://wassist.app/logo-full.svg" 
+              alt="Wassist Logo" 
+              width={200}
+           
8000
   height={80}
+              className="h-16 md:h-20 w-auto"
+              priority
+            />
           </div>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/app/bt/page.tsx` around lines 7 - 11, Replace the raw <img> in
src/app/bt/page.tsx with Next.js's Image component: import Image from
'next/image' and use <Image src="https://wassist.app/logo-full.svg" alt="Wassist
Logo" width={/* px */} height={/* px */} className="h-16 md:h-20" /> (or use
layout="responsive"/fill with a positioned wrapper and appropriate sizes). Also
add the external domain to your Next config by adding images.remotePatterns with
protocol 'https' and hostname 'wassist.app' so Next can optimize the remote
asset; ensure the Image props (width/height or sizes) are set to enable
optimization.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@src/app/bt/page.tsx`:
- Around line 7-11: Replace the raw <img> in src/app/bt/page.tsx with Next.js's
Image component: import Image from 'next/image' and use <Image
src="https://wassist.app/logo-full.svg" alt="Wassist Logo" width={/* px */}
height={/* px */} className="h-16 md:h-20" /> (or use layout="responsive"/fill
with a positioned wrapper and appropriate sizes). Also add the external domain
to your Next config by adding images.remotePatterns with protocol 'https' and
hostname 'wassist.app' so Next can optimize the remote asset; ensure the Image
props (width/height or sizes) are set to enable optimization.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 518e4933-39e3-451d-a0be-c155dc695ce8

📥 Commits

Reviewing files that changed from the base of the PR and between a11dbf5 and cb28f7b.

📒 Files selected for processing (1)
  • src/app/bt/page.tsx

@Ches-ctrl
Copy link
Copy Markdown
Collaborator Author

@cursoragent fix the issues with linting. Note Alex's comment on upper / lower margin. Note some major updates on main were added since this PR was made

@cursor
Copy link
Copy Markdown
cursor bot commented Mar 12, 2026

Taking a look!

Open in Web Open in Cursor 

cursoragent and others added 2 commits March 12, 2026 13:15
Co-authored-by: Charlie Cheesman <Ches-ctrl@users.noreply.github.com>
Co-authored-by: Alex Choi <64334999+alexechoi@users.noreply.github.com>
Copy link
Copy Markdown
@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/app/bt/page.tsx (1)

27-29: Serve the logo from this app instead of hotlinking it.

The page depends on wassist.app for a core branding asset, and the raw <img> tag triggers the @next/next/no-img-element rule from your ESLint config (via next/core-web-vitals). Copy the SVG into public/ and use next/image instead.

Suggested direction
+import Image from "next/image";
+
 ...
-              <a href="https://wassist.app/" target="_blank" rel="noopener noreferrer" className="hover:opacity-80 transition-opacity">
-                <img src="https://wassist.app/logo-full.svg" alt="Wassist" className="h-12 md:h-16" />
+              <a href="https://wassist.app/" target="_blank" rel="noopener noreferrer" className="hover:opacity-80 transition-opacity">
+                <Image
+                  src="/wassist-logo-full.svg"
+                  alt="Wassist"
+                  width={180}
+                  height={48}
+                  className="h-12 w-auto md:h-16"
+                />
               </a>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/app/bt/page.tsx` around lines 27 - 29, Copy the external SVG into the
app's public/ directory (e.g., public/logo-full.svg), then replace the raw <img>
usage in src/app/bt/page.tsx: import Image from "next/image" and use the Image
component (src="/logo-full.svg", alt="Wassist", height/width or className as
appropriate) inside the existing anchor (keep the anchor's props like target and
rel). This removes the external hotlink and fixes the `@next/next/no-img-element`
ESLint violation by using next/image instead of the <img> tag.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/app/bt/page.tsx`:
- Line 61: Replace Tailwind v3's removed utility "flex-shrink-0" with v4's
"shrink-0" on the span elements to prevent the icon from compressing;
specifically update the className on the span in src/app/bt/page.tsx (the
element with className containing "flex-shrink-0 w-5 h-5 rounded-full
bg-gray-100 ..."), and apply the same replacement to the similar span usages at
the other occurrences you noted (the other two spans in page.tsx and the
analogous spans in trustby.tsx and company-list.tsx).

---

Nitpick comments:
In `@src/app/bt/page.tsx`:
- Around line 27-29: Copy the external SVG into the app's public/ directory
(e.g., public/logo-full.svg), then replace the raw <img> usage in
src/app/bt/page.tsx: import Image from "next/image" and use the Image component
(src="/logo-full.svg", alt="Wassist", height/width or className as appropriate)
inside the existing anchor (keep the anchor's props like target and rel). This
removes the external hotlink and fixes the `@next/next/no-img-element` ESLint
violation by using next/image instead of the <img> tag.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: dcdcb4c3-c946-41e6-8500-39e84cb93122

📥 Commits

Reviewing files that changed from the base of the PR and between cb28f7b and e9d8e97.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1)
  • src/app/bt/page.tsx

</div>
<ul className="text-left text-sm font-body text-gray-600 space-y-2">
<li className="flex items-center gap-2">
<span className="flex-shrink-0 w-5 h-5 rounded-full bg-gray-100 flex items-center justify-center text-green-600" aria-hidden>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Tailwind version references:"
rg -n '"tailwindcss"|tailwindcss@' package.json pnpm-lock.yaml package-lock.json yarn.lock 2>/dev/null || true

echo
echo "Deprecated Tailwind v3 shrink utilities still in the repo:"
rg -n --glob '*.{ts,tsx,js,jsx,css}' '\bflex-shrink-(0|[1-9][0-9]*)\b'

Repository: unicorn-mafia/unicorn-mafia

Length of output: 1424


Replace flex-shrink-0 with Tailwind v4's shrink-0.

flex-shrink-* utilities were removed in Tailwind v4. Use shrink-0 instead to prevent the icon from compressing when content wraps.

Minimal fix
-                  <span className="flex-shrink-0 w-5 h-5 rounded-full bg-gray-100 flex items-center justify-center text-green-600" aria-hidden>
+                  <span className="shrink-0 w-5 h-5 rounded-full bg-gray-100 flex items-center justify-center text-green-600" aria-hidden>

Also applies to lines 67 and 73. Note: Similar instances exist in src/app/_components/trustby/trustby.tsx and src/app/_components/companies/company-list.tsx that need the same fix.

📝 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
<span className="flex-shrink-0 w-5 h-5 rounded-full bg-gray-100 flex items-center justify-center text-green-600" aria-hidden>
<span className="shrink-0 w-5 h-5 rounded-full bg-gray-100 flex items-center justify-center text-green-600" aria-hidden>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/app/bt/page.tsx` at line 61, Replace Tailwind v3's removed utility
"flex-shrink-0" with v4's "shrink-0" on the span elements to prevent the icon
from compressing; specifically update the className on the span in
src/app/bt/page.tsx (the element with className containing "flex-shrink-0 w-5
h-5 rounded-full bg-gray-100 ..."), and apply the same replacement to the
similar span usages at the other occurrences you noted (the other two spans in
page.tsx and the analogous spans in trustby.tsx and company-list.tsx).

67E6
Copy link
Copy Markdown
@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.

🧹 Nitpick comments (1)
src/app/bt/page.tsx (1)

35-39: Use Next.js <Image /> component for optimized image loading.

Using the native <img> element bypasses Next.js image optimization, resulting in potentially slower LCP and higher bandwidth. Since this is an external image, you'll need to configure the remote pattern in next.config.js.

Proposed fix

First, add the remote pattern to your Next.js config:

// next.config.js
module.exports = {
  images: {
    remotePatterns: [
      {
        protocol: 'https',
        hostname: 'wassist.app',
      },
    ],
  },
};

Then update the component:

+import Image from "next/image";
+
 export default function BigTony() {
   // ...
-              <img
-                src="https://wassist.app/logo-full.svg"
-                alt="Wassist"
-                className="h-12 md:h-16"
-              />
+              <Image
+                src="https://wassist.app/logo-full.svg"
+                alt="Wassist"
+                width={160}
+                height={64}
+                className="h-12 md:h-16 w-auto"
+              />
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/app/bt/page.tsx` around lines 35 - 39, Replace the plain <img> in the BT
page component with Next.js' Image to enable optimization: import Image from
'next/image' in src/app/bt/page.tsx, swap the <img
src="https://wassist.app/logo-full.svg" ... /> usage for an <Image> usage
(preserve the alt text, className and supply explicit width/height or use
layout/fill as appropriate) and ensure you add the remote pattern for
wassist.app in next.config.js (images.remotePatterns with protocol 'https' and
hostname 'wassist.app') so external loading is allowed.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@src/app/bt/page.tsx`:
- Around line 35-39: Replace the plain <img> in the BT page component with
Next.js' Image to enable optimization: import Image from 'next/image' in
src/app/bt/page.tsx, swap the <img src="https://wassist.app/logo-full.svg" ...
/> usage for an <Image> usage (preserve the alt text, className and supply
explicit width/height or use layout/fill as appropriate) and ensure you add the
remote pattern for wassist.app in next.config.js (images.remotePatterns with
protocol 'https' and hostname 'wassist.app') so external loading is allowed.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 72d1749d-c82c-438d-bb0d-aa8423b3b583

📥 Commits

Reviewing files that changed from the base of the PR and between e9d8e97 and 49a5aa4.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1)
  • src/app/bt/page.tsx

Copy link
Copy Markdown
@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Free Tier Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

</span>
98% open rate on WhatsApp · 24/7
</li>
</ul>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Heavily duplicated SVG and card markup

Low Severity

The identical checkmark SVG (path, attributes, and wrapper span) is copy-pasted three times across the list items. Similarly, the three feature cards (Support, Sales, Leads) share nearly identical 30-line blocks differing only in the icon path and two text strings. Extracting a small CheckItem component for the list and mapping over a data array for the feature cards would cut ~100 lines of duplication and ensure future style changes only need to be made in one place.

Additional Locations (1)
Fix in Cursor Fix in Web

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.

4 participants

0