# AI Hero Public Discovery

Version: 1

AI Hero exposes public content in HTML by default, explicit `.md` twins for supported public route families, and JSON discovery via [`/api`](https://www.aihero.dev/api).

## Discovery surfaces

- [`/api`](https://www.aihero.dev/api) — stable public JSON discovery document
- [`/llms.txt`](https://www.aihero.dev/llms.txt) — lightweight operator hint surface
- [`/sitemap.xml`](https://www.aihero.dev/sitemap.xml) — XML sitemap for crawlers
- [`/sitemap.md`](https://www.aihero.dev/sitemap.md) — markdown discovery index

## Human URLs

- Posts and lists: `https://www.aihero.dev/<slug>`
- Workshop lessons: `https://www.aihero.dev/workshops/<module>/<lesson>` for free public lessons
- Tutorial lessons: `https://www.aihero.dev/tutorials/<module>/<lesson>`
- Workshop landing pages: `https://www.aihero.dev/workshops/<module>`
- Products: `https://www.aihero.dev/products/<slug>`
- Cohorts: `https://www.aihero.dev/cohorts/<slug>`
- Events: `https://www.aihero.dev/events/<slug>`

### Indexed public examples

- [2025: The Year Building With GenAI's Gets Boring](https://www.aihero.dev/2025-the-year-building-with-gen-ais-gets-boring~d53hd) (post)
- [5 Agent Skills I Use Every Day](https://www.aihero.dev/5-agent-skills-i-use-every-day) (post)
- [A Complete Guide To AGENTS.md](https://www.aihero.dev/a-complete-guide-to-agents-md) (post)
- [Build Your First Agent With Vercel's AI SDK](https://www.aihero.dev/agents-with-vercel-ai-sdk) (post)
- [The AI Engineer Roadmap](https://www.aihero.dev/ai-engineer-roadmap) (list)
- [Anthropic's new Model Context Protocol In 2 Minutes](https://www.aihero.dev/anthropics-new-model-context-protocol-in-2-minutes~hc0tx) (post)
- [Anthropic thinks you should build agents like this](https://www.aihero.dev/building-effective-agents) (post)
- [Connect Claude Code To A GitHub MCP Server](https://www.aihero.dev/connect-claude-code-to-github) (post)
- [Create Embeddings With Vercel's AI SDK](https://www.aihero.dev/create-embeddings-with-vercel-ai-sdk) (post)
- [Creating The Perfect Claude Code Status Line](https://www.aihero.dev/creating-the-perfect-claude-code-status-line) (post)
- [Build an Alt Text Generator With Vercel's AI SDK](https://www.aihero.dev/describe-images-with-vercel-ai-sdk) (post)
- [Essential AI Coding Feedback Loops For TypeScript Projects](https://www.aihero.dev/essential-ai-coding-feedback-loops-for-type-script-projects) (post)
- [Evalite - an Early Preview](https://www.aihero.dev/evalite-an-early-preview) (post)
- [Evalite v1 Preview: Fast Evals, Built-in Scorers](https://www.aihero.dev/evalite-v1-preview) (post)
- [Generate Arrays With Vercel's AI SDK](https://www.aihero.dev/generate-arrays-with-vercel-ai-sdk) (post)
- [Generate Enums With Vercel's AI SDK](https://www.aihero.dev/generate-enums-with-vercel-ai-sdk) (post)
- [Generate Text With Vercel's AI SDK](https://www.aihero.dev/generate-text-with-vercel-ai-sdk) (post)
- [Getting Started With Ralph](https://www.aihero.dev/getting-started-with-ralph) (post)
- [Google's Introduction To Agents Is GREAT](https://www.aihero.dev/google-agents-whitepaper-review) (post)
- [Here's How To Stream Claude Code With AFK Ralph](https://www.aihero.dev/heres-how-to-stream-claude-code-with-afk-ralph) (post)
- [How Does The Model Context Protocol Work?](https://www.aihero.dev/how-does-the-model-context-protocol-work) (post)
- [5 Questions To Ask Before Choosing An LLM](https://www.aihero.dev/how-to-choose-an-llm) (post)
- [17 Techniques For Improving Your LLM-Powered App](https://www.aihero.dev/how-to-improve-your-llm-powered-app) (post)
- [How To Make Codebases AI Agents Love](https://www.aihero.dev/how-to-make-codebases-ai-agents-love) (post)
- [How To Use Claude Code Hooks To Enforce The Right CLI](https://www.aihero.dev/how-to-use-claude-code-hooks-to-enforce-the-right-cli) (post)
- [Implementing Anthropic's "think" Tool In TypeScript](https://www.aihero.dev/implementing-anthropics-think-tool-in-typescript) (post)
- [LLM Fundamentals](https://www.aihero.dev/llm-fundamentals) (list)
- [Logging: A Huge MCP Footgun](https://www.aihero.dev/logging-a-huge-mcp-footgun) (post)
- [Serving MCP Servers Over stdout](https://www.aihero.dev/mcp-server-from-a-single-typescript-file) (post)
- [Messages, System Prompts and Reasoning Tokens](https://www.aihero.dev/messages-system-prompts-and-reasoning-tokens) (post)
- [Model Context Protocol Tutorial](https://www.aihero.dev/model-context-protocol-tutorial) (list)
- [My 7 Phases Of AI Development](https://www.aihero.dev/my-7-phases-of-ai-development) (post)
- [My AGENTS.md file for building plans you actually read](https://www.aihero.dev/my-agents-md-file-for-building-plans-you-actually-read) (post)
- [My Claude Code Cohort - A Teaser](https://www.aihero.dev/my-claude-code-cohort-a-teaser) (post)
- [My 'Grill Me' Skill Went Viral](https://www.aihero.dev/my-grill-me-skill-has-gone-viral) (post)
- [Never Run Claude /init](https://www.aihero.dev/never-run-claude-init) (post)
- [Personal software is INSANE in the age of AI](https://www.aihero.dev/personal-software-is-insane-in-the-age-of-ai-u2hx2) (post)
- [An Introduction To Plan Mode](https://www.aihero.dev/plan-mode-introduction) (post)
- [Publish Your MCP Server To NPM](https://www.aihero.dev/publish-your-mcp-server-to-npm) (post)
- [Real-world feature build with Claude Code: every step explained](https://www.aihero.dev/real-world-feature-build-with-claude-code) (post)
- [Securing your AI App with Guardrails](https://www.aihero.dev/securing-your-ai-app-with-guardrails) (post)
- [My Skill Makes Claude Code GREAT At TDD](https://www.aihero.dev/skill-test-driven-development-claude-code) (post)
- [STORM: Generate High-Quality Articles Based On Real Research](https://www.aihero.dev/storm-generate-high-quality-articles-based-on-real-research) (post)
- [Streaming In 'Next Question Suggestions' With Vercel's AI SDK](https://www.aihero.dev/streaming-in-next-question-suggestions-with-the-ai-sdk) (post)
- [Streaming Objects With Vercel's AI SDK](https://www.aihero.dev/streaming-objects-with-vercel-ai-sdk) (post)
- [Streaming Text With Vercel's AI SDK](https://www.aihero.dev/streaming-text-with-vercel-ai-sdk) (post)
- [Extract Structured Data From PDF's With Vercel's AI SDK](https://www.aihero.dev/structured-data-from-pdfs-with-vercel-ai-sdk) (post)
- [Structured Outputs with Vercel's AI SDK](https://www.aihero.dev/structured-outputs-with-vercel-ai-sdk) (post)
- [Hot-Swap AI Models With Vercel's AI SDK](https://www.aihero.dev/swap-ai-models-with-vercel-ai-sdk) (post)
- [Adding System Prompts With Vercel's AI SDK](https://www.aihero.dev/system-prompts-with-vercel-ai-sdk) (post)
- [The AI Engineer Mindset](https://www.aihero.dev/the-ai-engineer-mindset) (post)
- [The Problem With MCP: Stateful Servers](https://www.aihero.dev/the-problem-with-mcp-stateful-server) (post)
- [Here's 2024's best resource on prompt engineering](https://www.aihero.dev/the-prompt-report) (post)
- [This Hook Stops Claude Code Running Dangerous Git Commands](https://www.aihero.dev/this-hook-stops-claude-code-running-dangerous-git-commands) (post)
- [The Three Types Of Evals](https://www.aihero.dev/three-types-of-evals) (post)
- [11 Tips For AI Coding With Ralph Wiggum](https://www.aihero.dev/tips-for-ai-coding-with-ralph-wiggum) (post)
- [Tool Calling With Vercel's AI SDK](https://www.aihero.dev/tool-calls-with-vercel-ai-sdk) (post)
- [Tracer Bullets: Keeping AI Slop Under Control](https://www.aihero.dev/tracer-bullets) (post)
- [Use Local Models With Vercel's AI SDK](https://www.aihero.dev/use-local-models-with-vercel-ai-sdk) (post)
- [Using MCP Prompts](https://www.aihero.dev/using-mcp-prompts) (post)
- [Vercel's AI SDK Future-proofs Your AI Stack](https://www.aihero.dev/vercel-ai-sdk) (post)
- [Working With Message Histories In Vercel's AI SDK](https://www.aihero.dev/vercel-ai-sdk-messages-array) (post)
- [Vercel AI SDK Tutorial](https://www.aihero.dev/vercel-ai-sdk-tutorial) (list)
- [9 Ways AI Coding Has Rewired My Brain](https://www.aihero.dev/ways-ai-coding-has-rewired-my-brain) (post)
- [Your App Is Only As Good As Its Evals](https://www.aihero.dev/what-are-evals) (post)
- [What Can You Use LLM's For?](https://www.aihero.dev/what-are-llms-used-for) (post)
- [What Are Tokens?](https://www.aihero.dev/what-are-tokens) (post)
- [What Are Tools?](https://www.aihero.dev/what-are-tools) (post)
- [What Is An Agent?](https://www.aihero.dev/what-is-an-agent) (post)
- [What Is An AI Engineer?](https://www.aihero.dev/what-is-an-ai-engineer) (post)
- [What Is An LLM?](https://www.aihero.dev/what-is-an-llm) (post)
- [What Is Vercel's AI SDK?](https://www.aihero.dev/what-is-the-ai-sdk) (post)
- [What Is The Context Window?](https://www.aihero.dev/what-is-the-context-window) (post)
- [Why the Anthropic Ralph plugin sucks (use a bash loop instead)](https://www.aihero.dev/why-the-anthropic-ralph-plugin-sucks) (post)

## Markdown twins

- Posts and lists: `https://www.aihero.dev/<slug>.md`
- Workshop lessons: `https://www.aihero.dev/workshops/<module>/<lesson>.md` for free public lessons
- Tutorial lessons: `https://www.aihero.dev/tutorials/<module>/<lesson>.md`
- Workshop landing pages: `https://www.aihero.dev/workshops/<module>.md`
- Products: `https://www.aihero.dev/products/<slug>.md`
- Cohorts: `https://www.aihero.dev/cohorts/<slug>.md`
- Events: `https://www.aihero.dev/events/<slug>.md`
- Existing `Accept: text/markdown` negotiation is still supported on the currently supported post and lesson HTML routes.

## Public JSON APIs

- `https://www.aihero.dev/api` — public discovery document for formats, route families, and next actions
- `https://www.aihero.dev/api/search?q=<query>` — public search entry point for public content
- `https://www.aihero.dev/api/resources?slugOrId=<slug>&type=<type>` — structured resource lookup by slug or id

## Usage

```bash
curl https://www.aihero.dev/api
curl https://www.aihero.dev/llms.txt
curl https://www.aihero.dev/sitemap.md
curl https://www.aihero.dev/sitemap.xml
curl https://www.aihero.dev/some-post-slug.md
curl https://www.aihero.dev/workshops/module-slug/lesson-slug.md
curl https://www.aihero.dev/tutorials/module-slug/lesson-slug.md
curl https://www.aihero.dev/workshops/module-slug.md
curl https://www.aihero.dev/products/product-slug.md
curl https://www.aihero.dev/cohorts/cohort-slug.md
curl https://www.aihero.dev/events/event-slug.md
curl "https://www.aihero.dev/api/search?q=agentic+coding"
curl "https://www.aihero.dev/api/resources?slugOrId=some-post-slug&type=post"
curl -H 'Accept: text/markdown' https://www.aihero.dev/some-post-slug
```
