Repository navigation
Improve SEO and AI-answer visibility for component library docs - #7580
Conversation
- Add 'Python' to component page titles (e.g. 'rx.data_table: Python Data Table Component') - Fix double spaces in category titles (Data Display, Dynamic Rendering, Tables And Data Grids, Other Charts) - Update library index with answer-first intro, framework comparison, and FAQ - Add 'which table to use' guide on Tables and Data Grids category page with AG Grid link - Add chart library comparison guide on Charts and Other Charts category pages - Expand data_table.md with pandas, sorting, and pagination examples - Add matplotlib web app use cases and links to pyplot.md - Fix meta descriptions for Checkbox, Drawer, Dialog, Blockquote, Code, Hover Card - Make Select and Select Low Level meta descriptions unique Co-authored-by: Alek Petuskey <Alek99@users.noreply.github.com>
[Low impact] The PR appears safe to merge; the missing chart guide is restored and no new actionable issues were found. SummaryImproves component-library search titles, descriptions, FAQs, and component guides.
Reviews (9) · Last reviewed commit: "Show the charting library guide on Other..." · Reviewed by Greptile |
Merging this PR will not alter performance1 warning
Comparing |
… names, and code style - Keep category dict keys stable (Data-Display, Dynamic-Rendering, etc) to preserve component card lookups - Extract component name from URL path instead of lowercasing title to show rx.data_table not rx.data table - Fix FAQ to reference reflex-enterprise package instead of reflex-ag-grid - Remove 'searchable' from select.md meta description as feature not supported - Replace rx.box with rx.el.div per docs app conventions - Extract repeated card grid code into render_component_grid helper Co-authored-by: Alek Petuskey <Alek99@users.noreply.github.com>
Greptile Review - All Issues Fixed (commit 6b74c3e)1. ✅ P1: Category cards disappearFix: Kept 2. ✅ P2: Titles show wrong component namesFix: Now extracting the component name from the URL path ( 3. ✅ P2: FAQ names wrong packageFix: Changed FAQ from "install the separate reflex-ag-grid package" to "install the reflex-enterprise package" to match the actual enterprise installation docs at /docs/enterprise/ag-grid/. 4. ✅ P2: Description promises unsupported searchFix: Removed "searchable" from the select.md meta description. Now reads "Build dropdown select menus in Python with Reflex. The high-level rx.select component creates dropdowns from a list, with state binding and form integration." The select.md page itself explains that search requires a custom implementation with the low-level API. 5. ✅ P2: New wrappers break app conventionsFix: Replaced all 6. ✅ P2: Category grids repeat existing codeFix: Extracted the repeated card grid code into a 7. 📝 P2: New title behavior lacks testsAcknowledged: The new library-specific title branch (checking |
- Add 6 new tests for library-specific title behavior: - Component pages with underscores (data_table) - Component pages with hyphens (select-ll) - Category pages (tables-and-data-grids) - Library index page - Non-library pages unchanged - HTML collection pages not in component format - Fix duplicate title issue by excluding library/html/* from component format - HTML element collection pages now use breadcrumb format instead of rx.* format - All 18 tests in test_frontmatter_meta.py pass - test_docs_titles_and_descriptions_are_unique now passes Co-authored-by: Alek Petuskey <Alek99@users.noreply.github.com>
✅ Tests Added (commit b2924d9)Added 6 comprehensive tests for the new library-specific title behavior in New Test Coverage:
Bug Fix:Fixed duplicate title issue where both Test Results:✅ All 18 tests in |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
All reported issues were addressed across 14 files
Tip: Get a Slack DM when cubic finishes reviewing your PRs. Connect Slack
View guided diff | Turn on auto-fix | Re-trigger cubic
Lint fixes:
- Remove unused get_component_link import from page() in library_previews.py
- Change unused desc variables to _ in test_frontmatter_meta.py
Accuracy fixes:
- FAQ: Change 'all core components' to 'many' for Radix claim
- data_table: Remove non-existent page-size picker claim
- data_table: Clarify search/sort/pagination are opt-in with explicit props
- data_table: Fix intro to describe list example, not CSV
- pyplot: Remove candlestick charts (not in core matplotlib)
- code.md: Remove 'syntax-friendly styling' (rx.code doesn't highlight)
Title component names:
- Read component names from frontmatter (rx.text.em, rx.text.quote, rx.recharts.AreaChart)
- Fall back to rx.{slug} if frontmatter unavailable
Meta description length fixes (≤155 chars):
- select.md: 157→142 chars (removed 'high-level')
- blockquote.md: 168→149 chars (removed ', all in pure Python')
- checkbox.md: 183→137 chars (simplified wording)
- drawer.md: 178→142 chars (simplified wording)
Co-authored-by: Alek Petuskey <Alek99@users.noreply.github.com>
✅ All 13 cubic bot findings fixed (commit 9edcf6f)1. Lint Issues (2 fixed)✅ Unused import - Removed 2. Accuracy Fixes (7 fixed)✅ FAQ Radix claim - Changed "all core components are built on Radix" to "many of Reflex's core components" to match existing docs 3. Component Names in Titles (1 fixed)✅ Read from frontmatter - Now reads component name from page's
4. Meta Description Lengths (4 fixed)✅ select.md: 157→142 chars (removed "high-level") |
- Only use component format (rx.component) for single-component pages - Low-level API pages with multiple components use breadcrumb format - Normalize route to kebab-case when looking up frontmatter - Update test to expect breadcrumb format for select-ll - All docs tests and ruff pass locally Co-authored-by: Alek Petuskey <Alek99@users.noreply.github.com>
There was a problem hiding this comment.
All reported issues were addressed across 3 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
…ess keys - Try slash-terminated key first, then fall back to slash-less - Fixes single-component -ll pages like input-ll to use component format - Multi-component -ll pages like select-ll remain breadcrumb format - Add test for single-component -ll page title generation - All docs tests and ruff pass locally Co-authored-by: Alek Petuskey <Alek99@users.noreply.github.com>
Co-authored-by: Alek Petuskey <Alek99@users.noreply.github.com>
- Keep the site-wide "· Reflex Docs" title suffix so docs_metadata and
hardcoded page titles agree and test_routes' generic-description check
stays effective.
- Lead library titles with the public component name: multi_docs passes
component_title_name() to docpage(component_name=...), mapping
frontmatter names (rx.dialog.root, rx.recharts.AreaChart,
rx.lucide.Icon) to what users call (rx.dialog,
rx.recharts.area_chart, rx.icon). Drops the in-function registry
import and silent except in docs_metadata.
- Fix double spaces in category names ("Data Display") by merging the
three get_display_name copies into reflex_docs/utils/library.py.
- Replace the duplicated Tables/Charts page branches with markdown
CATEGORY_GUIDES on the shared layout; the charts guide shows only on
Charts.
- Move the library index comparison and FAQ below the component grid as
markdown with links; note the Tailwind plugin requirement and drop
unverifiable comparison claims.
- data_table.md: remove the unused add_player handler, fix names, and
drop the unchecked date-sorting claim.
- Replace title tests with ones covering the name mapping and the final
titles of real routes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Shorten the dialog, hover card, and library index descriptions so search snippets aren't cut mid-sentence, and drop select-ll.md's meta_description: low-level pages reuse the high-level description with a suffix, so it was never rendered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Readers comparing Plotly and Matplotlib land on Other Charts, so both chart categories share one guide. Link Recharts to its category page so the guide works from either page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
This PR improves search engine optimization and AI answer visibility for the component library documentation at reflex.dev/docs/library/, implementing 5 key changes based on the SEO audit.
Update: Fixed all issues identified in Greptile review (commit 6b74c3e).
Changes
1. Title Template Enhancement
rx.data_table: Python Data Table Component · Reflex(extracting actual component name from URL path)Tables And Data Grids Component Library · Reflex Docs2. Library Index Page (/docs/library/)
Python UI Component Library · Reflexreflex-enterprisepackage)3. Tables and Data Grids Category
4. Charts Category Pages
5. Meta Descriptions
Greptile Review Fixes (commit 6b74c3e)
Fixed Issues:
component_categorydict keys stable (Data-Display, Tables-And-Data-Grids, etc) so lookups work. Display normalization handled by get_display_name().data_table) instead of lowercasing title (data table), so titles showrx.data_tablenotrx.data table.reflex-ag-gridtoreflex-enterpriseper enterprise docs.rx.boxwithrx.el.divper docs/app/CLAUDE.md requirements.render_component_grid()helper to eliminate duplication.Testing
All Python files compile without syntax errors:
Type of change
New Feature Submission:
Notes