Workers
Render
Three workers cover server-side rendering: render (generic), ultron-render (carousel pipeline), ultron-render-preview (pre-publish previews). Backed by Satori plus Resvg for vector to raster conversion, and a small JS template engine for canvas-style outputs.
Updated today
Three render surfaces
| Worker | Purpose | Called by |
|---|---|---|
| render | Generic SSR for canvas blocks, brand teardowns, ad-hoc layouts. | Marketing swarm pipeline, watcher worker, capture worker. |
| ultron-render | Final carousel render. Loads design library + theme tokens, executes the DSL. | Marketing swarm 'render' stage, content publisher. |
| ultron-render-preview | Cheap preview render. Lower DPR, no asset cache invalidation. | Pre-publish UI in the dashboard. |
Overview
At a glance
- Workers
- render, ultron-render, ultron-render-preview
- Vector engine
- Satori (React to SVG)
- Raster engine
- Resvg (SVG to PNG / PDF)
- Asset store
- R2 buckets per pipeline (briefs, exemplars, design assets)
- Default output
- PNG at 2x DPR
- Max canvas size
- 4096 by 4096 px
Splitting render into three workers separates concerns: generic SSR can scale independently of carousel-specific logic, and previews can degrade quality to stay snappy without affecting final renders. All three share the same Satori plus Resvg core; the difference is the template library and the output discipline.
Worker shape
Common to all three, with per-worker extras.
wrangler.toml (key bindings, common)toml
Render flow
render flowtxt
Output formats
| Format | When | Notes |
|---|---|---|
| PNG | Default. Used by carousel renders and previews. | 2x DPR by default; configurable per call. |
| When the request sets format=pdf | Resvg generates PDF directly without an intermediate raster. | |
| SVG | When the request sets format=svg | Raw vector. Useful for downstream editing or further processing. |
| WebP | When the request sets format=webp | Resvg -> WebP via a small encode step. |
File map
cf-workers/render
wrangler.toml
src
index.tscommon entry; route by /render, /preview, /carousel
compose.tscompose React tree from spec + theme
rasterise.tsSatori + Resvg wrappers
cf-workers/ultron-render
wrangler.toml
src
index.ts
carousel.tscarousel-specific pipeline
cf-workers/ultron-render-preview
wrangler.toml
src
index.ts
preview.tslow-DPR fast path