Skip to content
GitHubDiscord
Now with an API playground

Show off your app.Docs included.

Landing page, MDX guides and an OpenAPI reference in one Astro integration. SEO, social images, search and llms.txt are handled for you.

$ pnpm add @mizuchilabs/lyvo
astro.config.mjs
import { defineConfig } from 'astro/config';
import lyvo from '@mizuchilabs/lyvo';

export default defineConfig({
  site: 'https://my-app.dev',
  integrations: [
    lyvo({
      title: 'My App',
      openapi: { input: 'openapi.json' }
    })
  ]
});

Built on tools you already know

Batteries included

Everything a dev product site needs

One integration wires up guides, API reference, search, i18n and social images.

MDX guides

Tabs, callouts, steps, file trees and more, ready to use in every page.

OpenAPI reference

Two-column docs, models, code samples and a try-it playground from your spec.

Offline search

Full-text search powered by Pagefind, styled to match the theme.

SEO on autopilot

Canonicals, hreflang, JSON-LD, sitemap, robots.txt and per-page OG images.

i18n

Locale folders, translated UI strings and a language switcher.

LLM friendly

llms.txt, a Markdown twin of every page and one-click "open in ChatGPT".

Write

Plain MDX, rich components

Drop files in src/content/docs. The sidebar builds itself from your folders, or define it by hand.

  • Auto-generated or hand-written sidebar
  • Last-updated dates from git
  • Edit-on-GitHub and feedback built in
getting-started.mdx
---
title: Getting started
description: Install the CLI and ship your first app.
---

<Steps>
  <Step title="Install">Run `pnpm add my-app`.</Step>
  <Step title="Configure">Add your API key.</Step>
</Steps>

<Callout type="tip">Every page is also served as Markdown.</Callout>

Reference

Your API, documented from the spec

Point lyvo at an OpenAPI file. Every endpoint gets its own page, code samples and a playground.

  • Linked model pages for every schema
  • Multiple spec versions side by side
  • Endpoints exported as Markdown for LLMs
my-app.dev/api/createplanet
POST/planets

Time to play god and create a new planet.

namestring · required

typeenum

satellitesarray<Satellite>

Ship docs your users will read

Point the integration at your content and your spec. That's the setup.