Skip to content
Open
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
95 changes: 95 additions & 0 deletions .grok/skills/generate-blog-cover/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
name: generate-blog-cover
description: >
Generate consistent ultra-simple hand-drawn line art cover images for new agentgateway blog posts, using the exact same basic clean sketch style (one single large symbolic element, simple black ink outlines, almost no shading, flat or no colors, very basic icons, generous whitespace, 16:9).
Trigger when user says "generate blog cover", "new blog image", "create cover for [title]", "blog cover in same style", "hand drawn blog image", or when adding a new post to content/blog/.
Also use for /generate-blog-cover or when editing a new .md in content/blog/.
---
# Generate Blog Cover Image

This skill ensures every new blog post gets a cover image in the **exact same ultra-simple hand-drawn line art style** (basic black ink outlines, one main symbolic element, very minimal, clean and sparse like a quick sketch) as the other covers in `static/img/blog/covers/`.

## When to use this skill
- User is creating a new blog post (new .md in content/blog/)
- User asks to generate / create / make a cover image for a blog
- User says "same style as the others", "hand drawn blog cover", "more simple", "ultra simple", "basic line art cover", "make the images more simple"
- After writing the frontmatter/title/description of a new post

## Step-by-step process

1. **Identify the blog post**
- If the user mentions a specific file or title, read the Markdown file from `content/blog/`.
- Extract:
- `title`
- `description` (or first paragraph of content for summary)
- `category`
- The filename slug (e.g. `2026-06-04-my-new-post` from `2026-06-04-my-new-post.md`)
- If no file exists yet, ask the user for the title + short description + desired category (Release, Tutorial, Announcement, etc.) and proposed filename slug (use `date-slug` format).

2. **Craft the Central Element**
- Analyze the title and description.
- Come up with **one or two very simple symbolic elements** that represent the post (keep it extremely minimal — no people, no busy scenes, no small text/icons).
- Examples of good simple elements (study existing covers for consistency):
- Release / version: "a simple gateway arch"
- Tutorial / how-to: "a simple path or arrow icon"
- Security / auth: "a simple lock icon"
- Migration: "a simple arrow"
- Integration / observability: "a simple line or wave"
- Multi / federation: "a simple gateway with small icons"
- Architecture / kill switch: "a simple arch with a power symbol"
- Anniversary / milestone: "a simple '1' badge"
- Make the description short and iconic.

3. **Build the full image_gen prompt**
Use this **exact base prompt** every time (do not deviate from the style):

```
Ultra simple hand-drawn line art illustration for a professional developer blog cover. Very clean black ink outlines, almost no shading or hatching, extremely basic iconic symbols only (no people or characters). Light off-white background. Extremely minimalist composition with one single bold symbolic element. Warm orange, deep purple, blue accents if needed. Lots of negative space, calm, clean and professional. Deliberately basic and hand-drawn like a simple sketch, not detailed or cartoonish. 16:9 wide. Central element: [YOUR TAILORED SIMPLE ELEMENT HERE]
```

4. **Generate the image**
- Call the `image_gen` tool with:
- `prompt`: the full prompt from step 3
- `aspect_ratio`: "16:9"
- Note the output path (it will be something like `.../images/XX.jpg` in the current session).

5. **Place the image correctly**
- Copy the generated image to:
```
static/img/blog/covers/<slug>.jpg
```
(Replace `<slug>` with the exact base name of the .md file, e.g. `2026-06-04-my-post`).
- Use `cp` or equivalent via terminal. Overwrite if needed.
- Confirm the file now exists at that location.

6. **Verify and suggest next steps**
- Tell the user the image was created.
- Optionally run a quick Hugo build check or just remind them to refresh localhost:1313/blog/
- If the post doesn't have `coverImage` in frontmatter, suggest they don't need it (the lp-list shortcode auto-falls back to `/img/blog/covers/<slug>.jpg`).
- Offer to generate a new one with tweaks if the central element wasn't perfect.

## Style rules (never break these)
- Always exactly 1 main element (or 2 at absolute most) — keep it extremely basic and iconic.
- Very clean black ink outlines, almost zero shading or hatching.
- Extremely basic symbolic icons only — no people, no characters, no details.
- Light off-white background.
- Brand palette: warm orange, deep purple, blue accents (used sparingly).
- Lots of negative space — calm, clean, professional and very sparse.
- No text in the image.
- No photorealism, no cartoonish features, no AI polish, no heavy details — deliberately ultra-simple hand-drawn line sketch style.
- 16:9 (aspect-video) for the 3-column grid.

## Existing examples for reference (read these if needed for inspiration on composition and central elements — they are now in the ultra-simple line art style)
- `static/img/blog/covers/2026-06-04-agentgateway-joins-aaif.jpg`
- `static/img/blog/covers/2026-05-11-agentgateway-v1.2.0.jpg`
- `static/img/blog/covers/2026-02-21-kill-switch.jpg`
- Any other in `static/img/blog/covers/`

Note: All covers have been (or will be) regenerated in the new ultra-simple hand-drawn line art style while keeping the same central symbolic ideas for consistency.

## Helper commands (use via run_terminal_command when needed)
- List existing covers: `ls static/img/blog/covers/*.jpg | sort`
- Get slug from a new file: `basename content/blog/NEW-FILE.md .md`
- Copy after generation: `cp /path/to/generated/XX.jpg static/img/blog/covers/<slug>.jpg`

This skill guarantees visual consistency across all blog covers.
74 changes: 74 additions & 0 deletions assets/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -395,3 +395,77 @@ h6 {
/* Avoid breaking inside short blocks; don't force headings to next page */
blockquote, figure, img { break-inside: avoid; }
}

/* ===== Landing page hero background (for consistency on blog too) ===== */
:root {
--hp-accent: #8A3FFC;
--hp-accent-soft: rgba(138,63,252,0.12);
--hp-accent-glow: rgba(138,63,252,0.35);
--hp-accent-deep: #6E29E0;
--hp-text-1: #0B0E18;
--hp-text-2: #151927;
--hp-text-3: #4A5068;
--hp-text-4: #5A6078;
--hp-text-5: #9AA0B5;
--hp-bg-0: #FFFFFF;
--hp-bg-1: #F6F7FB;
--hp-bg-2: #EDEEF7;
--hp-border: rgba(15,19,35,0.08);
--hp-border-2: rgba(15,19,35,0.14);
--hp-font-h: 'Figtree', system-ui, sans-serif;
--hp-font-b: 'DM Sans', system-ui, sans-serif;
--hp-font-m: 'DM Mono', ui-monospace, monospace;
}

.dark {
--hp-accent: #A06EFF;
--hp-accent-soft: rgba(160,110,255,0.14);
--hp-accent-glow: rgba(160,110,255,0.40);
--hp-accent-deep: #B48CFF;
--hp-text-1: #F0F1F5;
--hp-text-2: #E4E5EB;
--hp-text-3: #B0B4C4;
--hp-text-4: #8A8FA5;
--hp-text-5: #5E6378;
--hp-bg-0: #0B0E18;
--hp-bg-1: #111422;
--hp-bg-2: #181C2E;
--hp-border: rgba(255,255,255,0.08);
--hp-border-2: rgba(255,255,255,0.14);
}

.hp-hero-bg {
position: absolute; inset: 0; z-index: -1;
background: linear-gradient(180deg, var(--hp-bg-0) 0%, var(--hp-bg-1) 60%, var(--hp-bg-2) 100%);
}

.hp-hero-grid-pattern {
position: absolute; inset: 0;
background-image: linear-gradient(rgba(15,19,35,0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(15,19,35,0.04) 1px, transparent 1px);
background-size: 56px 56px;
mask-image: radial-gradient(ellipse 100% 90% at 50% 30%, black 30%, transparent 75%);
-webkit-mask-image: radial-gradient(ellipse 100% 90% at 50% 30%, black 30%, transparent 75%);
}

.hp-hero-blob {
position: absolute; border-radius: 50%; opacity: 0.5; pointer-events: none;
}

.hp-hero-blob-1 {
width: 600px; height: 600px; top: -200px; right: -120px;
background: radial-gradient(circle, rgba(138,63,252,0.28), transparent 65%);
}

.hp-hero-blob-2 {
width: 480px; height: 480px; top: 40%; left: -160px;
background: radial-gradient(circle, rgba(32,183,243,0.18), transparent 65%);
}

.dark .hp-hero-grid-pattern {
background-image: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
}

.dark .hp-hero-blob-1 { opacity: 0.3; }
.dark .hp-hero-blob-2 { opacity: 0.15; }
2 changes: 2 additions & 0 deletions content/blog/2025-07-14-a2a-mcp-gateway-api-0-6-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ title: Announcing A2A, MCP, and Kubernetes Gateway API support
toc: false
publishDate: 2025-07-14T00:00:00-00:00
author: Christian Posta, John Howard
category: "Release"
description: "agentgateway adds deep native support for A2A and MCP, full Kubernetes Gateway API (all core routes + policies), advanced rate limiting/auth, OpenTelemetry, and unified LLM routing in a Rust-based AI-native gateway."
---

> Today, we're excited to share the next major milestone: agentgateway is now a full-featured, AI-native gateway that combines deep MCP and A2A protocol awareness, robust traffic policy controls, inference gateway support, Kubernetes Gateway API support, and unified access to major LLMs, all purpose-built with Rust for real-world agentic systems.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ title: MCP Authorization the Easy Way
toc: false
publishDate: 2025-08-12T00:00:00-00:00
author: Christian Posta, Rinor Maloku
category: "Security"
description: "Handle the updated MCP Authorization spec (OAuth, Protected Resource Metadata, WWW-Authenticate) at the gateway so your MCP servers don't have to. agentgateway makes spec-compliant auth simple via config."
---


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ title: Solo.io Contributes agentgateway to Linux Foundation to Make AI Agents Mo
toc: false
publishDate: 2025-08-25T00:00:00-00:00
author: Lin Sun
category: "Announcement"
description: "Solo.io contributes agentgateway to the Linux Foundation. A purpose-built, Rust-based AI-native gateway for A2A, MCP, LLM, and API traffic — delivering security, observability, and governance for the agentic era."
---

Today at Open Source Summit Europe, the [Linux Foundation accepted **agentgateway**](https://www.linuxfoundation.org/press/linux-foundation-welcomes-agentgateway-project-to-accelerate-ai-agent-adoption-while-maintaining-security-observability-and-governance), a new open source AI-native project created by [Solo.io](https://www.solo.io/). [Agentgateway](https://agentgateway.dev/) provides drop-in security, observability, and governance for agent-to-agent and agent-to-tool communication and supports leading interoperable protocols, including [Agent2Agent (A2A)](https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/) and [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro).
Expand Down
2 changes: 2 additions & 0 deletions content/blog/2025-11-02-rate-limit-quota-llm.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ title: Provider Rate Limiting is Not Enough for Enterprise LLM Usage
toc: false
publishDate: 2025-11-02T00:00:00-00:00
author: Christian Posta, Michael Levan
category: "LLM"
description: "LLM providers offer only coarse RPM/TPM limits at org/project level. Enterprises need fine-grained, configurable quotas, cost controls, and per-consumer rate limiting — which agentgateway delivers at the gateway layer."
---

Hosted LLM providers like OpenAI and Anthropic have [rate limiting capabilities](https://platform.openai.com/docs/guides/rate-limits) centered around requests per minute (RPM) and tokens per minute (TPM). These are specified at the "organization" level and "project" level. API keys are associated with an organization or project, and each call is subject to token or rate limit restrictions. The actual limits are set by the provider, not you. They will depend on what tier you pay for, but generally not directly configurable. For example:
Expand Down
2 changes: 2 additions & 0 deletions content/blog/2026-01-26-enterprise-mcp-sso.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ title: Enterprise MCP SSO With Microsoft Entra and Agentgateway
toc: false
publishDate: 2026-01-26T00:00:00-00:00
author: Christian Posta
category: "Tutorial"
description: "Secure internal MCP servers and clients with enterprise SSO using Microsoft Entra ID (OIDC) through agentgateway. Apply identity, policy, and access controls consistently for AI agents and desktop MCP clients without browser flows."
---


Expand Down
2 changes: 2 additions & 0 deletions content/blog/2026-01-30-adds-nginx-migration-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ title: agentgateway adds support for migrating from ingress-nginx
toc: false
publishDate: 2026-01-30T00:00:00-00:00
author: Eitan Suez
category: "Release"
description: "With ingress-nginx retiring, easily migrate your Ingress resources to Kubernetes Gateway API + agentgateway using the updated ingress2gateway tool. Get production-grade AI-aware traffic management without rewriting routes."
---

## ingress-nginx retirement
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
title: Getting started with Multi-LLM provider routing
toc: false
publishDate: 2026-02-09
author: Sebastian
author: "Sebastian Maniak"
category: "Tutorial"
description: "Route to multiple LLM providers (OpenAI, Anthropic, xAI, etc) through one agentgateway using Kubernetes Gateway API. Step-by-step on Kind with HTTPRoutes and AgentgatewayBackend for unified, observable LLM access."
---

# How to: Building Agentgateway to support Multi-LLM providers.
Expand Down
1 change: 1 addition & 0 deletions content/blog/2026-02-11-your-first-AI-route.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "Your First AI Route: Connecting to OpenAI with AgentGateway"
publishDate: 2026-02-11
author: "Sebastian Maniak"
category: "Tutorial"
description: "Step-by-step guide to connecting open source AgentGateway to OpenAI API with cost tracking, monitoring, security best practices, and production-ready configurations."
---

Expand Down
1 change: 1 addition & 0 deletions content/blog/2026-02-13-Happy-V-Day.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "Explore Gateway API and Agentgateway with ExtAuth Match 💕 Game"
publishDate: 2026-02-13
author: "Lin Sun & Yuval Kohavi"
category: "Community"
description: "Let’s have some fun and share love while learning Kubernetes Gateway API and agentgateway with the ExtAuth Match game."
---
{{< reuse-image src="img/blog/happy-v-day/V-card.png" width="600px" >}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "Open Source LLM Observability: Tracing AI Calls with AgentGateway and Langfuse"
publishDate: 2026-02-18
author: "Sebastian Maniak"
category: "Tutorial"
description: "How to automatically capture, monitor, and debug every LLM API call flowing through Solo AgentGateway using Langfuse — with zero application code changes."
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "Connect Any IDE to GitHub MCP Server Through AgentGateway"
publishDate: 2026-02-19
author: "Sebastian Maniak"
category: "Tutorial"
description: "Route MCP traffic from Cursor, VS Code, Windsurf, Claude Code, and OpenCode to GitHub's remote MCP server through Solo AgentGateway — with config examples for every IDE."
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "MCP Multiplexing with AgentGateway"
publishDate: 2026-02-20
author: "Sebastian Maniak"
category: "Tutorial"
description: "Federate multiple MCP servers behind a single endpoint with AgentGateway OSS so clients connect once and see all available tools."
---

Expand Down
1 change: 1 addition & 0 deletions content/blog/2026-02-21-kill-switch.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "Multi-Agent OpenClaw Architecture with a Kill Switch: Why Every AI Agent Needs a Gateway"
publishDate: 2026-02-21
author: "Sebastian Maniak"
category: "Architecture"
description: "A multi-agent system where a coordinator routes tasks to specialist sub-agents — and every LLM call and MCP tool invocation passes through agentgateway running in Kubernetes for cost control, rate limiting, governance, and a kill switch."
---

Expand Down
1 change: 1 addition & 0 deletions content/blog/2026-03-12-agentgateway-v1.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "A Year In: agentgateway Hits v1.0.0 — and the Pieces Are Converging"
publishDate: 2026-03-16
author: "Sebastian Maniak"
category: "Release"
description: "A Year In: agentgateway Hits v1.0.0 — and the Pieces Are Converging"
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "Inference Serving with Superpowers"
toc: false
publishDate: 2026-03-23
author: "Daneyon Hansen"
category: "LLM"
description: "Agentgateway, llm-d, and Gateway API Inference Extension combine gateway policy,
smart inference scheduling, and Kubernetes-native standards for production quality inference serving."
---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "Happy 1st birthday, agentgateway!"
publishDate: 2026-03-25
author: "Lin Sun"
category: "Community"
description: "Agentgateway celebrates 1 million pulls, 175+ contributors, and 2,000+ stars in 1 year"
---

Expand Down
1 change: 1 addition & 0 deletions content/blog/2026-05-11-agentgateway-v1.2.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "Agentgateway v1.2.0: we're shipping like the agents are watching"
publishDate: 2026-05-14
author: "Sebastian Maniak"
category: "Release"
description: "Agentgateway v1.2.0 lands route delegation, backend external auth, conditional policies with CEL, the new agctl debugger, and a stack of LLM gateway upgrades."
---

Expand Down
1 change: 1 addition & 0 deletions content/blog/2026-06-04-agentgateway-joins-aaif.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "agentgateway Joins AAIF as an Open Gateway for Agentic AI Infrastructure"
publishDate: 2026-06-04
author: "Agentic AI Foundation"
category: "Announcement"
description: "agentgateway joins the Agentic AI Foundation as the fourth hosted initiative under the Linux Foundation — an open, high-performance gateway for MCP, A2A, LLM inference, and conventional API traffic."
toc: false
---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "Designing agentgateway: A Unified High-Performance Gateway for AI and API Traffic"
publishDate: 2026-06-04
author: "Lin Sun"
category: "Engineering"
description: "Why we built agentgateway as a unified control plane and data plane for HTTP, gRPC, MCP, A2A, and LLM traffic — the design decisions, the choice of Rust, the performance numbers, and the road to AAIF."
toc: false
---
Expand Down
17 changes: 13 additions & 4 deletions content/blog/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,20 @@ toc: false
description: ""
---

<section class="bg-primary-bg text-white pb-[4.375rem] lg:pb-28 px-4 lg:px-12 xl:px-25 bg-[url(/hero-background.svg)] bg-center bg-no-repeat pt-[9.875rem] lg:pt-50 bg-[length:61.85319rem_60.14119rem] lg:bg-auto">
<div class="mx-auto max-w-[1440px] flex flex-row justify-center">
<h1 class="text-[2.1875rem] lg:text-[4.0625rem] font-semibold leading-[2.40625rem] lg:leading-[4.46875rem] font-headings tracking-tight">
Agentgateway Blog
<section class="relative pb-10 md:pb-12 px-6 lg:px-8 overflow-hidden pt-20 md:pt-24">
<!-- Matching main site hero background (adapts to light/dark mode via hp- vars) -->
<div class="hp-hero-bg"></div>
<div class="hp-hero-grid-pattern"></div>
<div class="hp-hero-blob hp-hero-blob-1"></div>
<div class="hp-hero-blob hp-hero-blob-2"></div>

<div class="mx-auto max-w-5xl relative z-10">
<h1 class="text-4xl md:text-5xl font-semibold tracking-tight text-gray-900 dark:text-white">
Blog
</h1>
<p class="mt-3 text-lg md:text-xl text-gray-700 dark:text-gray-300 max-w-2xl">
Latest updates, deep dives, and announcements from the agentgateway community.
</p>
</div>
</section>

Expand Down
Loading
Loading