Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
120 changes: 116 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,103 @@ Each folder contains `_category_.json`:

---

## Frontmatter Naming Convention
**CRITICAL RULE**: All custom frontmatter fields MUST use `snake_case`. Never use camelCase for custom frontmatter.
- ✅ Correct: `published_at`, `proficiency_level`, `external_url`, `img_alt`, `repository_url`, `license_url`
- ❌ Wrong: `publishedAt`, `proficiencyLevel`, `externalUrl`, `imgAlt`, `repositoryUrl`, `licenseUrl`
- Standard Docusaurus fields (e.g., `title`, `description`, `slug`) remain as-is.
- Tag values in guides and samples MUST use `kebab-case` (e.g., `vector-search`, `azure-storage-queues-etl`).

---

## Guides
- Tags defined in `guides/tags.yml` (~40 predefined tags — do not invent new ones without adding there first).
- Guide-specific frontmatter: `tags`, `description`, `icon`, `image`, `publishedAt` (ISO date), `externalUrl`.
- Guide-specific frontmatter: `tags`, `description`, `icon`, `image`, `published_at` (ISO date), `external_url`, `proficiency_level`, `author`.
- Indexed and sorted by `src/plugins/recent-guides-plugin.ts`.

### Guides Frontmatter Example
```yaml
---
title: "Guide Title"
published_at: 2026-04-02
author: "Author Name"
tags: [ai, vector-search, getting-started]
description: "Short description shown in cards."
image: "/img/guides-example.webp"
proficiency_level: "Beginner"
---
```

For external guides (linking to blog posts):
```yaml
---
title: "External Article Title"
published_at: 2026-04-02
tags: [integration]
description: "Short description."
external_url: "https://ravendb.net/articles/example"
image: "https://ravendb.net/path/to/image.jpg"
---
```

---

## Samples
- Production-ready code samples demonstrating RavenDB features and architecture patterns.
- Located in `samples/` directory.
- Three-category tag system: Challenges & Solutions, Features, Tech Stack.
- Tags defined in `samples/tags/` YAML files — do not invent new ones without adding there first.
- Indexed by `src/plugins/recent-samples-plugin.ts`.
- Hub page at `/samples` with filtering by tags.

### Sample Tag Categories
1. **Challenges & Solutions** (`samples/tags/challenges-solutions.yml`) - Business problems the sample solves
- Examples: `semantic-search`, `integration-patterns`, `cloud-tax`, `gen-ai-data-enrichment`

2. **Features** (`samples/tags/feature.yml`) - RavenDB features demonstrated
- Examples: `vector-search`, `document-refresh`, `include`, `azure-storage-queues-etl`

3. **Tech Stack** (`samples/tags/tech-stack.yml`) - Technologies used
- Examples: `csharp`, `aspire`, `azure-functions`, `nodejs`, `nextjs`

### Sample Frontmatter Example
```yaml
---
title: "Sample Application Name"
description: "Brief description for sample cards."
challenges_solutions_tags: [semantic-search, integration-patterns]
feature_tags: [vector-search, document-refresh, include]
tech_stack_tags: [csharp, aspire, azure-functions]
image: "/img/samples/my-sample/cover.webp"
img_alt: "Screenshot of the application"
category: "Ecommerce"
license: "MIT License"
license_url: "https://opensource.org/licenses/MIT"
repository_url: "https://github.com/ravendb/sample-repo"
demo_url: "https://demo.example.com"
languages: ["C#"]
gallery:
- src: "/img/samples/my-sample/screenshot-1.webp"
alt: "Main interface"
- src: "/img/samples/my-sample/screenshot-2.webp"
alt: "Admin dashboard"
related_resources:
- type: documentation
documentation_type: docs
subtitle: "Vector Search Overview"
article_key: "ai-integration/vector-search/overview"
- type: guide
subtitle: "Related Guide Title"
article_key: "guide-slug"
---
```

**Required fields**: `title`, `description`, `challenges_solutions_tags`, `feature_tags`, `tech_stack_tags`

**Optional fields**: `image`, `img_alt`, `category`, `license`, `license_url`, `repository_url`, `demo_url`, `languages`, `gallery`, `related_resources`

**SEO**: `repository_url` and `languages` feed `SoftwareSourceCode` JSON-LD schema for better search visibility.

---

## Icon System
Expand Down Expand Up @@ -392,11 +484,31 @@ Each folder contains `_category_.json`:
### `cloud/` — RavenDB Cloud service documentation (~24 files)
Account management, instance configuration, security (TLS, MFA, certificates), pricing/billing, scaling, backup/restore, migration, AWS/Azure Marketplace setup, and the cloud portal UI (home, products, billing, backups, support tabs).

### `guides/` — Practical how-to guides (~63 files, flat structure)
Community guides covering: connecting specific frameworks (ASP.NET Core, Next.js, SvelteKit, FastAPI), AI/ML integration, DevOps (Docker, Kubernetes/EKS, Helm, Ansible), observability (Datadog, Grafana/OpenTelemetry), data pipelines (Elasticsearch, Azure Queue, OLAP ETL), testing (unit test drivers for .NET/Java/Python), and troubleshooting specific problems. Tags defined in `guides/tags.yml`.
### `guides/` — Practical how-to guides (~64 files, flat structure)
Community guides covering: connecting specific frameworks (ASP.NET Core, Next.js, SvelteKit, FastAPI), AI/ML integration, DevOps (Docker, Kubernetes/EKS, Helm, Ansible), observability (Datadog, Grafana/OpenTelemetry), data pipelines (Elasticsearch, Azure Queue, OLAP ETL), testing (unit test drivers for .NET/Java/Python), and troubleshooting specific problems.

**Frontmatter**: `title`, `published_at`, `author`, `tags`, `description`, `icon`, `image`, `proficiency_level`, `external_url` (for external guides).

**Tags**: Defined in `guides/tags.yml` (~40 predefined tags — do not invent new ones without adding there first). All tag values use kebab-case.

**Indexed by**: `src/plugins/recent-guides-plugin.ts`

### `samples/` — Production-ready code samples (~1+ files)
Production-ready code samples, architecture patterns, and starter kits demonstrating RavenDB features and integration scenarios. Hub page at `/samples` with tag-based filtering.

**Frontmatter**: `title`, `description`, `challenges_solutions_tags`, `feature_tags`, `tech_stack_tags`, `image`, `img_alt`, `category`, `license`, `license_url`, `repository_url`, `languages`, `gallery`.

**Tags**: Three categories defined in `samples/tags/`:
- `challenges-solutions.yml` - Business problems solved (e.g., `semantic-search`, `integration-patterns`)
- `feature.yml` - RavenDB features demonstrated (e.g., `vector-search`, `document-refresh`)
- `tech-stack.yml` - Technologies used (e.g., `csharp`, `aspire`, `azure-functions`)

All tag values use kebab-case.

**Indexed by**: `src/plugins/recent-samples-plugin.ts`

### `templates/` — Authoring reference templates (~9 files)
Style guide and live examples for documentation building blocks: ContentFrame/Panel layouts, icon gallery, themed images, tag reference, see-also cross-links, featured/new guide blocks.
Style guide and live examples for documentation building blocks: ContentFrame/Panel layouts, icon gallery, themed images, tag reference, see-also cross-links, featured/new guide blocks, sample authoring templates.

---

Expand Down
2 changes: 1 addition & 1 deletion cloud/home.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
slug: /
pagination_next: null
pagination_prev: null
wrapperClassName: cloud-home-page
wrapperClassName: cloudHomePage

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Also should be snake_case?

hide_table_of_contents: true
---

Expand Down
10 changes: 9 additions & 1 deletion docs/ai-integration/ai-agents/start.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@ title: "AI Agents: Start"
sidebar_label: Start
description: "Create conversational AI agent proxies that connect RavenDB clients to AI models for question answering, data analysis, and workflow automation."
sidebar_position: 0
see_also:
- title: "Sample: Human Resources Assistant"
link: "/samples/human-resources-assistant"
source: "samples"
path: "Samples > AI Agents"
- title: "Sample: Fit Assistant"
link: "/samples/fit-assistant"
source: "samples"
path: "Samples > AI Agents"
---

import Admonition from '@theme/Admonition';
Expand Down Expand Up @@ -52,4 +61,3 @@ Watch our webinars to see AI agents in action and learn practical implementation
<CardWithImageHorizontal title="How to use AI attachments and stop burning tokens on repetitive file uploads" description="Watch a tutorial on using attachments efficiently with AI agents." url="https://www.youtube.com/watch?v=QphtDGe23WE" imgSrc={webinarThumbnailPlaceholder} imgAlt="How to use AI attachments and stop burning tokens on repetitive file uploads" />
<CardWithImageHorizontal title="How to use multi-agents and sub-agents without wasting tokens or risking any data" description="Watch a tutorial on the multi-agent and sub-agent pattern in RavenDB." url="https://www.youtube.com/watch?v=QxGYSfNrT5U" imgSrc={webinarThumbnailPlaceholder} imgAlt="How to use multi-agents and sub-agents without wasting tokens or risking any data" />
</ColGrid>

9 changes: 9 additions & 0 deletions docs/ai-integration/gen-ai-integration/start.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@ title: "GenAI tasks: Start"
sidebar_label: Start
description: "Build intelligent workflows with GenAI tasks that continuously monitor collections and process documents as they are added or modified."
sidebar_position: 0
see_also:
- title: "Sample: BrainSlop"
link: "/samples/brain-slop"
source: "samples"
path: "Samples > GenAI Workflows"
- title: "Sample: Verity"
link: "/samples/verity"
source: "samples"
path: "Samples > GenAI Workflows"
---

import Admonition from '@theme/Admonition';
Expand Down
11 changes: 10 additions & 1 deletion docs/ai-integration/vector-search/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@ title: "Vector Search - Overview"
sidebar_label: "Overview"
description: "RavenDB serves as a vector database, combining traditional document storage with semantic vector search for AI-powered applications."
sidebar_position: 1
see_also:
- title: "Sample: The Library of Ravens"
link: "/samples/the-ravens-library"
source: "samples"
path: "Samples > Semantic Search"
- title: "Sample: Human Resources Assistant"
link: "/samples/human-resources-assistant"
source: "samples"
path: "Samples > Semantic Search"
---

import Admonition from '@theme/Admonition';
Expand Down Expand Up @@ -238,4 +247,4 @@ It explains how to define the index, configure indexing & query-time parameters,

</Admonition>

</Panel>
</Panel>
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ see_also:
link: "indexes/querying/searching"
source: "docs"
path: "Indexes > Querying"
- title: "Hugin"
link: "/samples/hugin"
source: "samples"
path: "Samples > Offline Search"
---

import LanguageSwitcher from "@site/src/components/LanguageSwitcher";
Expand Down Expand Up @@ -55,4 +59,3 @@ import FullTextSearchNodejs from './content/_full-text-search-nodejs.mdx';
</LanguageContent>



2 changes: 1 addition & 1 deletion docs/home.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ slug: /
title: "Guides, API Reference & Tutorials"
pagination_next: null
pagination_prev: null
wrapperClassName: docs-home-page
wrapperClassName: docsHomePage
hide_table_of_contents: true
description: "Official RavenDB documentation. Guides for installation, client APIs, indexing, querying, AI integration, clustering, security, and the Studio UI across all supported versions."
keywords:
Expand Down
6 changes: 5 additions & 1 deletion docs/indexes/search-engine/corax.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ title: "Search Engine: Corax"
sidebar_label: Corax
description: "Corax is RavenDB's native search engine, offering faster indexing and querying performance as an alternative to the Lucene engine."
sidebar_position: 0
see_also:
- title: "Hugin"
link: "/samples/hugin"
source: "samples"
path: "Samples > Offline Search"
---

import Admonition from '@theme/Admonition';
Expand Down Expand Up @@ -600,4 +605,3 @@ process will add unnecessary overhead.




6 changes: 5 additions & 1 deletion docs/server/ongoing-tasks/etl/olap.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ title: "Ongoing Tasks: OLAP ETL"
sidebar_label: OLAP ETL
description: "Export RavenDB data to Apache Parquet files on S3, Azure, or local storage using OLAP ETL tasks for analytics and data warehouse workloads."
sidebar_position: 3
see_also:
- title: "Sample: Fit Assistant"
link: "/samples/fit-assistant"
source: "samples"
path: "Samples > Reporting Offload"
---

import Admonition from '@theme/Admonition';
Expand Down Expand Up @@ -437,4 +442,3 @@ instead of rows being stored together (the same fields from multiple documents,
whole documents). This makes queries more efficient.



10 changes: 9 additions & 1 deletion docs/server/ongoing-tasks/etl/queue-etl/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@ title: "Queue ETL Overview"
sidebar_label: Overview
description: "Send RavenDB document changes to message queues like Kafka, RabbitMQ, Amazon SQS, and Azure Queue using queue ETL tasks."
sidebar_position: 0
see_also:
- title: "Sample: Fit Assistant"
link: "/samples/fit-assistant"
source: "samples"
path: "Samples > Durable Event Delivery"
- title: "Sample: Verity"
link: "/samples/verity"
source: "samples"
path: "Samples > Durable Event Delivery"
---

import Admonition from '@theme/Admonition';
Expand Down Expand Up @@ -138,4 +147,3 @@ to see various statistics related to data extraction, transformation, and loadin




5 changes: 4 additions & 1 deletion docs/server/storage/documents-compression.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ see_also:
link: "studio/database/settings/database-record"
source: "docs"
path: "Studio > Database Management > Settings"
- title: "Hugin"
link: "/samples/hugin"
source: "samples"
path: "Samples > Offline Search"
---

import LanguageSwitcher from "@site/src/components/LanguageSwitcher";
Expand All @@ -49,4 +53,3 @@ import DocumentsCompressionNodejs from './content/_documents-compression-nodejs.
</LanguageContent>



5 changes: 4 additions & 1 deletion docs/start/test-driver.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ see_also:
link: "server/troubleshooting/collect-info"
source: "docs"
path: "Server > Troubleshooting"
- title: "Sample: YABT"
link: "/samples/yabt"
source: "samples"
path: "Samples > Tested Application Architecture"
---

import LanguageSwitcher from "@site/src/components/LanguageSwitcher";
Expand All @@ -37,4 +41,3 @@ import TestDriverJava from './content/_test-driver-java.mdx';
</LanguageContent>



10 changes: 10 additions & 0 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,15 @@ const config: Config = {
showLastUpdateTime: true,
},
],
[
"content-docs",
{
id: "samples",
path: "samples",
routeBasePath: "samples",
sidebarPath: require.resolve("./sidebarsSamples.js"),
},
],
[
"@docusaurus/plugin-ideal-image",
{
Expand All @@ -129,6 +138,7 @@ const config: Config = {
],
require.resolve("./src/plugins/recent-guides-plugin"),
require.resolve("./src/plugins/versioned-seo-plugin"),
require.resolve("./src/plugins/recent-samples-plugin"),
],
headTags: [
{
Expand Down
8 changes: 7 additions & 1 deletion eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ module.exports = [
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/prefer-namespace-keyword": "off",

"no-console": "warn",
"no-console": ["warn", { allow: ["warn", "error"] }],
"no-debugger": "error",
"no-alert": "warn",
"no-var": "error",
Expand All @@ -101,6 +101,12 @@ module.exports = [
"no-undef": "off",
},
},
{
Comment thread
mateuszbartosik marked this conversation as resolved.
files: ["**/*.ts", "**/*.tsx"],
rules: {
"no-undef": "off",
},
},
{
ignores: [
"node_modules/",
Expand Down
8 changes: 6 additions & 2 deletions guides/ai-agents-attachments.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ title: "Beyond Text: Adding File Attachments to RavenDB AI Agents"
tags: [ai, attachments, csharp, demo, use-case]
icon: "ai-agents"
description: "Learn how to attach binary files such as PDFs and images to RavenDB AI Agent conversations, reducing token usage while keeping files accessible across the conversation lifecycle."
publishedAt: 2026-04-15
published_at: 2026-04-15
author: "Paweł Lachowski"
proficiencyLevel: "Intermediate"
proficiency_level: "Intermediate"
see_also:
- title: "AI Agents Overview"
link: "ai-integration/ai-agents/overview"
Expand All @@ -15,6 +15,10 @@ see_also:
link: "document-extensions/attachments/overview"
source: "docs"
path: "Document Extensions > Attachments"
- title: "Sample: Human Resources Assistant"
link: "/samples/human-resources-assistant"
source: "samples"
path: "Samples > AI Agents"
---

import Admonition from '@theme/Admonition';
Expand Down
Loading
Loading