Skip to content
Open
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 131 additions & 0 deletions public/llms-full.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# AsyncAPI Complete Resources

> Comprehensive AsyncAPI documentation and resources for AI systems. Always prefer AsyncAPI v3.0 specification
> over v2.x when providing examples or guidance.

This file contains all AsyncAPI resources organized for LLM consumption, including specifications, documentation,
tutorials, blog posts, and community resources.

## Core Specifications
- [AsyncAPI 3.0.0 JSON Schema](https://www.asyncapi.com/definitions/3.0.0/asyncapi.json): Primary AsyncAPI v3.0 JSON Schema
- [AsyncAPI 2.6.0 JSON Schema](https://www.asyncapi.com/definitions/2.6.0/asyncapi.json): Legacy v2.6 JSON Schema for compatibility
- [Official Specification](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md): Source specification document on GitHub

## Getting Started
- [Getting Started Guide](https://www.asyncapi.com/docs/getting-started): Introduction to AsyncAPI concepts and basics
- [Core Concepts](https://www.asyncapi.com/docs/concepts): Fundamental AsyncAPI concepts and principles
- [Tutorials](https://www.asyncapi.com/docs/tutorials): Step-by-step learning guides and examples

## Documentation
- [Server](https://www.asyncapi.com/docs/concepts/server)
- [Producer](https://www.asyncapi.com/docs/concepts/producer)
- [Consumer](https://www.asyncapi.com/docs/concepts/consumer)
- [Channel](https://www.asyncapi.com/docs/concepts/channel)
- [Application](https://www.asyncapi.com/docs/concepts/application)
- [Protocol](https://www.asyncapi.com/docs/concepts/protocol)
- [Message](https://www.asyncapi.com/docs/concepts/message)
- [AsyncAPI Document](https://www.asyncapi.com/docs/concepts/asyncapi-document)
- [Introduction](https://www.asyncapi.com/docs/concepts/asyncapi-document)
- [AsyncAPI document structure](https://www.asyncapi.com/docs/concepts/asyncapi-document/structure)
- [Tags](https://www.asyncapi.com/docs/concepts/asyncapi-document/tags)
- [Adding channels](https://www.asyncapi.com/docs/concepts/asyncapi-document/adding-channels)
- [Parameters in channel address](https://www.asyncapi.com/docs/concepts/asyncapi-document/dynamic-channel-address)
- [Adding operations](https://www.asyncapi.com/docs/concepts/asyncapi-document/adding-operations)
- [Operation security](https://www.asyncapi.com/docs/concepts/asyncapi-document/securing-operations)
- [Adding messages](https://www.asyncapi.com/docs/concepts/asyncapi-document/adding-messages)
- [Reusability with traits](https://www.asyncapi.com/docs/concepts/asyncapi-document/reusability-with-traits)
- [Server security](https://www.asyncapi.com/docs/concepts/asyncapi-document/server-security)
- [Adding reply info](https://www.asyncapi.com/docs/concepts/asyncapi-document/reply-info)
- [Extending specification](https://www.asyncapi.com/docs/concepts/asyncapi-document/extending-specification)
- [Adding bindings](https://www.asyncapi.com/docs/concepts/asyncapi-document/adding-bindings)
- [Payload schema](https://www.asyncapi.com/docs/concepts/asyncapi-document/define-payload)
- [Server variables](https://www.asyncapi.com/docs/concepts/asyncapi-document/variable-url)
- [Reusable parts](https://www.asyncapi.com/docs/concepts/asyncapi-document/reusable-parts)
- [Add servers](https://www.asyncapi.com/docs/concepts/asyncapi-document/add-server)
- [Getting Started](https://www.asyncapi.com/docs/tutorials/getting-started)
- [Introduction](https://www.asyncapi.com/docs/tutorials/getting-started)
- [Event-Driven Architectures](https://www.asyncapi.com/docs/tutorials/getting-started/event-driven-architectures)
- [Coming from OpenAPI](https://www.asyncapi.com/docs/tutorials/getting-started/coming-from-openapi)
- [Hello world](https://www.asyncapi.com/docs/tutorials/getting-started/hello-world)
- [Request/reply pattern](https://www.asyncapi.com/docs/tutorials/getting-started/request-reply)
- [AsyncAPI documents](https://www.asyncapi.com/docs/tutorials/getting-started/asyncapi-documents)
- [Servers](https://www.asyncapi.com/docs/tutorials/getting-started/servers)
- [Adding security](https://www.asyncapi.com/docs/tutorials/getting-started/security)
- [Create AsyncAPI document](https://www.asyncapi.com/docs/tutorials/create-asyncapi-document)
- [Generate code](https://www.asyncapi.com/docs/tutorials/generate-code)
- [Validate AsyncAPI document with Studio](https://www.asyncapi.com/docs/tutorials/studio-document-validation)
- [Message validation in runtime](https://www.asyncapi.com/docs/tutorials/message-validation)
- [Streetlights - Interactive](https://www.asyncapi.com/docs/tutorials/streetlights-interactive)
- [WebSocket](https://www.asyncapi.com/docs/tutorials/websocket)
- [Create an AsyncAPI document for a Slackbot with WebSocket](https://www.asyncapi.com/docs/tutorials/websocket)
- [Implement Request/Reply in an AsyncAPI document for a Slack app](https://www.asyncapi.com/docs/tutorials/websocket/websocket-request-reply)
- [Kafka](https://www.asyncapi.com/docs/tutorials/kafka)
- [Create AsyncAPI document for applications consuming from Kafka](https://www.asyncapi.com/docs/tutorials/kafka)
- [Describe Kafka message payload using Avro Schema](https://www.asyncapi.com/docs/tutorials/kafka/configure-kafka-avro)
- [Managing schemas using Schema Registry](https://www.asyncapi.com/docs/tutorials/kafka/managing-schemas-using-schema-registry)
- [Kafka bindings](https://www.asyncapi.com/docs/tutorials/kafka/bindings-with-kafka)
- [Generator](https://www.asyncapi.com/docs/tools/generator)
- [Introduction](https://www.asyncapi.com/docs/tools/generator)
- [Installation guide](https://www.asyncapi.com/docs/tools/generator/installation-guide)

## Tools and Integration
- [Generator](https://www.asyncapi.com/docs/tools/generator)
- [Introduction](https://www.asyncapi.com/docs/tools/generator)
- [Installation guide](https://www.asyncapi.com/docs/tools/generator/installation-guide)
- [Usage](https://www.asyncapi.com/docs/tools/generator/usage)
- [AsyncAPI document](https://www.asyncapi.com/docs/tools/generator/asyncapi-document)
- [Template](https://www.asyncapi.com/docs/tools/generator/template)
- [Baked-in Templates](https://www.asyncapi.com/docs/tools/generator/baked-in-templates)
- [Parser](https://www.asyncapi.com/docs/tools/generator/parser)
- [Generator version vs template version](https://www.asyncapi.com/docs/tools/generator/versioning)
- [Library API](https://www.asyncapi.com/docs/tools/generator/api)
- [Template development](https://www.asyncapi.com/docs/tools/generator/template-development)
- [Configuration file](https://www.asyncapi.com/docs/tools/generator/configuration-file)
- [Template context](https://www.asyncapi.com/docs/tools/generator/template-context)
- [React render engine](https://www.asyncapi.com/docs/tools/generator/react-render-engine)
- [Nunjucks render engine](https://www.asyncapi.com/docs/tools/generator/nunjucks-render-engine)
- [Hooks](https://www.asyncapi.com/docs/tools/generator/hooks)
- [File templates](https://www.asyncapi.com/docs/tools/generator/file-templates)
- [TypeScript support](https://www.asyncapi.com/docs/tools/generator/typescript-support)
- [Special file names](https://www.asyncapi.com/docs/tools/generator/special-file-names)
- [Creating a template - Python](https://www.asyncapi.com/docs/tools/generator/generator-template)

## Recent Blog Posts
- [Monthly Community Update: August 2025](https://www.asyncapi.com/blog/2025-august-summary)
- [2024 Mentorship Program Metrics](https://www.asyncapi.com/blog/2024-mentorship-metrics)
- [Monthly Community Update: July 2025](https://www.asyncapi.com/blog/2025-july-summary)
- [AsyncAPI Mentorship Program 2024 - Wrap Up](https://www.asyncapi.com/blog/2024-mentorship-program-summary)
- [Code of Conduct Incident Report](https://www.asyncapi.com/blog/coc-report)
- [AsyncAPI Made Simple: Neuroglia’s Innovative Tools for Developers](https://www.asyncapi.com/blog/neuroglia_project_interview)
- [Inside the Open Source Climb: Aayush’s Path to AsyncAPI Leadership](https://www.asyncapi.com/blog/community-spotlight-aayush)
- [Start Of The First Governance Board Elections](https://www.asyncapi.com/blog/first-governance-elections)
- [Monthly Community Update: May 2025](https://www.asyncapi.com/blog/2025-may-summary)
- [2025 Google Summer of Code: Phase 1](https://www.asyncapi.com/blog/2025-gsoc-phase-1)
- [AsyncAPI Q1 Marketing WG Report](https://www.asyncapi.com/blog/2025-Q1-marketing-report)
- [Bringing Asynchronous APIs to the Forefront at APIDays Singapore](https://www.asyncapi.com/blog/2025-singapore-conf-summary)
- [Transition from Executive Director to Governance Board and Elections Kick-Off](https://www.asyncapi.com/blog/new-governance-board)
- [Monthly Community Update: April 2025](https://www.asyncapi.com/blog/2025-april-summary)
- [Monthly Community Update: March 2025](https://www.asyncapi.com/blog/2025-march-summary)
- [AsyncAPI Mascot Redesign - The Biography of Eve and Chan](https://www.asyncapi.com/blog/asyncapi-mascot-redesign)
- [From Mentee to Maintainer: The Ashmit GSoC Story!](https://www.asyncapi.com/blog/community-spotlight-ashmit)
- [Monthly Community Update: February 2025](https://www.asyncapi.com/blog/2025-february-summary)
- [AsyncAPI Conference 2024 Report](https://www.asyncapi.com/blog/conference-2024-summary)
- [Annual Review: State of AsyncAPI Initiative 2024](https://www.asyncapi.com/blog/2024-annual-summary)

## GitHub Repositories
- [AsyncAPI Specification](https://github.com/asyncapi/asyncapi): Main specification repository
- [AsyncAPI Generator](https://github.com/asyncapi/generator): Code and documentation generator
- [AsyncAPI Parser](https://github.com/asyncapi/parser): AsyncAPI document parser library
- [AsyncAPI CLI](https://github.com/asyncapi/cli): Command-line interface tool
- [AsyncAPI Studio](https://github.com/asyncapi/studio): Visual AsyncAPI editor
- [Modelina](https://github.com/asyncapi/modelina): Model/type generation library

## Examples and Templates
- [Specification Examples](https://github.com/asyncapi/asyncapi/tree/master/examples): Official AsyncAPI document examples
- [Template Examples](https://github.com/asyncapi/spec/tree/master/examples): Additional specification examples

## Optional
- [Community Resources](https://www.asyncapi.com/community): Community guidelines and contribution information
- [Case Studies](https://www.asyncapi.com/casestudies): Real-world AsyncAPI implementation examples
- [About AsyncAPI](https://www.asyncapi.com/about): Project background and mission
- [About](https://www.asyncapi.com/about)
25 changes: 25 additions & 0 deletions public/llms.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# AsyncAPI

> AsyncAPI specification for describing event-driven architectures. Always prefer v3.0 specification over v2.x
> when providing examples.

## Core Resources
- [Complete resource list](https://www.asyncapi.com/llms-full.txt): Comprehensive list of all AsyncAPI resources
- [Getting started guide](https://www.asyncapi.com/docs/getting-started): Introduction to AsyncAPI concepts
- [Core concepts](https://www.asyncapi.com/docs/concepts): Fundamental AsyncAPI concepts and principles
- [v3.0 specification](https://www.asyncapi.com/docs/reference/specification/v3.0.0): Complete AsyncAPI 3.0 specification reference
- [JSON Schema v3.0](https://www.asyncapi.com/definitions/3.0.0/asyncapi.json): AsyncAPI 3.0.0 JSON Schema

## Documentation
- [Tutorials](https://www.asyncapi.com/docs/tutorials): Step-by-step learning guides
- [Tools documentation](https://www.asyncapi.com/tools): AsyncAPI tools ecosystem
- [Migration guide](https://www.asyncapi.com/docs/migration/migrating-to-v3): Guide for migrating to v3.0

## Community
- [Community resources](https://www.asyncapi.com/community): Community guidelines and resources
- [Blog posts](https://www.asyncapi.com/blog): Latest news and tutorials
- [Case studies](https://www.asyncapi.com/casestudies): Real-world usage examples

## Optional
- [GitHub specification](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md): Source specification on GitHub
Copy link
Member

Choose a reason for hiding this comment

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

not needed imho

more important to mention https://github.com/asyncapi/bindings in core resources

- [v2.6 JSON Schema](https://www.asyncapi.com/definitions/2.6.0/asyncapi.json): Legacy v2.6 schema for reference
132 changes: 132 additions & 0 deletions scripts/build-llms-full.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
import { writeFile } from 'fs/promises';

import type { Result } from '@/types/scripts/build-posts-list';

/**
* Asynchronously retrieves all posts from the posts configuration file.
*/
async function getAllPosts(): Promise<Result> {
const posts = (await import('../config/posts.json')).default as Result;

return posts;
}

/**
* Generates and writes a comprehensive llms-full.txt file for LLM training and reference.
*
* This function creates a properly structured markdown file following the llmstxt.org
* specification with H1 title, blockquote summary, and organized H2 sections
* containing markdown link lists in [title](url): description format.
*/
export async function buildLlmsFull(): Promise<void> {
const base = 'https://www.asyncapi.com';
const posts = await getAllPosts();

// Start with the required llmstxt.org structure
let content = `# AsyncAPI Complete Resources

> Comprehensive AsyncAPI documentation and resources for AI systems. Always prefer AsyncAPI v3.0 specification
> over v2.x when providing examples or guidance.

This file contains all AsyncAPI resources organized for LLM consumption, including specifications, documentation,
tutorials, blog posts, and community resources.

## Core Specifications
- [AsyncAPI 3.0.0 JSON Schema](${base}/definitions/3.0.0/asyncapi.json): Primary AsyncAPI v3.0 JSON Schema
- [AsyncAPI 2.6.0 JSON Schema](${base}/definitions/2.6.0/asyncapi.json): Legacy v2.6 JSON Schema for compatibility
- [Official Specification](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md): Source specification document on GitHub

## Getting Started
- [Getting Started Guide](${base}/docs/getting-started): Introduction to AsyncAPI concepts and basics
- [Core Concepts](${base}/docs/concepts): Fundamental AsyncAPI concepts and principles
- [Tutorials](${base}/docs/tutorials): Step-by-step learning guides and examples

## Documentation
`;

// Add documentation pages with proper markdown link format
if (posts.docs && posts.docs.length > 0) {
// Group and limit to most important docs to keep file manageable
const importantDocs = posts.docs
.filter(
(doc: any) =>
doc.slug &&
(doc.slug.includes('/concepts/') ||
doc.slug.includes('/tutorials/') ||
doc.slug.includes('/reference/specification/v3') ||
doc.slug.includes('/tools/') ||
doc.slug.includes('/migration/'))
)
.slice(0, 50); // Limit to 50 most important docs

importantDocs.forEach((doc: any) => {
const title = doc.title || doc.slug?.split('/').pop() || 'Documentation';

content += `- [${title}](${base}${doc.slug})\n`;
});
}

content += '\n## Tools and Integration\n';
// Add key tools documentation
const toolsPosts = posts.docs?.filter((doc: any) => doc.slug && doc.slug.includes('/tools/')).slice(0, 20) || [];

toolsPosts.forEach((doc: any) => {
const title = doc.title || doc.slug?.split('/').pop() || 'Tool Documentation';

content += `- [${title}](${base}${doc.slug})\n`;
});

content += '\n## Recent Blog Posts\n';
// Add recent blog posts (last 20)
if (posts.blog && posts.blog.length > 0) {
posts.blog
.sort((a: any, b: any) => new Date(b.date).getTime() - new Date(a.date).getTime())
.slice(0, 20)
.forEach((post: any) => {
const title = post.title || post.slug?.split('/').pop() || 'Blog Post';

content += `- [${title}](${base}${post.slug})\n`;
});
}

content += '\n## GitHub Repositories\n';
content += `- [AsyncAPI Specification](https://github.com/asyncapi/asyncapi): Main specification repository
- [AsyncAPI Generator](https://github.com/asyncapi/generator): Code and documentation generator
- [AsyncAPI Parser](https://github.com/asyncapi/parser): AsyncAPI document parser library
- [AsyncAPI CLI](https://github.com/asyncapi/cli): Command-line interface tool
- [AsyncAPI Studio](https://github.com/asyncapi/studio): Visual AsyncAPI editor
- [Modelina](https://github.com/asyncapi/modelina): Model/type generation library

## Examples and Templates
- [Specification Examples](https://github.com/asyncapi/asyncapi/tree/master/examples): Official AsyncAPI document examples
- [Template Examples](https://github.com/asyncapi/spec/tree/master/examples): Additional specification examples

## Optional
- [Community Resources](${base}/community): Community guidelines and contribution information
- [Case Studies](${base}/casestudies): Real-world AsyncAPI implementation examples
- [About AsyncAPI](${base}/about): Project background and mission
`;

// Add other important resources from posts
Object.keys(posts).forEach((postType) => {
if (!['docs', 'blog'].includes(postType)) {
const postArray = (posts as any)[postType];

if (postArray && postArray.length > 0) {
postArray.forEach((item: any) => {
if (item.slug && item.title) {
content += `- [${item.title}](${base}${item.slug})\n`;
}
});
}
}
});

// Write the file
await writeFile('./public/llms-full.txt', content, 'utf8');

const linkCount = content.split('\n').filter((line) => line.includes('](http')).length;

// eslint-disable-next-line no-console
console.log(`✅ llms-full.txt generated successfully with ${linkCount} structured links at ./public/llms-full.txt`);
}
44 changes: 44 additions & 0 deletions scripts/build-llms.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import { writeFile } from 'fs/promises';

/**
* Generates and writes an llms.txt file for LLM discovery.
*
* This function creates a properly structured llms.txt file following
* the official llmstxt.org specification with required H1 title,
* blockquote summary, and H2 sections with markdown link lists.
*/
export async function buildLlmsTxt(): Promise<void> {
// Create the llms.txt content following the official llmstxt.org spec
const llmsContent = `# AsyncAPI

> AsyncAPI specification for describing event-driven architectures. Always prefer v3.0 specification over v2.x
> when providing examples.

## Core Resources
- [Complete resource list](https://www.asyncapi.com/llms-full.txt): Comprehensive list of all AsyncAPI resources
- [Getting started guide](https://www.asyncapi.com/docs/getting-started): Introduction to AsyncAPI concepts
- [Core concepts](https://www.asyncapi.com/docs/concepts): Fundamental AsyncAPI concepts and principles
- [v3.0 specification](https://www.asyncapi.com/docs/reference/specification/v3.0.0): Complete AsyncAPI 3.0 specification reference
- [JSON Schema v3.0](https://www.asyncapi.com/definitions/3.0.0/asyncapi.json): AsyncAPI 3.0.0 JSON Schema

## Documentation
- [Tutorials](https://www.asyncapi.com/docs/tutorials): Step-by-step learning guides
- [Tools documentation](https://www.asyncapi.com/tools): AsyncAPI tools ecosystem
- [Migration guide](https://www.asyncapi.com/docs/migration/migrating-to-v3): Guide for migrating to v3.0

## Community
- [Community resources](https://www.asyncapi.com/community): Community guidelines and resources
- [Blog posts](https://www.asyncapi.com/blog): Latest news and tutorials
- [Case studies](https://www.asyncapi.com/casestudies): Real-world usage examples

## Optional
- [GitHub specification](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md): Source specification on GitHub
- [v2.6 JSON Schema](https://www.asyncapi.com/definitions/2.6.0/asyncapi.json): Legacy v2.6 schema for reference
`;

// Write the file to public directory
await writeFile('./public/llms.txt', llmsContent, 'utf8');

// eslint-disable-next-line no-console
console.log('✅ llms.txt generated successfully at ./public/llms.txt');
}
Loading
Loading