Skip to content

Comments

feat: Landing page with live community embed (bd-landing-001)#296

Open
khaliqgant wants to merge 2 commits intomainfrom
feat/landing-page-community-embed
Open

feat: Landing page with live community embed (bd-landing-001)#296
khaliqgant wants to merge 2 commits intomainfrom
feat/landing-page-community-embed

Conversation

@khaliqgant
Copy link
Collaborator

@khaliqgant khaliqgant commented Jan 24, 2026

Adds landing page with live community rooms embed.

  • Card-based grid layout for community rooms
  • Activity indicators (simulated, updates every 3s)
  • Structure ready for real API integration
  • Update App.tsx to include landing page route

Note: Requires bd-viral-001 (public rooms) and bd-agent-public-001 (agents) to be complete for full functionality.

Implements bd-landing-001 marketing feature.


Open with Devin

- Add card-based grid layout for community rooms
- Implement activity indicators (simulated, updates every 3s)
- Structure ready for real API integration
- Update App.tsx to include landing page route

Note: Requires bd-viral-001 (public rooms) and bd-agent-public-001 (agents) to be complete for full functionality.
Implements bd-landing-001 marketing feature.
@my-senior-dev-pr-review
Copy link

my-senior-dev-pr-review bot commented Jan 24, 2026

🤖 My Senior Dev — Analysis Complete

👤 For @khaliqgant

📁 Expert in src (662 edits) • ⚡ 149th PR this month

View your contributor analytics →


📊 3 files reviewed • 2 high risk • 4 need attention

🚨 High Risk:

  • packages/dashboard/ui/landing/LandingPage.tsx — Presence of critical issues related to mock data and incomplete implementations.
  • packages/dashboard/ui/landing/LandingPage.tsx — Critical lack of error handling and validation could affect application stability and user experience.

⚠️ Needs Attention:

  • packages/dashboard/ui/landing/LandingPage.tsx — Significant logic changes that require scrutiny due to potential user experience impacts.

🚀 Open Interactive Review →

The full interface unlocks features not available in GitHub:

  • 💬 AI Chat — Ask questions on any file, get context-aware answers
  • 🔍 Smart Hovers — See symbol definitions and usage without leaving the diff
  • 📚 Code Archeology — Understand how files evolved over time (/archeology)
  • 🎯 Learning Insights — See how this PR compares to similar changes

💬 Chat here: @my-senior-dev explain this change — or try @chaos-monkey @security-auditor @optimizer @skeptic @junior-dev

📖 View all 12 personas & slash commands

You can interact with me by mentioning @my-senior-dev in any comment:

In PR comments or on any line of code:

  • Ask questions about the code or PR
  • Request explanations of specific changes
  • Get suggestions for improvements

Slash commands:

  • /help — Show all available commands
  • /archeology — See the history and evolution of changed files
  • /profile — Performance analysis and suggestions
  • /expertise — Find who knows this code best
  • /personas — List all available AI personas

AI Personas (mention to get their perspective):

Persona Focus
@chaos-monkey 🐵 Edge cases & failure scenarios
@skeptic 🤨 Challenge assumptions
@optimizer Performance & efficiency
@security-auditor 🔒 Security vulnerabilities
@accessibility-advocate Inclusive design
@junior-dev 🌱 Simple explanations
@tech-debt-collector 💳 Code quality & shortcuts
@ux-champion 🎨 User experience
@devops-engineer 🚀 Deployment & scaling
@documentation-nazi 📚 Documentation gaps
@legacy-whisperer 🏛️ Working with existing code
@test-driven-purist Testing & TDD

For the best experience, view this PR on myseniordev.com — includes AI chat, file annotations, and interactive reviews.

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 2 potential issues.

View issues and 2 additional flags in Devin Review.

Open in Devin Review

return {
...room,
lastActivityAt: new Date(Date.now() - Math.random() * 5 * 60 * 1000),
onlineCount: room.onlineCount + (Math.random() > 0.5 ? 1 : -1),
Copy link
Contributor

Choose a reason for hiding this comment

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

🟡 onlineCount can become negative due to unbounded decrement

The simulated activity update for community rooms can cause onlineCount to become negative over time.

Click to expand

Issue

In LandingPage.tsx:486, the online count is updated randomly:

onlineCount: room.onlineCount + (Math.random() > 0.5 ? 1 : -1),

This randomly adds or subtracts 1 from the count every 3 seconds (when shouldUpdate is true). Since there's no lower bound check, over time the count can become negative.

Example Scenario

  • Room starts with onlineCount: 15
  • After several unlucky decrements: onlineCount: -3
  • UI displays "-3 online" which is nonsensical

Impact

  • Users see negative online counts (e.g., "-5 online") which looks like a bug
  • Damages credibility of the landing page's "live" community feature

Recommendation: Add a lower bound check: onlineCount: Math.max(0, room.onlineCount + (Math.random() > 0.5 ? 1 : -1))

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View issue and 4 additional flags in Devin Review.

Open in Devin Review

/** Show notification badge on mobile menu button */
hasUnreadNotifications?: boolean;
/** Whether WebSocket is attempting to reconnect */
isReconnecting?: boolean;
Copy link
Contributor

Choose a reason for hiding this comment

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

🟡 isReconnecting prop added to HeaderProps but not destructured or used

The isReconnecting prop is defined in HeaderProps interface and passed from App.tsx, but it is never destructured in the Header function parameters, making the reconnection state indicator feature non-functional.

Click to expand

How it happens

At packages/dashboard/ui/react-components/layout/Header.tsx:48, isReconnecting is added to HeaderProps:

isReconnecting?: boolean;

At packages/dashboard/ui/react-components/App.tsx:2475, it's passed to Header:

isReconnecting={isReconnecting}

But in the Header function (lines 51-71), isReconnecting is NOT in the destructured parameters, so the prop is silently ignored.

Impact

The intended feature to show WebSocket reconnection status in the header will not work. Users won't see any indication when the app is attempting to reconnect after a connection drop.

Recommendation

Add isReconnecting to the destructured parameters and implement the UI to display reconnection state.

Recommendation: Destructure isReconnecting in the Header function parameters (around line 70) and implement UI to display the reconnection state to users.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant