Skip to content

feat(landing): use-case-specific /for/ pages with collapsible code tabs#1134

Merged
buremba merged 2 commits into
mainfrom
feat/landing-use-case-tabs
May 28, 2026
Merged

feat(landing): use-case-specific /for/ pages with collapsible code tabs#1134
buremba merged 2 commits into
mainfrom
feat/landing-use-case-tabs

Conversation

@buremba
Copy link
Copy Markdown
Member

@buremba buremba commented May 28, 2026

Summary

  • Replace the alternating two-column section grid on /for/<useCase> pages with a single What ships section: 4–5 compact tab cards (lobu.config.ts / Connectors / Memory / Watchers / Skills). First tab preselected; clicking another opens its code panel below at full width; clicking the active one collapses.
  • Per-use-case snippet generation: each examples/<slug>/ dir now contributes its own agentConfig / reaction / skill (where present). Sections without a source file hide cleanly instead of falling back to the sales example.
  • Architecture diagram entity rows and Connectors column are derived from landingUseCases[slug].memory.highlights and .howItWorks.connect.chips, so /for/legal shows "Redwood NDA / contract" + "File upload / Drive / Research" instead of generic "Customer A / company".
  • Hero: secondary CTA swapped from "View on GitHub" to "Talk to the founder", reusing the existing cal.com modal.
  • Homepage Browse Examples: curated 6 cards routing to /for/<slug> + one "Browse all on GitHub" link.
  • CodeBlock gains a maxHeight prop. Shared GitHub URLs pulled into packages/landing/src/lib/urls.ts.

Test plan

  • bunx tsc --noEmit clean of new errors (pre-existing astro:content errors unchanged)
  • Biome pre-commit hook green
  • Visually verified /for/legal: architecture diagram shows legal-specific entities and connectors; tabs default to lobu.config.ts open; clicking Connectors swaps in the DocuSign connector code with the chip wall below
  • Eyeball /for/sales (the one with all 5 tabs incl. Skills)
  • Eyeball /for/finance / /for/market for entity-row fit

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag @codesmith with what you need. Autofix is disabled.

Summary by CodeRabbit

  • New Features

    • Landing page now displays use-case-specific architecture diagrams and skill configurations
    • Added "Talk to the founder" scheduling button as primary call-to-action
    • Code blocks now support vertical scrolling for longer content
    • Featured examples section highlights curated use cases
  • Refactor

    • Consolidated GitHub URLs for consistent link management across components

Review Change Stack

- Replace alternating two-column section grid on /for/<useCase> pages with
  a single "What ships" section showing 4-5 collapsed tab cards
  (lobu.config.ts / Connectors / Memory / Watchers / Skills). Clicking a
  card reveals a full-width code panel below. First tab preselected.
- Per-use-case snippet generation: gen-landing-snippets.ts now emits
  agentConfig/reaction/skill snippets per example dir; sections with no
  source file (e.g. legal has no reaction or skill) hide cleanly instead
  of falling back to sales.
- Architecture diagram entity rows + Connectors column derived from
  landingUseCases[slug].memory.highlights / .howItWorks.connect.chips,
  so /for/legal shows "Redwood NDA / contract" and "File upload / Drive
  / Research" instead of generic "Customer A / company".
- Hero: replace "View on GitHub" secondary CTA with "Talk to the founder"
  reusing the existing cal.com modal.
- Homepage Browse Examples: curated 6 cards routing to /for/<slug> plus
  a single "Browse all on GitHub" link.
- CodeBlock gains maxHeight prop to bound long snippets.
- Pull shared GitHub URLs into packages/landing/src/lib/urls.ts.
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

Warning

Review limit reached

@buremba, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 15 minutes and 23 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d7b7f745-fef7-44dd-91ae-e8e90bdcbd90

📥 Commits

Reviewing files that changed from the base of the PR and between e3d9e23 and 216102d.

📒 Files selected for processing (1)
  • packages/landing/src/components/LandingPage.tsx
📝 Walkthrough

Walkthrough

This PR modernizes the landing page to be driven by use-case configurations and skills. It centralizes GitHub URLs, extends the snippet generator to capture agent configurations and optional reaction/skill modules, refactors the architecture diagram to be data-driven, and redesigns the landing page with featured use-case examples, per-use-case architecture visualization, and a new "Talk to the founder" call-to-action.

Changes

Landing Page Use-Case-Driven Modernization

Layer / File(s) Summary
URL Centralization
src/lib/urls.ts, src/components/Footer.tsx, src/components/Nav.tsx, src/components/ServerlessSection.tsx
New urls.ts exports centralized GITHUB_URL and derived GITHUB_EXAMPLES_URL, GITHUB_CONNECTORS_TREE_URL, and GITHUB_CONNECTORS_BLOB_URL constants; Footer, Nav, and ServerlessSection import GITHUB_URL from the shared module instead of defining it locally.
Snippet Generation and Architecture Diagram Data Infrastructure
scripts/gen-landing-snippets.ts, src/use-case-showcases.ts
UseCaseSnippets type extended to include optional agentConfig, reaction, and skill fields; generator adds file-discovery helpers (findReactionFile, findSkillFile) and updates buildUseCases() to capture these fields; new architecture selectors export ArchitectureEntityRow type and two functions (getArchitectureEntityRows, getArchitectureConnectorChips) that derive diagram data from use case metadata or return null.
CodeBlock Vertical Scroll Constraint
src/components/CodeBlock.tsx
Optional maxHeight?: string prop added to CodeBlockProps; when provided, the code <pre> element is constrained with max-height style and overflow-auto scrolling.
Data-Driven Architecture Diagram
src/components/ArchitectureDiagram.tsx
Refactors from static hardcoded content to accept optional slug prop and fetch entity rows and connector chips; falls back to generic placeholder data when unavailable; DiagramBoard, DesktopBoard, and MobileBoard now accept and wire rows and connectorRows props; ConnectorsColumn maps connector rows to links, MemoryColumn and EntitiesTable render from passed-in data instead of internal placeholders.
Landing Page Use-Case-Driven Redesign
src/components/LandingPage.tsx
Derives per-use-case agentConfig, reaction, and skill snippets; replaces hero "View on GitHub" link with ScheduleCallButton ("Talk to the founder"); curates featured examples grid via FEATURED_EXAMPLE_SLUGS allowlist; adds "Browse all N examples on GitHub" link; wires active use-case slug into ArchitectureDiagram; replaces static product sections with new UseCaseShowcaseSection tabbed component that conditionally includes skills tab; updates connector chips and footer links to use centralized URL constants.

Sequence Diagram(s)

sequenceDiagram
  participant ArchitectureDiagram
  participant getArchitectureEntityRows
  participant getArchitectureConnectorChips
  participant DiagramBoard
  participant DesktopBoard
  participant EntitiesTable
  ArchitectureDiagram->>getArchitectureEntityRows: fetch(slug)
  getArchitectureEntityRows-->>ArchitectureDiagram: rows | null
  ArchitectureDiagram->>getArchitectureConnectorChips: fetch(slug)
  getArchitectureConnectorChips-->>ArchitectureDiagram: connectorRows | null
  ArchitectureDiagram->>DiagramBoard: pass rows and connectorRows
  DiagramBoard->>DesktopBoard: wire props
  DesktopBoard->>EntitiesTable: pass rows
  EntitiesTable-->>DesktopBoard: render entity rows
Loading
sequenceDiagram
  participant LandingPage
  participant snippets
  participant getArchitectureEntityRows
  participant UseCaseShowcaseSection
  participant ArchitectureDiagram
  LandingPage->>snippets: load use case data
  snippets-->>LandingPage: useCases with agentConfig/reaction/skill
  LandingPage->>getArchitectureEntityRows: fetch for active slug
  getArchitectureEntityRows-->>LandingPage: entity rows
  LandingPage->>ArchitectureDiagram: pass slug
  ArchitectureDiagram-->>LandingPage: rendered diagram
  LandingPage->>UseCaseShowcaseSection: pass config/connector/memory/skill snippets
  UseCaseShowcaseSection-->>LandingPage: tabbed showcase view
  LandingPage-->>User: use-case focused layout with featured examples
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • lobu-ai/lobu#1112: Modifies gen-landing-snippets.ts to expand how agentConfig snippet contents are extracted from lobu.config.ts, overlapping with this PR's generator logic.
  • lobu-ai/lobu#1076: Updates gen-landing-snippets.ts snippet generation pipeline around skill markdown handling and landing snippet shaping, directly related to this PR's generator changes.
  • lobu-ai/lobu#988: Implements the same per-use-case snippet/tab flow on /for/[useCase] using data from gen-landing-snippets.ts, along with landing navigation simplification.

Poem

🐰 The landing page now dances per use case—
architecture diagrams bloom from data, not hardcoded grace!
URLs centralized, snippets now sing with skills and reaction,
featured examples curated, founder's call-to-action—
a modern, data-driven place! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main feature: adding use-case-specific pages with collapsible code tabs, which is the primary architectural and UX change across the modified files.
Description check ✅ Passed The description provides a clear summary with implementation details, includes substantial portions of the test plan (marked partially complete), and documents all major changes and follow-ups.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/landing-use-case-tabs

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


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.

@buremba
Copy link
Copy Markdown
Member Author

buremba commented May 28, 2026

bug_free 88, simplicity 82, slop 12, bugs 0, 0 blockers

Script-run typecheck, unit, and integration suites passed. Also ran cd packages/landing && bun run build -> OK, 90 pages built; only a non-fatal existing CSS @import-order warning appeared. Did not run browser interaction tests.

Suggested fixes

File Line Change
packages/landing/src/components/LandingPage.tsx 560 Delete the now-unused ProductGrid helper.
packages/landing/src/components/LandingPage.tsx 588 Delete the now-unused FeatureList helper.
Full verdict JSON
{
  "bug_free_confidence": 88,
  "bugs": 0,
  "slop": 12,
  "simplicity": 82,
  "blockers": [],
  "change_type": "feat",
  "behavior_change_risk": "medium",
  "tests_adequate": true,
  "suggested_fixes": [
    {
      "file": "packages/landing/src/components/LandingPage.tsx",
      "line": 560,
      "change": "Delete the now-unused ProductGrid helper."
    },
    {
      "file": "packages/landing/src/components/LandingPage.tsx",
      "line": 588,
      "change": "Delete the now-unused FeatureList helper."
    }
  ],
  "notes": "Script-run typecheck, unit, and integration suites passed. Also ran cd packages/landing && bun run build -> OK, 90 pages built; only a non-fatal existing CSS @import-order warning appeared. Did not run browser interaction tests.",
  "categories": {
    "src": 882,
    "tests": 0,
    "docs": 0,
    "config": 0,
    "deps": 0,
    "migrations": 0,
    "ci": 0,
    "generated": 103
  }
}

Local review gate — branch protection can require the pi-review commit status. See docs/REVIEW_SCHEMA.md.

@buremba buremba enabled auto-merge (squash) May 28, 2026 16:48
@buremba buremba merged commit 51124de into main May 28, 2026
19 of 21 checks passed
@buremba buremba deleted the feat/landing-use-case-tabs branch May 28, 2026 16:49
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