Skip to content
3 changes: 3 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ export default defineConfig({
integrations: [tailwind(), sitemap()],
site: 'https://barbacane.dev',
trailingSlash: 'always',
redirects: {
'/mcp/': '/ai/',
},
markdown: {
shikiConfig: {
themes: {
Expand Down
24 changes: 13 additions & 11 deletions src/layouts/Layout.astro
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ interface Props {

const {
title,
description = "Barbacane - The spec-driven API gateway built in Rust. Your OpenAPI and AsyncAPI specs become your gateway configuration.",
description = "Barbacane is the open-source AI gateway, both directions. Route LLM calls through OpenAI, Anthropic, or Ollama outbound. Expose your APIs to AI agents as typed MCP tools inbound. Rust-native, spec-first, composed from dispatchers and middlewares.",
type = 'website',
article,
ogImage: customOgImage,
Expand Down Expand Up @@ -134,8 +134,9 @@ const structuredData = type === 'article' && article

<!-- Desktop navigation -->
<div class="hidden md:flex items-center gap-8">
<a href="/#features" class="text-foreground-muted hover:text-primary transition-colors">Features</a>
<a href="/#use-cases" class="text-foreground-muted hover:text-primary transition-colors">Use Cases</a>
<a href="/ai/" class="text-foreground-muted hover:text-primary transition-colors">AI teams</a>
<a href="/platform/" class="text-foreground-muted hover:text-primary transition-colors">Platform teams</a>
<a href="https://docs.barbacane.dev" class="text-foreground-muted hover:text-primary transition-colors">Docs</a>
<a href="/blog/" class="text-foreground-muted hover:text-primary transition-colors">Blog</a>
<div class="relative group">
<button class="text-foreground-muted hover:text-primary transition-colors flex items-center gap-1">
Expand All @@ -153,8 +154,7 @@ const structuredData = type === 'article' && article
<!-- Desktop actions -->
<div class="hidden md:flex items-center gap-4">
<ThemeToggle />
<a href="https://docs.barbacane.dev" class="btn-secondary">Documentation</a>
<a href="/#get-started" class="btn-primary">Get Started</a>
<a href="/#get-started" class="btn-primary">Get started</a>
</div>

<!-- Mobile: burger button -->
Expand All @@ -179,14 +179,14 @@ const structuredData = type === 'article' && article
<!-- Mobile menu -->
<div id="mobile-menu" class="hidden md:hidden border-t border-themed">
<div class="container-custom py-4 space-y-4">
<a href="/#features" class="block text-foreground-muted hover:text-primary transition-colors py-2">Features</a>
<a href="/#use-cases" class="block text-foreground-muted hover:text-primary transition-colors py-2">Use Cases</a>
<a href="/ai/" class="block text-foreground-muted hover:text-primary transition-colors py-2">AI teams</a>
<a href="/platform/" class="block text-foreground-muted hover:text-primary transition-colors py-2">Platform teams</a>
<a href="https://docs.barbacane.dev" class="block text-foreground-muted hover:text-primary transition-colors py-2">Docs</a>
<a href="/blog/" class="block text-foreground-muted hover:text-primary transition-colors py-2">Blog</a>
<a href="/pricing/" class="block text-foreground-muted hover:text-primary transition-colors py-2">Licensing</a>
<a href="/pricing/#services" class="block text-foreground-muted hover:text-primary transition-colors py-2">Services</a>
<a href="https://github.com/barbacane-dev/barbacane" target="_blank" rel="noopener" class="block text-foreground-muted hover:text-primary transition-colors py-2">GitHub</a>
<a href="https://docs.barbacane.dev" class="block text-foreground-muted hover:text-primary transition-colors py-2">Documentation</a>
<a href="/#get-started" class="block text-foreground-muted hover:text-primary transition-colors py-2">Get Started</a>
<a href="/#get-started" class="block text-foreground-muted hover:text-primary transition-colors py-2">Get started</a>
<button class="theme-toggle w-full flex items-center justify-between py-2 text-foreground-muted hover:text-primary transition-colors">
<span>Theme</span>
<svg class="theme-sun-icon w-5 h-5 hidden" fill="none" stroke="currentColor" viewBox="0 0 24 24">
Expand Down Expand Up @@ -237,14 +237,16 @@ const structuredData = type === 'article' && article
<span class="font-bold text-xl text-gradient">Barbacane</span>
</a>
<p class="text-foreground-muted max-w-md">
The spec-driven API gateway built in Rust. Your OpenAPI and AsyncAPI specs become your gateway configuration.
The open-source AI gateway, both directions. Route LLM calls outbound,
expose your APIs to agents inbound. Rust-native, spec-first, AGPLv3.
</p>
</div>

<div>
<h4 class="font-semibold mb-4">Product</h4>
<ul class="space-y-2 text-foreground-muted">
<li><a href="/#features" class="hover:text-primary transition-colors">Features</a></li>
<li><a href="/ai/" class="hover:text-primary transition-colors">AI teams</a></li>
<li><a href="/platform/" class="hover:text-primary transition-colors">Platform teams</a></li>
<li><a href="/blog/" class="hover:text-primary transition-colors">Blog</a></li>
<li><a href="https://docs.barbacane.dev" class="hover:text-primary transition-colors">Documentation</a></li>
<li><a href="https://github.com/barbacane-dev/barbacane" class="hover:text-primary transition-colors">GitHub</a></li>
Expand Down
Loading