ogstudio
v0.1.0
Published
Batch OG image generator for docs, blogs & static sites
Maintainers
Readme
OG Image Studio
Batch OG image generator for docs, blogs & static sites.
Your site has 300 pages. How many OG images have you made?
Zero? We fixed that.
$ ogstudio build content.csv
✓ Loaded 487 pages
✓ Applied "midnight" template
✓ Generated 487 OG images (1200x630)
✓ Saved to ./dist/og/
Done in 18.4sInstall
npm install -g ogstudioQuick Start
# 1. Create config + sample CSV
ogstudio init
# 2. Edit ogstudio.config.yml (brand color, template, etc.)
# 3. Edit content.csv with your pages
# 4. Generate all OG images
ogstudio buildTemplates
| Name | Style |
|------|-------|
| minimal | White bg, black title, accent line |
| midnight | Dark bg, white title, color bar |
| gradient | Brand gradient bg, centered text |
| split | Left color panel + right content |
| branded | Header bar with logo + content below |
ogstudio build --template gradientInput Formats
CSV
title,description,slug
Getting Started,How to install and configure,getting-started
API Reference,Full API docs,api-referenceJSON
[
{ "title": "Getting Started", "description": "How to install", "slug": "getting-started" }
]Markdown (with frontmatter)
---
title: Getting Started
description: How to install
slug: getting-started
---ogstudio build "./docs/**/*.md"Config
# ogstudio.config.yml
template: midnight
output: ./dist/og
brand:
color: "#6366f1"
logo: ./assets/logo.png
fontPath: ./assets/fonts/CustomFont.ttf
input:
source: ./content.csv
titleField: title
descriptionField: description
slugField: slugWatch Mode
Auto-regenerate OG images when Markdown files change:
ogstudio watch ./docsWatching ./docs for changes...
[14:03:22] README.md → getting-started.png
[14:05:01] api/auth.md → auth.pngZIP Output
ogstudio build --zip
# Creates og-images.zip alongside output directoryFree vs Pro
| | Free | Pro ($39) | |---|---|---| | Images per run | 10 | Unlimited | | Templates | All 5 | All 5 | | Watch mode | ✓ | ✓ | | ZIP output | ✓ | ✓ |
Set OGSTUDIO_LICENSE environment variable to unlock Pro.
How It Works
- Uses Satori for rendering (no Chrome/Puppeteer)
- Built-in Inter font (custom fonts supported)
- 100% local — no API calls, no server, no account needed
- Output: PNG 1200x630 (standard OG image size)
License
MIT
