# Ogre
> Pure Go HTML/CSS to SVG/PNG/JPEG renderer. Open-source Vercel Satori alternative.
Ogre converts HTML and CSS to images in pure Go. No Chrome, no Node, no CGo. Single static binary.
## Use it as
- Go library: `go get github.com/macawls/ogre`
- CLI: `go install github.com/macawls/ogre/cmd/ogre@latest`
- HTTP server: `ogre --serve --port 3000`
- Docker: `docker run -p 3000:3000 ghcr.io/macawls/ogre:latest`
## Key features
- SVG, PNG, JPEG output
- Tailwind v3 utility classes (no build step)
- Flexbox layout engine (W3C spec)
- Google Fonts auto-resolution (CSS2 API)
- Emoji rendering (Twemoji, OpenMoji, Noto)
- RTL / bidirectional text (Arabic, Hebrew)
- HTTP server with LRU caching, rate limiting, templates, wildcard CORS
- JSX-style Go builder API
- `net/http` handler integration
- Environment variable configuration
- Pure Go — no CGo, no external binaries, `CGO_ENABLED=0`
- 95%+ pixel accuracy vs Satori
## Dependencies
- `golang.org/x/net/html` — HTML parsing
- `golang.org/x/image/font` — font interfaces, OpenType parsing
- `golang.org/x/text/unicode/bidi` — bidirectional text
- `github.com/go-text/typesetting` — HarfBuzz text shaping for complex scripts
No other third-party imports.
## Public API
A public instance is available at `https://ogre-api.macawls.dev` running the latest `ghcr.io/macawls/ogre` image.
## Links
- Docs: https://ogre.macawls.dev
- Playground: https://ogre.macawls.dev/getting-started/playground/
- Examples: https://ogre.macawls.dev/getting-started/examples/
- Go API Reference: https://ogre.macawls.dev/reference/api/
- HTTP Endpoints: https://ogre.macawls.dev/reference/http/
- CSS Properties: https://ogre.macawls.dev/reference/css/
- Tailwind Classes: https://ogre.macawls.dev/reference/tailwind/
- GitHub: https://github.com/macawls/ogre
- Full LLM context: https://ogre.macawls.dev/llms-full.txt