Skip to content

Migrate docs from Docusaurus to Astro/Starlight#507

Merged
alexeyzimarev merged 19 commits intodevfrom
migrate-docs-to-starlight
Mar 3, 2026
Merged

Migrate docs from Docusaurus to Astro/Starlight#507
alexeyzimarev merged 19 commits intodevfrom
migrate-docs-to-starlight

Conversation

@alexeyzimarev
Copy link
Contributor

Summary

  • Replace Docusaurus v3 with Astro + Starlight for the documentation site
  • Migrate all current docs and v0.15 versioned docs with frontmatter conversion, component rewrites, and admonition syntax fixes
  • Add hero splash homepage with feature cards
  • Use starlight-versions for version management and built-in Pagefind search
  • Group sidebar into collapsible Concepts, Building Apps, and Operations sections
  • Drop v0.14 docs and Algolia DocSearch dependency

What changed

  • Framework: Docusaurus v3 → Astro 5 + Starlight 0.37
  • Search: Algolia DocSearch → Pagefind (built-in)
  • Versioning: Docusaurus versioning → starlight-versions plugin
  • Mermaid: Docusaurus plugin → @pasqal-io/starlight-client-mermaid
  • Components: ThemedImage and Highlight rewritten as Astro components
  • Admonitions: :::tip Title:::tip[Title] (Starlight syntax)
  • Homepage: New splash template with hero section and feature card grid
  • Sidebar: Grouped into 3 collapsible sections, collapsed by default

Test plan

  • pnpm build passes with 92 pages, zero warnings
  • Verify all pages render correctly in dev server (pnpm dev)
  • Check version switcher works between current and 0.15
  • Verify search works across both versions
  • Test light/dark themed images render correctly

🤖 Generated with Claude Code

alexeyzimarev and others added 13 commits March 3, 2026 17:01
Replace the Docusaurus v3 docs site with a fresh Astro + Starlight setup.
Includes: astro.config.mjs with sidebar, Algolia DocSearch, Mermaid plugin,
content.config.ts, static assets, and placeholder content pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create ThemedImage.astro and Highlight.astro components
- Migrate 32 Markdown files with converted frontmatter (sidebar_position → sidebar.order)
- Migrate 12 MDX files with rewritten component imports
  - Remove DocCardList usage (Starlight auto-generates)
  - Rewrite ThemedImage to custom Astro component with path strings
  - Rewrite Highlight import to Astro component
- Remove Docusaurus-specific _category_.json files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Migrate 50 v0.15 doc files with converted frontmatter and component rewrites
- Inline MDX partial files into app-service.mdx and func-service.mdx
- Re-enable starlight-versions plugin with custom generateId to preserve dots
- Add versions content collection with 0.15 sidebar config
- 91 pages building successfully (46 current + 45 v0.15)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update documentation site section to reflect the migration from
Docusaurus to Astro + Starlight: new commands, content paths,
frontmatter format, and plugin details.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Put starlightDocSearch before starlightVersions so Algolia search
  takes priority over version-filtered Pagefind
- Change code blocks from unsupported "prometheus" language to "txt"
  (Shiki doesn't support prometheus syntax highlighting)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Starlight requires src/content/docs/index.mdx to serve the root route.
Rename intro.mdx → index.mdx and update sidebar to use link: '/'
instead of slug: 'intro'.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move subdirectory/index.{md,mdx} files to subdirectory.{md,mdx} in
parent directory to prevent Starlight from creating unwanted nested
sidebar groups. Consolidate co-located images into section-level
images/ directories. Fix ThemedImage import paths (one fewer ../).
Applied to both current and v0.15 docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch astro.config.mjs to use logo.png (the actual Eventuous hexagonal
logo) instead of logo.svg which contained the Docusaurus dinosaur.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Split the flat sidebar into three collapsible top-level groups:
- Concepts: Prologue, Domain, Persistence
- Building Apps: Application, Subscriptions, Read Models, Producers, Gateway
- Operations: Diagnostics, Infrastructure, FAQ

Applied to both current and v0.15 sidebar configurations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove @astrojs/starlight-docsearch in favor of Starlight's default
Pagefind search. This eliminates the Search component conflict warnings
with starlight-versions and removes the external Algolia dependency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the docs-first index page with a Starlight splash template
featuring a hero section with tagline, logo, and CTA buttons, plus
a card grid highlighting key features. Move the previous intro
content to a dedicated /intro/ page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Convert :::type Title to :::type[Title] bracket syntax across all
docs (current + v0.15). Map Docusaurus :::info to Starlight :::note.
Fixes admonition blocks rendering as raw text.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add collapsed: true to Concepts, Building Apps, and Operations groups
in both current and v0.15 sidebar configurations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@qodo-free-for-open-source-projects
Copy link
Contributor

Review Summary by Qodo

Migrate documentation from Docusaurus to Astro/Starlight with versioning and component overhaul

✨ Enhancement 📝 Documentation

Grey Divider

Walkthroughs

Description
• **Framework migration**: Replaced Docusaurus v3 with Astro 5 + Starlight 0.37 for the
  documentation site
• **Search system**: Migrated from Algolia DocSearch to built-in Pagefind search
• **Versioning**: Implemented starlight-versions plugin for managing current and v0.15 archived
  documentation (dropped v0.14 docs)
• **Component rewrites**: Created custom Astro components (ThemedImage, Highlight) to replace
  Docusaurus theme imports
• **Syntax updates**: Converted all frontmatter from Docusaurus format (sidebar_position,
  weight) to Starlight format (sidebar.order); updated admonition syntax from :::tip Title to
  :::tip[Title]
• **Homepage redesign**: Built new splash template with hero section and feature card grid using
  Starlight components
• **Sidebar restructuring**: Organized navigation into three collapsible sections (Concepts,
  Building Apps, Operations)
• **Content migration**: Migrated all current docs and v0.15 versioned docs with proper path
  structure and MDX component conversions
• **Configuration updates**: Added Astro config, content collections setup, TypeScript
  configuration, and custom CSS initialization
• **Documentation**: Added comprehensive migration and design planning documents for both
  Docusaurus-to-Starlight and SQLite event store projects
Diagram
flowchart LR
  A["Docusaurus v3<br/>with Algolia"] -->|"Framework & Search"| B["Astro 5 + Starlight<br/>with Pagefind"]
  C["Docusaurus Components<br/>ThemedImage, Highlight"] -->|"Custom Rewrites"| D["Astro Components"]
  E["Docusaurus Frontmatter<br/>sidebar_position, weight"] -->|"Syntax Conversion"| F["Starlight Frontmatter<br/>sidebar.order"]
  G["Docusaurus Versioning<br/>v0.14, v0.15"] -->|"Plugin Migration"| H["starlight-versions<br/>v0.15 only"]
  I["Docusaurus Sidebar<br/>Flat structure"] -->|"Reorganization"| J["Starlight Sidebar<br/>3 Collapsible Sections"]
  B --> K["92 Pages<br/>Zero Warnings"]
Loading

Grey Divider

File Changes

1. docs/plans/2026-03-03-sqlite-event-store.md 📝 Documentation +1000/-0

SQLite Event Store Implementation Plan

• Comprehensive implementation plan for SQLite event store with 13 sequential tasks
• Covers project setup, schema creation, connection factory, store implementation, subscriptions,
 projections, and testing
• Includes detailed SQL schema with streams, messages, and checkpoints tables
• Documents SQLite-specific quirks (no stored procedures, WAL mode, AUTOINCREMENT)

docs/plans/2026-03-03-sqlite-event-store.md


2. docs/plans/2026-03-03-docusaurus-to-starlight.md 📝 Documentation +727/-0

Docusaurus to Astro/Starlight Migration Plan

• Detailed 7-task migration plan from Docusaurus v3 to Astro + Starlight
• Covers scaffolding, component creation, content migration (pure Markdown and MDX), versioning
 setup
• Includes frontmatter conversion rules and component replacement strategies
• Documents build verification and cleanup procedures

docs/plans/2026-03-03-docusaurus-to-starlight.md


3. docs/plans/2026-03-03-docusaurus-to-starlight-design.md 📝 Documentation +125/-0

Docusaurus to Starlight Migration Design Document

• Design document for Docusaurus to Starlight migration with approved decisions
• Defines project structure, frontmatter conversion rules, and MDX component replacements
• Specifies sidebar configuration with collapsible sections and integration plugins
• Documents dropped features (v0.14 docs, custom homepage, Algolia DocSearch)

docs/plans/2026-03-03-docusaurus-to-starlight-design.md


View more (161)
4. docs/plans/2026-03-03-sqlite-event-store-design.md 📝 Documentation +102/-0

SQLite Event Store Architecture Design

• Design document for SQLite event store architecture and components
• Defines directory structure, schema design, and SQLite-specific decisions
• Lists all components (store, subscriptions, projections, checkpoint store)
• Documents error handling and WAL mode configuration

docs/plans/2026-03-03-sqlite-event-store-design.md


5. docs/astro.config.mjs ⚙️ Configuration changes +69/-0

Astro Configuration with Starlight Integration

• New Astro configuration file replacing Docusaurus setup
• Configures Starlight with site title, logo, social links, and custom CSS
• Integrates starlight-versions for v0.15 versioning and starlight-client-mermaid for diagrams
• Defines sidebar structure with three collapsible sections (Concepts, Building Apps, Operations)

docs/astro.config.mjs


6. docs/package.json Dependencies +14/-42

Package.json Updated for Astro/Starlight

• Replaces Docusaurus dependencies with Astro + Starlight stack
• Updates scripts from docusaurus start/build to astro dev/build
• Removes React and Docusaurus packages; adds @astrojs/starlight, starlight-versions,
 starlight-client-mermaid
• Simplifies build output from build/ to dist/

docs/package.json


7. docs/src/content/versions/0.15.json ⚙️ Configuration changes +96/-0

Starlight v0.15 Versioning Configuration

• New versioning configuration file for Starlight v0.15 archived docs
• Defines sidebar structure matching current version with three collapsible sections
• Enables starlight-versions plugin to manage version switching

docs/src/content/versions/0.15.json


8. docs/src/content/docs/0.15/application/app-service.mdx 📝 Documentation +166/-0

v0.15 App Service Documentation Migrated

• Migrated v0.15 documentation file with converted frontmatter
• Changed sidebar_position: 1 to sidebar.order: 1 (Starlight format)
• Content remains unchanged; demonstrates v0.15 archive structure

docs/src/content/docs/0.15/application/app-service.mdx


9. docs/src/content/docs/0.15/application/func-service.mdx 📝 Documentation +54/-10

v0.15 Functional Service Documentation Migrated

• Migrated v0.15 functional service documentation with frontmatter conversion
• Replaced MDX imports (./_service_no_throw.mdx, ./_result.mdx, etc.) with inline content
• Converted sidebar_position: 3 to sidebar.order: 3
• Inlined reusable content sections directly into the file

docs/src/content/docs/0.15/application/func-service.mdx


10. docs/src/content/docs/subscriptions/pipes.mdx 📝 Documentation +7/-20

Current Docs ThemedImage Component Migration

• Migrated current docs with ThemedImage component conversion
• Replaced Docusaurus @theme/ThemedImage imports with custom Astro component
• Changed image import syntax from ESM to relative path strings
• Updated sources prop to lightSrc/darkSrc attributes

docs/src/content/docs/subscriptions/pipes.mdx


11. docs/src/content/docs/0.15/subscriptions/pipes.mdx 📝 Documentation +9/-20

v0.15 Pipes Documentation with Component Migration

• Migrated v0.15 pipes documentation with ThemedImage component conversion
• Replaced Docusaurus theme imports with custom Astro component
• Converted ESM image imports to relative path strings
• Updated frontmatter from weight: 527 to sidebar.order: 527

docs/src/content/docs/0.15/subscriptions/pipes.mdx


12. docs/src/content/docs/subscriptions/checkpoint.mdx 📝 Documentation +4/-8

Current Docs Checkpoint Documentation Migrated

• Migrated current docs with ThemedImage component and admonition syntax updates
• Replaced Docusaurus theme imports with custom Astro component
• Updated admonition syntax from :::caution Keep the checkpoint safe to `:::caution[Keep the
 checkpoint safe]`
• Converted image imports to relative path strings

docs/src/content/docs/subscriptions/checkpoint.mdx


13. docs/src/content/docs/0.15/subscriptions/checkpoint.mdx 📝 Documentation +4/-8

v0.15 Checkpoint Documentation Migrated

• Migrated v0.15 checkpoint documentation with component and syntax updates
• Replaced Docusaurus ThemedImage imports with custom Astro component
• Updated admonition syntax to Starlight format with bracket notation
• Converted image import statements to relative path strings

docs/src/content/docs/0.15/subscriptions/checkpoint.mdx


14. docs/src/content/docs/subscriptions/subs-concept.mdx 📝 Documentation +6/-9

Current Docs Subscriptions Concept Migrated

• Migrated current docs with ThemedImage component and admonition syntax updates
• Replaced Docusaurus theme imports with custom Astro component
• Updated admonition syntax from :::tip Bad bus to :::tip[Bad bus]
• Converted image imports to relative path strings

docs/src/content/docs/subscriptions/subs-concept.mdx


15. docs/src/content/docs/0.15/subscriptions/subs-concept.mdx 📝 Documentation +6/-9

v0.15 Subscriptions Concept Documentation Migrated

• Migrated v0.15 subscriptions concept documentation with component updates
• Replaced Docusaurus theme imports with custom Astro component
• Updated admonition syntax to Starlight bracket format
• Converted frontmatter from sidebar_position: 1 to sidebar.order: 1

docs/src/content/docs/0.15/subscriptions/subs-concept.mdx


16. docs/src/content/docs/0.15/subscriptions/subs-diagnostics.md 📝 Documentation +4/-4

v0.15 Subscriptions Diagnostics Documentation Migrated

• Migrated v0.15 diagnostics documentation with admonition and code block syntax updates
• Updated admonition syntax from :::caution Alerting for the gap to `:::caution[Alerting for the
 gap]`
• Changed code block language from prometheus to txt for Starlight compatibility
• Fixed relative image path from images/sub-trace.png to ./images/sub-trace.png

docs/src/content/docs/0.15/subscriptions/subs-diagnostics.md


17. docs/src/content/docs/subscriptions/subs-diagnostics.md 📝 Documentation +4/-4

Current Docs Subscriptions Diagnostics Migrated

• Migrated current docs with admonition and code block syntax updates
• Updated admonition syntax to Starlight bracket format
• Changed code block language identifier from prometheus to txt
• Fixed relative image path with leading dot notation

docs/src/content/docs/subscriptions/subs-diagnostics.md


18. docs/src/content/docs/persistence/aggregate-store.mdx 📝 Documentation +5/-19

Current Docs Aggregate Store Documentation Migrated

• Migrated current docs with ThemedImage component conversion
• Replaced Docusaurus theme imports with custom Astro component
• Converted ESM image imports to relative path strings with lightSrc/darkSrc attributes

docs/src/content/docs/persistence/aggregate-store.mdx


19. docs/src/content/docs/0.15/persistence/event-store.mdx 📝 Documentation +7/-14

v0.15 Event Store Documentation Migrated

• Migrated v0.15 event store documentation with ThemedImage component conversion
• Replaced Docusaurus theme imports with custom Astro component
• Updated frontmatter from sidebar_position: 2 to sidebar.order: 2
• Converted image imports to relative path strings

docs/src/content/docs/0.15/persistence/event-store.mdx


20. CLAUDE.md 📝 Documentation +5/-8

Documentation Site Setup Instructions Updated

• Updated documentation site section from Docusaurus v3 to Astro + Starlight
• Changed build commands from pnpm start to pnpm dev and output from build/ to dist/
• Updated content path from docs/docs/ to docs/src/content/docs/
• Added note about starlight-versions plugin and Starlight frontmatter format

CLAUDE.md


21. docs/src/content/docs/index.mdx ✨ Enhancement +35/-0

New Astro/Starlight splash homepage with hero and features

• Created new splash homepage template with hero section featuring tagline and call-to-action
 buttons
• Added feature card grid showcasing domain modelling, event stores, subscriptions, and diagnostics
• Imported Starlight Card and CardGrid components for layout

docs/src/content/docs/index.mdx


22. docs/src/content.config.ts ⚙️ Configuration changes +26/-0

Astro content configuration with version support

• Configured Astro content collections for docs and versions using Starlight loaders
• Implemented custom ID generation to preserve dots in directory names (e.g., 0.15/intro)
• Integrated starlight-versions plugin for version management

docs/src/content.config.ts


23. docs/src/components/ThemedImage.astro ✨ Enhancement +26/-0

Themed image component for light/dark modes

• Created new Astro component to replace Docusaurus ThemedImage
• Supports light and dark theme image variants via lightSrc and darkSrc props
• Includes CSS styling for responsive images with theme-aware display logic

docs/src/components/ThemedImage.astro


24. docs/src/components/Highlight.astro ✨ Enhancement +11/-0

Inline text highlight component

• Created new Astro component to replace Docusaurus Highlight component
• Accepts color prop and renders inline highlighted text with background styling
• Uses slot for flexible content rendering

docs/src/components/Highlight.astro


25. docs/src/styles/custom.css ⚙️ Configuration changes +1/-0

Custom CSS styles file initialization

• Added new custom styles file for Eventuous-specific CSS overrides
• Initialized with minimal comment placeholder for future customizations

docs/src/styles/custom.css


26. docs/tsconfig.json ⚙️ Configuration changes +1/-5

TypeScript configuration migration to Astro

• Replaced Docusaurus TypeScript configuration with Astro strict configuration
• Removed Docusaurus-specific @tsconfig/docusaurus extends and baseUrl settings

docs/tsconfig.json


27. docs/src/content/docs/intro.mdx Formatting +4/-4

Frontmatter migration to Starlight sidebar syntax

• Updated frontmatter from sidebar_position: 1 to sidebar: order: 0 (Starlight syntax)
• Added explicit title: "Introduction" field
• Removed markdown heading # Start here (now uses title field)

docs/src/content/docs/intro.mdx


28. docs/src/content/docs/prologue/introduction.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)

docs/src/content/docs/prologue/introduction.md


29. docs/src/content/docs/prologue/quick-start.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 2 to sidebar: order: 2 (Starlight syntax)

docs/src/content/docs/prologue/quick-start.md


30. docs/src/content/docs/prologue/the-right-way.mdx ✨ Enhancement +3/-7

ThemedImage component migration to Astro

• Updated ThemedImage import to use new Astro component instead of Docusaurus theme
• Removed separate darkUrl and lightUrl imports; now uses lightSrc and darkSrc props
• Simplified component usage from object-based sources prop to individual src props

docs/src/content/docs/prologue/the-right-way.mdx


31. docs/src/content/docs/domain/aggregate.md Formatting +4/-3

Sidebar and admonition syntax migration

• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)
• Updated admonition syntax from :::tip No entities to :::tip[No entities]
• Updated admonition syntax from :::tip Event-sourced state to :::tip[Event-sourced state]

docs/src/content/docs/domain/aggregate.md


32. docs/src/content/docs/domain/state.md Formatting +3/-2

Sidebar and admonition syntax migration

• Converted sidebar_position: 2 to sidebar: order: 2 (Starlight syntax)
• Updated admonition syntax from :::tip Use explicit handlers to :::tip[Use explicit handlers]

docs/src/content/docs/domain/state.md


33. docs/src/content/docs/domain/domain-events.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 3 to sidebar: order: 3 (Starlight syntax)

docs/src/content/docs/domain/domain-events.md


34. docs/src/content/docs/application/app-service.md Formatting +4/-3

Sidebar and admonition syntax migration

• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)
• Updated admonition syntax from :::caution Handling failures to :::caution[Handling failures]
• Updated admonition syntax from :::caution Stream name to :::caution[Stream name]

docs/src/content/docs/application/app-service.md


35. docs/src/content/docs/application/func-service.md Formatting +3/-2

Sidebar and admonition syntax migration

• Converted sidebar_position: 3 to sidebar: order: 3 (Starlight syntax)
• Updated admonition syntax from :::caution Handling failures to :::caution[Handling failures]

docs/src/content/docs/application/func-service.md


36. docs/src/content/docs/application/command-api.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 3 to sidebar: order: 3 (Starlight syntax)

docs/src/content/docs/application/command-api.md


37. docs/src/content/docs/application/command-map.mdx Formatting +5/-4

Sidebar syntax and component import migration

• Converted sidebar_position: 4 to sidebar: order: 4 (Starlight syntax)
• Updated Highlight component import from Docusaurus theme to new Astro component
• Fixed trailing whitespace in command service list item

docs/src/content/docs/application/command-map.mdx


38. docs/src/content/docs/persistence/aggregate-stream.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)

docs/src/content/docs/persistence/aggregate-stream.md


39. docs/src/content/docs/persistence/event-store.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 2 to sidebar: order: 2 (Starlight syntax)

docs/src/content/docs/persistence/event-store.md


40. docs/src/content/docs/producers/implementation.md Formatting +2/-1

Sidebar ordering syntax update

• Converted weight: 100 to sidebar: order: 1 (Starlight syntax)
• Reordered frontmatter fields for consistency

docs/src/content/docs/producers/implementation.md


41. docs/src/content/docs/infra/mongodb.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 2 to sidebar: order: 2 (Starlight syntax)

docs/src/content/docs/infra/mongodb.md


42. docs/src/content/docs/infra/postgres.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 3 to sidebar: order: 3 (Starlight syntax)

docs/src/content/docs/infra/postgres.md


43. docs/src/content/docs/infra/pubsub.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 6 to sidebar: order: 6 (Starlight syntax)

docs/src/content/docs/infra/pubsub.md


44. docs/src/content/docs/infra/sqlite.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 5 to sidebar: order: 5 (Starlight syntax)

docs/src/content/docs/infra/sqlite.md


45. docs/src/content/docs/infra/mssql.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 4 to sidebar: order: 4 (Starlight syntax)

docs/src/content/docs/infra/mssql.md


46. docs/src/content/docs/infra/rabbitmq.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 5 to sidebar: order: 5 (Starlight syntax)

docs/src/content/docs/infra/rabbitmq.md


47. docs/src/content/docs/gateway/implementation.md Formatting +2/-1

Sidebar ordering syntax update

• Converted weight: 10 to sidebar: order: 1 (Starlight syntax with different order value)

docs/src/content/docs/gateway/implementation.md


48. docs/src/content/docs/whats-new.mdx ✨ Enhancement +7/-0

New vNext what's new documentation page

• Created new file for vNext documentation
• Added frontmatter with title and sidebar order configuration
• Includes placeholder heading for future content

docs/src/content/docs/whats-new.mdx


49. docs/src/content/docs/0.15/intro.mdx Formatting +3/-1

Frontmatter migration to Starlight syntax

• Added explicit title: "Start here" field to frontmatter
• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)

docs/src/content/docs/0.15/intro.mdx


50. docs/src/content/docs/0.15/prologue/introduction.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)

docs/src/content/docs/0.15/prologue/introduction.md


51. docs/src/content/docs/0.15/prologue/quick-start.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 2 to sidebar: order: 2 (Starlight syntax)

docs/src/content/docs/0.15/prologue/quick-start.md


52. docs/src/content/docs/0.15/whats-new.mdx Formatting +3/-1

Frontmatter migration to Starlight syntax

• Added explicit title: "What's new in 0.15" field to frontmatter
• Converted sidebar_position: 2 to sidebar: order: 2 (Starlight syntax)

docs/src/content/docs/0.15/whats-new.mdx


53. docs/src/content/docs/0.15/domain/aggregate.md Formatting +4/-3

Sidebar and admonition syntax migration

• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)
• Updated admonition syntax from :::tip No entities to :::tip[No entities]
• Updated admonition syntax from :::tip Event-sourced state to :::tip[Event-sourced state]

docs/src/content/docs/0.15/domain/aggregate.md


54. docs/src/content/docs/0.15/domain/state.md Formatting +3/-2

Sidebar and admonition syntax migration

• Converted sidebar_position: 2 to sidebar: order: 2 (Starlight syntax)
• Updated admonition syntax from :::tip Use explicit handlers to :::tip[Use explicit handlers]

docs/src/content/docs/0.15/domain/state.md


55. docs/src/content/docs/0.15/domain/domain-events.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 3 to sidebar: order: 3 (Starlight syntax)

docs/src/content/docs/0.15/domain/domain-events.md


56. docs/src/content/docs/0.15/application/app-service.md Formatting +0/-0

Sidebar and admonition syntax migration

• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)
• Updated admonition syntax from :::caution Handling failures to :::caution[Handling failures]
• Updated admonition syntax from :::caution Stream name to :::caution[Stream name]

docs/src/content/docs/0.15/application/app-service.md


57. docs/src/content/docs/0.15/application/command-api.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 3 to sidebar: order: 3 (Starlight syntax)

docs/src/content/docs/0.15/application/command-api.md


58. docs/src/content/docs/0.15/application/command-map.mdx Formatting +0/-0

Sidebar ordering syntax update

• Converted sidebar_position: 4 to sidebar: order: 4 (Starlight syntax)

docs/src/content/docs/0.15/application/command-map.mdx


59. docs/src/content/docs/0.15/persistence/aggregate-stream.md Formatting +2/-1

Sidebar ordering syntax update

• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)

docs/src/content/docs/0.15/persistence/aggregate-stream.md


60. docs/src/content/docs/0.15/persistence/index.mdx Formatting +2/-4

Sidebar syntax and component removal

• Converted weight: 300 to sidebar: order: 300 (Starlight syntax)
• Removed Docusaurus DocCardList import statement

docs/src/content/docs/0.15/persistence/index.mdx


61. docs/src/content/docs/0.15/persistence/aggregate-store.mdx Formatting +2/-2

Admonition type and syntax migration

• Updated admonition syntax from :::info Deprecation notice to :::note[Deprecation notice]
 (twice)

docs/src/content/docs/0.15/persistence/aggregate-store.mdx


62. docs/src/content/docs/0.15/infra/esdb.md Formatting +4/-3

Sidebar and admonition syntax migration

• Converted sidebar_position: 1 to sidebar: order: 1 (Starlight syntax)
• Updated admonition syntax from :::caution Link events to :::caution[Link events]
• Updated admonition syntax from :::caution Ordered events to :::caution[Ordered events]

docs/src/content/docs/0.15/infra/esdb.md


63. docs 📦 Other +0/-0

docs


64. docs/README.md Additional files +0/-41

...

docs/README.md


65. docs/babel.config.js Additional files +0/-3

...

docs/babel.config.js


66. docs/docs/application/command-api.md Additional files +0/-230

...

docs/docs/application/command-api.md


67. docs/docs/application/func-service.md Additional files +0/-141

...

docs/docs/application/func-service.md


68. docs/docs/diagnostics/_category_.json Additional files +0/-8

...

docs/docs/diagnostics/category.json


69. docs/docs/domain/domain-events.md Additional files +0/-63

...

docs/docs/domain/domain-events.md


70. docs/docs/faq/_category_.json Additional files +0/-8

...

docs/docs/faq/category.json


71. docs/docs/gateway/index.mdx Additional files +0/-23

...

docs/docs/gateway/index.mdx


72. docs/docs/infra/_category_.json Additional files +0/-8

...

docs/docs/infra/category.json


73. docs/docs/persistence/aggregate-stream.md Additional files +0/-104

...

docs/docs/persistence/aggregate-stream.md


74. docs/docs/whats-new.mdx Additional files +0/-5

...

docs/docs/whats-new.mdx


75. docs/docusaurus.config.ts Additional files +0/-157

...

docs/docusaurus.config.ts


76. docs/pnpm-lock.yaml Additional files +3948/-11129

...

docs/pnpm-lock.yaml


77. docs/public/_redirects Additional files +0/-0

...

docs/public/_redirects


78. docs/public/site.webmanifest Additional files +0/-0

...

docs/public/site.webmanifest


79. docs/sidebars.ts Additional files +0/-152

...

docs/sidebars.ts


80. docs/src/components/HomepageFeatures/index.tsx Additional files +0/-71

...

docs/src/components/HomepageFeatures/index.tsx


81. docs/src/components/HomepageFeatures/styles.module.css Additional files +0/-11

...

docs/src/components/HomepageFeatures/styles.module.css


82. docs/src/components/highlight.jsx Additional files +0/-15

...

docs/src/components/highlight.jsx


83. docs/src/content/docs/0.15/application/index.mdx Additional files +2/-4

...

docs/src/content/docs/0.15/application/index.mdx


84. docs/src/content/docs/0.15/diagnostics/index.mdx Additional files +2/-4

...

docs/src/content/docs/0.15/diagnostics/index.mdx


85. docs/src/content/docs/0.15/diagnostics/logs.md Additional files +4/-0

...

docs/src/content/docs/0.15/diagnostics/logs.md


86. docs/src/content/docs/0.15/diagnostics/metrics.md Additional files +6/-2

...

docs/src/content/docs/0.15/diagnostics/metrics.md


87. docs/src/content/docs/0.15/diagnostics/opentelemetry.md Additional files +4/-0

...

docs/src/content/docs/0.15/diagnostics/opentelemetry.md


88. docs/src/content/docs/0.15/diagnostics/traces.md Additional files +4/-0

...

docs/src/content/docs/0.15/diagnostics/traces.md


89. docs/src/content/docs/0.15/faq/compare.md Additional files +0/-0

...

docs/src/content/docs/0.15/faq/compare.md


90. docs/src/content/docs/0.15/faq/compatibility.md Additional files +0/-0

...

docs/src/content/docs/0.15/faq/compatibility.md


91. docs/src/content/docs/0.15/faq/persistence.md Additional files +0/-0

...

docs/src/content/docs/0.15/faq/persistence.md


92. docs/src/content/docs/0.15/gateway/implementation.md Additional files +2/-1

...

docs/src/content/docs/0.15/gateway/implementation.md


93. docs/src/content/docs/0.15/gateway/index.mdx Additional files +2/-4

...

docs/src/content/docs/0.15/gateway/index.mdx


94. docs/src/content/docs/0.15/infra/elastic.md Additional files +0/-0

...

docs/src/content/docs/0.15/infra/elastic.md


95. docs/src/content/docs/0.15/infra/kafka.md Additional files +0/-0

...

docs/src/content/docs/0.15/infra/kafka.md


96. docs/src/content/docs/0.15/infra/mongodb.md Additional files +2/-1

...

docs/src/content/docs/0.15/infra/mongodb.md


97. docs/src/content/docs/0.15/infra/mssql.md Additional files +2/-1

...

docs/src/content/docs/0.15/infra/mssql.md


98. docs/src/content/docs/0.15/infra/postgres.md Additional files +2/-1

...

docs/src/content/docs/0.15/infra/postgres.md


99. docs/src/content/docs/0.15/infra/pubsub.md Additional files +2/-1

...

docs/src/content/docs/0.15/infra/pubsub.md


100. docs/src/content/docs/0.15/infra/rabbitmq.md Additional files +4/-3

...

docs/src/content/docs/0.15/infra/rabbitmq.md


101. docs/src/content/docs/0.15/persistence/serialisation.md Additional files +0/-0

...

docs/src/content/docs/0.15/persistence/serialisation.md


102. docs/src/content/docs/0.15/producers/implementation.md Additional files +2/-1

...

docs/src/content/docs/0.15/producers/implementation.md


103. docs/src/content/docs/0.15/producers/index.mdx Additional files +2/-4

...

docs/src/content/docs/0.15/producers/index.mdx


104. docs/src/content/docs/0.15/producers/providers.md Additional files +0/-0

...

docs/src/content/docs/0.15/producers/providers.md


105. docs/src/content/docs/0.15/prologue/the-right-way.mdx Additional files +3/-7

...

docs/src/content/docs/0.15/prologue/the-right-way.mdx


106. docs/src/content/docs/0.15/read-models/rm-concept.md Additional files +1/-1

...

docs/src/content/docs/0.15/read-models/rm-concept.md


107. docs/src/content/docs/0.15/read-models/supported-projectors.md Additional files +0/-0

...

docs/src/content/docs/0.15/read-models/supported-projectors.md


108. docs/src/content/docs/0.15/subscriptions/eventhandler.md Additional files +0/-0

...

docs/src/content/docs/0.15/subscriptions/eventhandler.md


109. docs/src/content/docs/0.15/subscriptions/sub-base.md Additional files +3/-2

...

docs/src/content/docs/0.15/subscriptions/sub-base.md


110. docs/src/content/docs/application/index.mdx Additional files +0/-4

...

docs/src/content/docs/application/index.mdx


111. docs/src/content/docs/diagnostics/details.md Additional files +6/-2

...

docs/src/content/docs/diagnostics/details.md


112. docs/src/content/docs/faq/compare.md Additional files +0/-0

...

docs/src/content/docs/faq/compare.md


113. docs/src/content/docs/faq/compatibility.md Additional files +0/-0

...

docs/src/content/docs/faq/compatibility.md


114. docs/src/content/docs/faq/persistence.md Additional files +0/-0

...

docs/src/content/docs/faq/persistence.md


115. docs/src/content/docs/gateway/index.mdx Additional files +0/-4

...

docs/src/content/docs/gateway/index.mdx


116. docs/src/content/docs/infra/elastic.md Additional files +0/-0

...

docs/src/content/docs/infra/elastic.md


117. docs/src/content/docs/infra/esdb.md Additional files +4/-3

...

docs/src/content/docs/infra/esdb.md


118. docs/src/content/docs/infra/kafka.md Additional files +0/-0

...

docs/src/content/docs/infra/kafka.md


119. docs/src/content/docs/persistence/index.mdx Additional files +0/-4

...

docs/src/content/docs/persistence/index.mdx


120. docs/src/content/docs/persistence/serialisation.md Additional files +0/-0

...

docs/src/content/docs/persistence/serialisation.md


121. docs/src/content/docs/producers/index.mdx Additional files +0/-4

...

docs/src/content/docs/producers/index.mdx


122. docs/src/content/docs/producers/providers.md Additional files +0/-0

...

docs/src/content/docs/producers/providers.md


123. docs/src/content/docs/read-models/rm-concept.md Additional files +1/-1

...

docs/src/content/docs/read-models/rm-concept.md


124. docs/src/content/docs/read-models/supported-projectors.md Additional files +0/-0

...

docs/src/content/docs/read-models/supported-projectors.md


125. docs/src/content/docs/subscriptions/eventhandler.md Additional files +0/-0

...

docs/src/content/docs/subscriptions/eventhandler.md


126. docs/src/content/docs/subscriptions/sub-base.md Additional files +3/-2

...

docs/src/content/docs/subscriptions/sub-base.md


127. docs/src/css/custom.css Additional files +0/-44

...

docs/src/css/custom.css


128. docs/src/pages/index.module.css Additional files +0/-23

...

docs/src/pages/index.module.css


129. docs/src/pages/index.tsx Additional files +0/-47

...

docs/src/pages/index.tsx


130. docs/src/plugins/posthog/index.js Additional files +0/-71

...

<a href='https://github.com/Eventuous/eventuous/pull/507/files#diff-de01e827288a06a165591d2df74201a5c903fff1284ea29ffc79...

@qodo-free-for-open-source-projects
Copy link
Contributor

qodo-free-for-open-source-projects bot commented Mar 3, 2026

Code Review by Qodo

🐞 Bugs (4) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Dark images hidden🐞 Bug ✓ Correctness
Description
The ThemedImage component’s selector :global(:not([data-theme='dark'])) .dark-only matches
ancestors that do not have the attribute (including the ` itself), so .dark-only` ends up hidden
even when dark theme is active. This breaks dark-mode themed diagrams across docs pages that use
ThemedImage.
Code

docs/src/components/ThemedImage.astro[R22-24]

+  :global([data-theme='dark']) .light-only,
+  :global(:not([data-theme='dark'])) .dark-only {
+    display: none;
Evidence
Because the ` wrapper has no data-theme='dark'` attribute, it always matches
:not([data-theme='dark']), making .dark-only hidden regardless of global theme state.

docs/src/components/ThemedImage.astro[11-25]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`ThemedImage.astro` hides `.dark-only` images even in dark theme due to an overly-broad `:not([data-theme=&amp;amp;amp;amp;amp;amp;#x27;dark&amp;amp;amp;amp;amp;amp;#x27;])` ancestor selector.
### Issue Context
`.dark-only` is rendered inside a `&amp;amp;amp;amp;amp;amp;lt;picture&amp;amp;amp;amp;amp;amp;gt;` that does not carry the `data-theme` attribute, so it always matches `:not([data-theme=&amp;amp;amp;amp;amp;amp;#x27;dark&amp;amp;amp;amp;amp;amp;#x27;])`.
### Fix Focus Areas
- docs/src/components/ThemedImage.astro[16-26]
### Suggested direction
- Add a default rule: `.dark-only { display: none; }`
- Keep/adjust: `:global([data-theme=&amp;amp;amp;amp;amp;amp;#x27;dark&amp;amp;amp;amp;amp;amp;#x27;]) .light-only { display: none; }`
- Add: `:global([data-theme=&amp;amp;amp;amp;amp;amp;#x27;dark&amp;amp;amp;amp;amp;amp;#x27;]) .dark-only { display: initial; }`
- Remove the `:global(:not([data-theme=&amp;amp;amp;amp;amp;amp;#x27;dark&amp;amp;amp;amp;amp;amp;#x27;])) .dark-only` rule entirely

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Docs base path unclear 🐞 Bug ✓ Correctness
Description
The Astro config does not set a base path, implying root deployment, but the repo still contains
/docs-prefixed URLs/redirects and at least one prominent hard-coded root link. Depending on where
the site is actually hosted, this will either break existing inbound links (/docs/...) or break site
assets/navigation when deployed under /docs.
Code

docs/astro.config.mjs[R6-8]

+export default defineConfig({
+  site: 'https://eventuous.dev',
+  integrations: [
Evidence
Astro/Starlight routing will be generated from content slugs without a /docs prefix unless base is
configured. Meanwhile, the repo still routes and documents /docs URLs, and the homepage uses an
absolute link to /intro/ which will bypass any subpath hosting.

docs/astro.config.mjs[6-8]
docs/public/_redirects[1-3]
src/Kafka/src/Eventuous.Kafka/README.md[1-5]
docs/src/content/docs/index.mdx[9-12]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Docs routing appears inconsistent: Astro config implies root deployment, but the codebase still references /docs URLs and includes /docs redirects. This can break navigation/assets depending on hosting.
### Issue Context
- If hosted at `https://eventuous.dev/docs/...`, Astro should be configured with a `base` and content should avoid hard-coded root links.
- If hosted at `https://eventuous.dev/...`, then existing /docs references (READMEs, redirects) should be updated/redirected.
### Fix Focus Areas
- docs/astro.config.mjs[6-69]
- docs/src/content/docs/index.mdx[9-13]
- docs/public/_redirects[1-9]
- src/Kafka/src/Eventuous.Kafka/README.md[1-5]
### Suggested direction
Option A (host under /docs):
- Add `base: &amp;amp;amp;amp;amp;amp;#x27;/docs&amp;amp;amp;amp;amp;amp;#x27;` in `defineConfig({ ... })`.
- Update homepage hero action link to be base-aware (avoid `link: &amp;amp;amp;amp;amp;amp;#x27;/intro/&amp;amp;amp;amp;amp;amp;#x27;`; use a relative internal link if supported, e.g. `link: &amp;amp;amp;amp;amp;amp;#x27;intro&amp;amp;amp;amp;amp;amp;#x27;`).
- Update `head` favicon href to be base-aware (avoid `href: &amp;amp;amp;amp;amp;amp;#x27;/favicon.ico&amp;amp;amp;amp;amp;amp;#x27;` if deployed under /docs).
Option B (host at root):
- Update repo references like `https://eventuous.dev/docs/...` to `https://eventuous.dev/...`.
- Consider adding redirects from `/docs/*` -&amp;amp;amp;amp;amp;amp;gt; `/*` to preserve existing inbound links.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. 0.15 links bypass version🐞 Bug ✓ Correctness
Description
A 0.15 page hard-codes links to /docs/... without the version prefix, which will navigate users
out of the selected version (or 404 depending on the final base path). With starlight-versions
enabled, versioned pages should use relative links so they stay within /0.15/....
Code

docs/astro.config.mjs[R19-23]

+      plugins: [
+        starlightVersions({
+          versions: [{ slug: '0.15' }],
+        }),
+        starlightMermaid(),
Evidence
The PR enables versioned docs via starlight-versions, but at least one versioned page still uses
absolute /docs/... links that do not include /0.15/ and are therefore not version-stable.

docs/astro.config.mjs[19-23]
docs/src/content/docs/0.15/read-models/supported-projectors.md[8-12]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A v0.15 doc uses absolute `/docs/...` links, which will not include the `/0.15/` prefix and will pull users out of the selected version.
### Issue Context
Current (non-versioned) docs use relative links for the same content, which is version-safe.
### Fix Focus Areas
- docs/src/content/docs/0.15/read-models/supported-projectors.md[8-12]
### Suggested direction
Replace `/docs/infra/...` and `/docs/subscriptions/...` links with relative equivalents (e.g. `../infra/mongodb`, `../infra/postgres/#projections`, `../subscriptions/eventhandler/#custom-handlers`) so they work under both base-path strategies and keep users within `/0.15/`.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

4. Node version not enforced 🐞 Bug ⛯ Reliability
Description
The docs package no longer declares engines (and packageManager), even though repository
guidance states a minimum Node version is required. This can cause non-obvious install/build
failures when contributors or CI use an unsupported Node version.
Code

docs/package.json[R3-22]

"version": "0.0.0",
"private": true,
"scripts": {
-    "docusaurus": "docusaurus",
-    "start": "docusaurus start",
-    "build": "docusaurus build",
-    "swizzle": "docusaurus swizzle",
-    "deploy": "docusaurus deploy",
-    "clear": "docusaurus clear",
-    "serve": "docusaurus serve",
-    "write-translations": "docusaurus write-translations",
-    "write-heading-ids": "docusaurus write-heading-ids",
-    "typecheck": "tsc"
+    "dev": "astro dev",
+    "build": "astro build",
+    "preview": "astro preview",
+    "astro": "astro"
},
-  "dependencies": {
-    "@docusaurus/core": "^3.9.2",
-    "@docusaurus/preset-classic": "^3.9.2",
-    "@docusaurus/theme-common": "^3.9.2",
-    "@docusaurus/theme-mermaid": "^3.9.2",
-    "@mdx-js/react": "^3.1.1",
-    "@types/react": "^18.3.28",
-    "clsx": "^2.1.1",
-    "prism-react-renderer": "^2.4.1",
-    "react": "^18.3.1",
-    "react-dom": "^18.3.1"
-  },
-  "devDependencies": {
-    "@docusaurus/module-type-aliases": "^3.9.2",
-    "@docusaurus/types": "^3.9.2",
-    "@tsconfig/docusaurus": "^2.0.9",
-    "typescript": "^5.9.3"
-  },
-  "browserslist": {
-    "production": [
-      ">0.5%",
-      "not dead",
-      "not op_mini all"
-    ],
-    "development": [
-      "last 1 chrome version",
-      "last 1 firefox version",
-      "last 1 safari version"
+  "pnpm": {
+    "onlyBuiltDependencies": [
+      "esbuild",
+      "sharp"
]
},
-  "engines": {
-    "node": ">=20.0.0"
-  },
-  "packageManager": "pnpm@10.23.0"
+  "dependencies": {
+    "@astrojs/starlight": "^0.37.6",
+    "@pasqal-io/starlight-client-mermaid": "^0.1.0",
+    "astro": "^5.18.0",
+    "starlight-versions": "^0.7.1"
+  }
Evidence
The docs package.json lacks an engines constraint, while repo documentation explicitly states a
minimum Node version requirement for the docs site.

docs/package.json[1-22]
CLAUDE.md[98-115]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Docs build prerequisites are documented but not enforced in `docs/package.json`, increasing the chance of hard-to-debug environment failures.
### Issue Context
`CLAUDE.md` states Node &amp;amp;amp;amp;amp;amp;gt;=20 is required; `docs/package.json` currently has no `engines` field.
### Fix Focus Areas
- docs/package.json[1-22]
- docs/.node-version[1-1]
### Suggested direction
- Add `&amp;amp;amp;amp;amp;amp;quot;engines&amp;amp;amp;amp;amp;amp;quot;: { &amp;amp;amp;amp;amp;amp;quot;node&amp;amp;amp;amp;amp;amp;quot;: &amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;gt;=20&amp;amp;amp;amp;amp;amp;quot; }` (or align precisely to your supported range).
- Consider restoring `&amp;amp;amp;amp;amp;amp;quot;packageManager&amp;amp;amp;amp;amp;amp;quot;: &amp;amp;amp;amp;amp;amp;quot;pnpm@...&amp;amp;amp;amp;amp;amp;quot;` if you want consistent installs across contributors/CI.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Mar 3, 2026

Deploying eventuous-main with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2b9dcd8
Status: ✅  Deploy successful!
Preview URL: https://f8b01a29.eventuous-main.pages.dev
Branch Preview URL: https://migrate-docs-to-starlight.eventuous-main.pages.dev

View logs

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

- [MongoDB projections](/docs/infra/mongodb)
- [PostgreSQL projections](/docs/infra/postgres/#projections)
- [Microsoft SQL Server projections](/docs/infra/mssql/#projections)

P2 Badge Replace legacy /docs links in 0.15 projector docs

These links still point to /docs/..., but this migration serves docs at root/versioned routes (for example the new splash links use /intro/), so clicking these items from the 0.15 “Supported projectors” page now leads to missing pages. Please switch them to version-local relative links (like ../infra/mongodb) or explicit /0.15/... URLs so navigation works inside the 0.15 docs set.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +6 to +8
export default defineConfig({
site: 'https://eventuous.dev',
integrations: [

Choose a reason for hiding this comment

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

Action required

2. Docs base path unclear 🐞 Bug ✓ Correctness

The Astro config does not set a base path, implying root deployment, but the repo still contains
/docs-prefixed URLs/redirects and at least one prominent hard-coded root link. Depending on where
the site is actually hosted, this will either break existing inbound links (/docs/...) or break site
assets/navigation when deployed under /docs.
Agent Prompt
### Issue description
Docs routing appears inconsistent: Astro config implies root deployment, but the codebase still references /docs URLs and includes /docs redirects. This can break navigation/assets depending on hosting.

### Issue Context
- If hosted at `https://eventuous.dev/docs/...`, Astro should be configured with a `base` and content should avoid hard-coded root links.
- If hosted at `https://eventuous.dev/...`, then existing /docs references (READMEs, redirects) should be updated/redirected.

### Fix Focus Areas
- docs/astro.config.mjs[6-69]
- docs/src/content/docs/index.mdx[9-13]
- docs/public/_redirects[1-9]
- src/Kafka/src/Eventuous.Kafka/README.md[1-5]

### Suggested direction
Option A (host under /docs):
- Add `base: '/docs'` in `defineConfig({ ... })`.
- Update homepage hero action link to be base-aware (avoid `link: '/intro/'`; use a relative internal link if supported, e.g. `link: 'intro'`).
- Update `head` favicon href to be base-aware (avoid `href: '/favicon.ico'` if deployed under /docs).

Option B (host at root):
- Update repo references like `https://eventuous.dev/docs/...` to `https://eventuous.dev/...`.
- Consider adding redirects from `/docs/*` -> `/*` to preserve existing inbound links.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

alexeyzimarev and others added 6 commits March 3, 2026 22:03
- Fix ThemedImage component: replace overly-broad :not() selector with
  explicit dark-only hide/show rules so dark images display correctly
- Fix v0.15 supported-projectors: convert hard-coded /docs/ links to
  relative paths so they work within the versioned docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The version switcher on the homepage navigates to /0.15/ which had no
index page. Add a splash homepage for v0.15 matching the current one.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Swap content so v0.15 (stable) is the root docs shown by default,
and the unreleased preview docs live under the 'next' version slug.
Update starlight-versions config with current label 'v0.15 (Stable)'
and archived version 'Preview' at /next/. Fix all component import
paths after the directory swap.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Override the starlight-versions select width from 6.5em to 10em
and restore the full label.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Override Starlight accent CSS variables with the logo's blue (#2563a0)
for both light and dark themes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@alexeyzimarev alexeyzimarev merged commit 2126d3e into dev Mar 3, 2026
2 checks passed
@alexeyzimarev alexeyzimarev deleted the migrate-docs-to-starlight branch March 3, 2026 22:41
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.

1 participant