lyt

command module
v0.0.0-...-32ae69b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 31, 2026 License: MIT Imports: 3 Imported by: 0

README

lyt

Live Demo · GitHub · Agent Docs

lyt is a minimal static site generator written in Go. It transforms YAML content and Markdown into pure HTML—zero runtime JavaScript, no client-side framework, no template compilation step.

Why lyt?

Modern static site generators often ship megabytes of JavaScript to the browser. lyt takes a different approach:

  • Zero JS output — The built site is pure HTML and CSS. It works on any device, including text-only browsers.
  • Content/Style/Engine separation — Your content lives in YAML, styling in CSS, and the engine is just... Go code. They only meet at build time.
  • Design tokens — Define colors, typography, and spacing once in YAML. lyt transforms them into CSS custom properties.
  • Built-in components — Hero sections, feature grids, callouts, CTAs, warnings, pull quotes—declared in YAML, rendered as semantic HTML.
  • Schema validation — Catch missing fields, invalid types, and broken links before you deploy.
  • AI-ready — Includes structured help for AI agents (lyt help agent) so assistants can work with your content intelligently.

Quick Start

# Install
go install github.com/b7r-dev/lyt@latest

# Or build from source
git clone https://github.com/b7r-dev/lyt
cd lyt
go build -o lyt .

# Create a project
lyt init my-site
cd my-site

# Build
./lyt build

# Develop with hot reload
./lyt serve

How It Works

Content: YAML + Markdown

Pages live in content/pages/:

meta:
  title: "Hello World"
  slug: "/hello"
  description: "A simple page"

sections:
  - id: "intro"
    type: "hero"
    title: "Hello World"
    subtitle: "Welcome to my site"

  - id: "about"
    type: "default"
    title: "About"
    body: |
      This is **Markdown** content.

Blog posts go in content/blog/ with an added date field. Long-form content can reference external Markdown files with @filename.md.

Design Tokens

Define your visual theme in content/tokens.yaml:

colors:
  base:
    bg: "#faf9f6"
    text: "#2d2d2d"
  accent:
    primary: "#e07a5f"
    
typography:
  fonts:
    body: "system-ui, sans-serif"

These become CSS custom properties in your build output—no runtime processing needed.

Section Components

lyt renders these section types from your YAML:

Type Output
hero Full-width header with title, subtitle, body, buttons
features Card grid with icons and descriptions
default Standard prose section
cta Call-to-action banner
callout Styled info/tip/warning boxes
pull-quote Blockquote with attribution
citation Book/article reference
warning Alert box (error, warning, info, success)
code-example Syntax-highlighted code block

Commands

Command Description
lyt build Build the site to ./dist
lyt serve Dev server with hot reload
lyt init Initialize a new project
lyt validate Check content schema and links
lyt help agent AI agent documentation

Flags:

  • -o, --output — Output directory (default: ./dist)
  • -f, --force — Force rebuild
  • -v, --verbose — Detailed output

Project Structure

my-site/
├── content/
│   ├── pages/         # Page YAML files
│   ├── blog/          # Blog post YAML files
│   ├── config/        # Site configuration
│   ├── tokens.yaml   # Design tokens
│   └── schema.yaml   # Content schema
├── templates/        # HTML templates + CSS
├── public/           # Static assets
└── dist/             # Built output

Deployment

Build output is static files in ./dist. Deploy to anything:

  • Vercel — Connect repo, runs lyt build
  • Netlify — Connect repo, runs lyt build
  • Cloudflare Pages — Connect repo, runs lyt build
  • GitHub Pages — Use GitHub Actions
  • VPS/rsynclyt build -o ./dist && rsync -av dist/ user@server:

Validation

lyt validates your content before building:

# Validate schema and links
lyt validate

# Schema only
lyt validate --schema

# Links only  
lyt validate --links

# Custom dist directory
lyt validate --links --dir /path/to/dist

Checks include:

  • Required fields (title, slug)
  • Section type validity
  • CTA field pairs (button_text + button_href)
  • Internal link integrity
  • Agent section structures

Philosophy

  1. Separation of concerns — Content, style, and engine are independent. Swap any without touching the others.
  2. No runtime dependencies — The built site needs no JavaScript, no CDN, no special hosting.
  3. Fast builds — Incremental builds with change detection. Typical rebuilds complete in milliseconds.
  4. Agent-friendly — AI assistants can read, modify, and validate your content because it's just structured YAML.

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
engine module
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL