Skip to content

Conversation

@GregHolmes
Copy link
Contributor

Description

Restructured llms.txt generation with product categorisation This update reorganises the generated llms.txt file from a flat list into a structured hierarchy with categories (Platform, Pub/Sub, Chat, Spaces, LiveObjects, LiveSync, Asset Tracking) and subcategories based on URL patterns. Added a more informative preamble describing Ably's core features, support for Kotlin and React languages, and logic to skip redundant language-specific URLs when the language already matches the page slug (e.g., prevents /getting-started/go?lang=go). The structured format improves LLM navigation and discovery of relevant documentation.

Attached an example of the llms.txt generated:

llms.txt

Build output:

info onPostBuild: Found 205 pages to place into llms.txt (26 textile, 179 MDX)
info onPostBuild: Successfully wrote llms.txt with 591 pages

@GregHolmes GregHolmes requested review from a team, kennethkalmer and m-hulbert October 16, 2025 09:13
@GregHolmes GregHolmes self-assigned this Oct 16, 2025
@coderabbitai
Copy link

coderabbitai bot commented Oct 16, 2025

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch EDU-2101-Update-llms.txt-to-be-better-structured

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
Member

@kennethkalmer kennethkalmer left a comment

Choose a reason for hiding this comment

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

@GregHolmes should we even have asset tracking in here since it is being deprecated?

@m-hulbert m-hulbert added the review-app Create a Heroku review app label Oct 17, 2025
@ably-ci ably-ci temporarily deployed to ably-docs-edu-2101-upda-addorf October 17, 2025 14:21 Inactive
Copy link
Contributor

@m-hulbert m-hulbert left a comment

Choose a reason for hiding this comment

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

This is a really great idea, Greg.

There's a few tweaks I think we need to make to Platform and Pub/Sub and I also wonder if we should look at breaking down other products too (at least maybe Chat and LiveObjects) into further categories. WDYT?

channels: { category: 'Pub/Sub', subcategory: 'Channels' },
connect: { category: 'Pub/Sub', subcategory: 'Connections' },
'getting-started': { category: 'Pub/Sub', subcategory: 'Getting Started' },
guides: { category: 'Pub/Sub', subcategory: 'Guides' },
Copy link
Contributor

Choose a reason for hiding this comment

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

This only has 1 at the moment and is for Chat... Let's move it into platform for now maybe.

platform: { category: 'Platform', subcategory: 'Platform & Account' },
auth: { category: 'Platform', subcategory: 'Authentication' },
api: { category: 'Platform', subcategory: 'API Reference' },
sdks: { category: 'Platform', subcategory: 'SDKs' },
Copy link
Contributor

Choose a reason for hiding this comment

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

I think there should be some additional sub-categories here:

  • architecture
  • pricing
  • integrations

connect: { category: 'Pub/Sub', subcategory: 'Connections' },
'getting-started': { category: 'Pub/Sub', subcategory: 'Getting Started' },
guides: { category: 'Pub/Sub', subcategory: 'Guides' },
'how-to': { category: 'Pub/Sub', subcategory: 'How-To' },
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's remove this. I think it's time we removed the page too.

'metadata-stats': { category: 'Pub/Sub', subcategory: 'Metadata & Statistics' },
'presence-occupancy': { category: 'Pub/Sub', subcategory: 'Presence & Occupancy' },
protocols: { category: 'Pub/Sub', subcategory: 'Protocols' },
'pub-sub': { category: 'Pub/Sub', subcategory: 'Pub/Sub Features' },
Copy link
Contributor

Choose a reason for hiding this comment

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

This seems to be used for the Pub/Sub basics and advanced pages which seems odd. I wonder if we need an 'unclassified' product level one. So it's just a category of 'Pub/Sub' without a sub-category. WDYT?

// Platform
platform: { category: 'Platform', subcategory: 'Platform & Account' },
auth: { category: 'Platform', subcategory: 'Authentication' },
api: { category: 'Platform', subcategory: 'API Reference' },
Copy link
Contributor

Choose a reason for hiding this comment

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

I think APIs should sit within the relevant product.

sdks: { category: 'Platform', subcategory: 'SDKs' },

// Pub/Sub - Core realtime messaging features
basics: { category: 'Pub/Sub', subcategory: 'Basics' },
Copy link
Contributor

Choose a reason for hiding this comment

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

This just pulls in the product landing page. See my comment about an empty sub-category suggestion.

Comment on lines +17 to +18
- **Multiple Products**: Pub/Sub, Chat, LiveSync, LiveObjects, Spaces, Asset Tracking, and powerful integrations
- **Developer-Friendly SDKs**: SDKs available for JavaScript, Python, Java, Go, Swift, and many more languages
Copy link
Contributor

Choose a reason for hiding this comment

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

Lost my comment these;

  • Let's remove 'integrations' from a heading about products.
  • Should we list all languages in the SDK row to make it complete?

@GregHolmes GregHolmes force-pushed the EDU-2101-Update-llms.txt-to-be-better-structured branch from 95613e3 to 69fad7b Compare October 24, 2025 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-app Create a Heroku review app

Development

Successfully merging this pull request may close these issues.

4 participants