Files
BMAD-METHOD/website/astro.config.mjs
forcetrainer e0318d9da8 feat: update website header with new BMAD Method branding (#1352)
* docs: apply style guide to TEA Lite quickstart

- Remove duplicate H1 header (frontmatter provides title)
- Remove horizontal rules throughout
- Convert Prerequisites to admonition
- Add Quick Path TL;DR admonition
- Convert Key Takeaway to tip admonition
- Convert TEA Workflows list to Quick Reference table
- Convert Troubleshooting to Common Questions FAQ format
- Rename Need Help to Getting Help section
- Remove redundant Feedback section

Also adds missing @clack/prompts dependency from upstream merge.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: spell out acronyms in TEA Lite quickstart

- MCP → Model Context Protocol
- E2E → End-to-end (also fix missing article)
- CI/CD → Continuous integration/continuous deployment
- ATDD → Acceptance Test-Driven Development
- TDD → Test-Driven Development
- NFR → non-functional requirements
- Remove inaccurate CRUD reference

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: spell out TDD in ATDD link text

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: update branding with new wordmark logo and banner

- Add banner image to README header
- Replace website logo with wordmark, hiding title text
- Left-align logo with sidebar by reducing header padding

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: update README banner to new design with waveform

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: add banner to docs website welcome page

- Revert README to original banner
- Add waveform banner to docs site welcome page

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: use waveform banner as website header logo

- Remove banner from welcome page content
- Update header logo to use banner-bmad-method2.png

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: add separate logo for dark mode

Use banner-bmad-method-dark.png in dark mode for better blending

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: update header logos for light and dark modes

- Light mode: bmad-light.png (dark blue background with lightning)
- Dark mode: bmad-dark.png (light background variant)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: clean up unused banner images and add readme2

- Remove unused banner-bmad-method2.png and bmad-wordmark.png
- Add readme2.md with upcoming features section
- Update banner-bmad-method-dark.png

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: remove unused banner image variants

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: finalize header logo graphics

- Rename bmad-light2.png to bmad-light.png as final version
- Remove readme2.md draft

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-01-18 00:25:12 -06:00

229 lines
6.5 KiB
JavaScript

// @ts-check
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import sitemap from '@astrojs/sitemap';
import rehypeMarkdownLinks from './src/rehype-markdown-links.js';
import { getSiteUrl } from './src/lib/site-url.js';
const siteUrl = getSiteUrl();
const urlParts = new URL(siteUrl);
// Normalize basePath: ensure trailing slash so links can use `${BASE_URL}path`
const basePath = urlParts.pathname === '/' ? '/' : urlParts.pathname.endsWith('/') ? urlParts.pathname : urlParts.pathname + '/';
export default defineConfig({
site: `${urlParts.origin}${basePath}`,
base: basePath,
outDir: '../build/site',
// Disable aggressive caching in dev mode
vite: {
optimizeDeps: {
force: true, // Always re-bundle dependencies
},
server: {
watch: {
usePolling: false, // Set to true if file changes aren't detected
},
},
},
markdown: {
rehypePlugins: [rehypeMarkdownLinks],
},
integrations: [
sitemap(),
starlight({
title: 'BMAD Method',
tagline: 'AI-driven agile development with specialized agents and workflows that scale from bug fixes to enterprise platforms.',
logo: {
light: './public/img/bmad-light.png',
dark: './public/img/bmad-dark.png',
alt: 'BMAD Method',
replacesTitle: true,
},
favicon: '/favicon.ico',
// Social links
social: [
{ icon: 'discord', label: 'Discord', href: 'https://discord.gg/gk8jAdXWmj' },
{ icon: 'github', label: 'GitHub', href: 'https://github.com/bmad-code-org/BMAD-METHOD' },
{ icon: 'youtube', label: 'YouTube', href: 'https://www.youtube.com/@BMadCode' },
],
// Show last updated timestamps
lastUpdated: true,
// Custom head tags for LLM discovery
head: [
{
tag: 'meta',
attrs: {
name: 'ai-terms',
content: `AI-optimized documentation: ${siteUrl}/llms-full.txt (plain text, ~100k tokens, complete BMAD reference). Index: ${siteUrl}/llms.txt`,
},
},
{
tag: 'meta',
attrs: {
name: 'llms-full',
content: `${siteUrl}/llms-full.txt`,
},
},
{
tag: 'meta',
attrs: {
name: 'llms',
content: `${siteUrl}/llms.txt`,
},
},
],
// Custom CSS
customCss: ['./src/styles/custom.css'],
// Sidebar configuration (Diataxis structure)
sidebar: [
{ label: 'Welcome', slug: 'index' },
{
label: 'Tutorials',
collapsed: false,
items: [
{
label: 'Getting Started',
autogenerate: { directory: 'tutorials/getting-started' },
},
{
label: 'Advanced',
autogenerate: { directory: 'tutorials/advanced' },
},
],
},
{
label: 'How-To Guides',
collapsed: true,
items: [
{ slug: 'how-to/get-answers-about-bmad' },
{
label: 'Installation',
autogenerate: { directory: 'how-to/installation' },
},
{
label: 'Workflows',
autogenerate: { directory: 'how-to/workflows' },
},
{
label: 'Customization',
autogenerate: { directory: 'how-to/customization' },
},
{
label: 'Brownfield Development',
autogenerate: { directory: 'how-to/brownfield' },
},
{
label: 'Troubleshooting',
autogenerate: { directory: 'how-to/troubleshooting' },
},
],
},
{
label: 'Explanation',
collapsed: true,
items: [
{
label: 'Core Concepts',
autogenerate: { directory: 'explanation/core-concepts' },
},
{
label: 'Architecture',
autogenerate: { directory: 'explanation/architecture' },
},
{
label: 'Philosophy',
autogenerate: { directory: 'explanation/philosophy' },
},
{
label: 'Features',
autogenerate: { directory: 'explanation/features' },
},
{
label: 'TEA (Test Architect)',
autogenerate: { directory: 'explanation/tea' },
},
{
label: 'Agents',
autogenerate: { directory: 'explanation/agents' },
},
{
label: 'BMM',
autogenerate: { directory: 'explanation/bmm' },
},
{
label: 'BMad Builder',
autogenerate: { directory: 'explanation/bmad-builder' },
},
{
label: 'Game Development',
autogenerate: { directory: 'explanation/game-dev' },
},
{
label: 'Creative Intelligence',
autogenerate: { directory: 'explanation/creative-intelligence' },
},
{
label: 'Core Module',
autogenerate: { directory: 'explanation/core' },
},
{
label: 'FAQ',
autogenerate: { directory: 'explanation/faq' },
},
],
},
{
label: 'Reference',
collapsed: true,
items: [
{
label: 'Agents',
autogenerate: { directory: 'reference/agents' },
},
{
label: 'Workflows',
autogenerate: { directory: 'reference/workflows' },
},
{
label: 'Configuration',
autogenerate: { directory: 'reference/configuration' },
},
{
label: 'TEA (Test Architect)',
autogenerate: { directory: 'reference/tea' },
},
{
label: 'Glossary',
autogenerate: { directory: 'reference/glossary' },
},
],
},
],
// Credits in footer
credits: false,
// Pagination
pagination: true,
// Custom components
components: {
Header: './src/components/Header.astro',
MobileMenuFooter: './src/components/MobileMenuFooter.astro',
},
// Table of contents
tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 3 },
}),
],
});