Write a React component once. POST to Renduo. Get a production PDF back — invoices, receipts, contracts.
How it works
Write your document as a normal React component — props in, layout out.
export function Invoice(props)One CLI command ships the template to Renduo and gives it a stable name.
renduo push ./Invoice.tsxAny backend POSTs data to the API and gets back a finished PDF.
POST /v1/generateNo SDK required — call the render endpoint from wherever your backend already lives. JSON in, PDF bytes out.
curl -X POST https://api.renduo.dev/v1/generate \
-H "Authorization: Bearer $RENDUO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"templateId":"tpl_123","payload":{"amount":100}}'Why teams pick renduo
Same data in, byte-identical PDF out — every time, no headless browser flakiness.
A single HTTP call — no language lock-in, no client library to maintain.
Every push is a new version. Pin a release, roll back in seconds.
Render against sample data straight from the dashboard, no deploy needed.
Set up templates and keys from the dashboard at app.renduo.dev.