Skip to content

Build your blog with an AI agent

You do not have to hand-build the blog Lyra writes into. We provide a complete build guide, and you hand it to a coding agent like Claude or Codex inside your repo. The agent scaffolds the exact structure Lyra writes against: a content/blog/ folder of Markdown posts, the routes that render them, and the SEO and schema baked in. This is the fastest way to get a site that is Lyra-ready.

The guide targets Next.js (App Router), the most common case. If you are on Astro, Hugo, or Jekyll, the frontmatter contract is the same and you tell your agent to target your framework's static-generation equivalent. See Choose a framework.

Get the guide

The build guide is a single Markdown file you drop into your repo.

Download the blog build guide (blog-template.md)

Save it to the root of the repo for the site you want Lyra to write for.

Use it as a skill

Treat the guide as a skill you pass to your coding agent. The workflow is three steps:

  1. Add the file to your repo. Put blog-template.md at the repo root.

  2. Hand it to your agent. In Claude Code, Codex, or your editor's agent, open the repo and say:

    Build my blog route following this guide.

    Point it at blog-template.md. The guide is written for the agent to follow directly, including the files to create and the functions to expose.

  3. Build and verify. Run your dev server, open /blog/, and confirm a post page renders. The guide ends with a verification checklist.

Because the guide describes a real, working architecture rather than a vague spec, the agent produces a blog that builds, not a sketch you have to finish by hand.

What the guide produces

Following the guide, your agent creates the structure Lyra writes against:

  • Markdown posts in content/blog/*.md, one file per post, the filename as the slug.
  • A blog index at /blog/ and static post pages at /blog/<slug>/, generated at build time.
  • Hero banners in public/blog/<slug>.webp, referenced from each post's frontmatter.
  • SEO and AI-citation schema out of the box: BlogPosting, BreadcrumbList, and FAQPage JSON-LD, canonical URLs, and tags that become meta keywords.

No database and no CMS. Adding a post is adding a file and rebuilding, which is exactly what Lyra does when she opens a pull request.

The frontmatter contract

If you would rather build the blog yourself, or you just want to see the shape Lyra reads and writes, this is the frontmatter contract from the guide. Every post starts with this YAML block:

---
title: "Your Post Title: include the primary keyword near the front"
excerpt: "150 to 160 char description used on cards and as the meta description. Include the target keyword."
date: "2026-06-28"
authorInfo:
  name: "Author Name"
  title: "Role"
  url: "https://www.linkedin.com/in/your-handle/"
image: "/blog/your-post-slug.webp"
type: "tutorial"
featured: 0
tags:
  - Primary Keyword Phrase
  - Secondary Tag
faqs:
  - question: "A question people actually ask about this topic?"
    answer: "A concise answer that can surface as a rich snippet or an AI citation."
howToSteps:
  - name: "Step title"
    text: "What to do in this step."
---
 
Body of the post in markdown starts here.
  • Required fields: title, excerpt, date, image, type.
  • Optional fields: authorInfo, featured, tags, faqs, howToSteps.
  • Valid type values: alternatives, comparison, case-study, engineering, product, tutorial, company, research.

Quote title and excerpt, since they usually contain colons. For a fuller explanation of how Lyra learns your fields, see Blog frontmatter.

Before you connect

The guide includes two setup steps that matter as much as the code. Do both before you connect the repo to Lyra:

  • Seed 3 to 5 real posts. Lyra learns your voice and structure from the posts already in content/blog/. Add a few of your best existing posts in the new format first.
  • Ship simple, consistent banners. Lyra matches new banners to your existing ones, so keep the seed banners clean and consistent.

Both are covered in Seed posts and banners.

What's next