Design templates visually. Render pixel-perfect PDF, PDF/A and editable Word documents from any language through one API — with typography that survives the world's hardest scripts.
توليد المستندات بإتقان: تشكيل، اتجاهات مختلطة، تواريخ هجرية، أرقام هندية — كلها صحيحة من أول تشغيل.
The Studio's instant preview runs the full typesetting engine in your browser (WebAssembly) — edits render in ~35 ms.
Legal contracts, government forms, invoices, certificates — in any language, with the details that make them correct.
Full tashkeel, contextual shaping, mixed-direction lines, Hijri & every Unicode calendar, Arabic-Indic digits — via real ICU, not string hacks. A glyph-coverage linter flags any character your fonts can't print before your customer does.
A signature block renders a signing box — in PDF output a real AcroForm digital-signature field (certificate-signable in any PDF viewer). Or capture drawn ink in the Studio's signature pad — or your own UI — and it prints in place, in PDF and Word alike.
A pinned-Chromium reference engine for guaranteed fidelity, and a Rust-based engine that renders the same template ~6× faster with native PDF/A — switch per render with one JSON field.
The same template renders archival PDF/A-2b for compliance and a genuinely editable .docx — real tables, headers, page-number fields — because templates describe meaning, not pixels.
Templates are published immutably (invoice@1.2.0) with full history and visual diffs. Apps render by reference — designers ship template changes with zero application redeploys.
The Studio embeds the typesetting engine as WebAssembly: every keystroke re-renders in ~35 ms, entirely client-side. What you see is byte-what the server prints.
Wathiq ships as a single container (API + Studio). If your stack can POST JSON, it can print documents — render by templateRef and template updates never touch your code.
# PDF (add "engine":"typst" for the fast engine, "format":"docx" for Word) curl -X POST http://wathiq:8080/render \ -H "content-type: application/json" \ -d '{"templateRef":"employment-certificate","data":{"employee":{"name":"محمد"}}}' \ -o certificate.pdf
var res = await http.PostAsJsonAsync("http://wathiq:8080/render", new { templateRef = "employment-certificate", data = employee }); byte[] pdf = await res.Content.ReadAsByteArrayAsync();
pdf = requests.post("http://wathiq:8080/render", json={ "templateRef": "employment-certificate", "data": employee, }).content
const pdf = await fetch("http://wathiq:8080/render", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ templateRef: "employment-certificate", data }), }).then(r => r.arrayBuffer());
// zero-dependency official SDK (Java 8+) WathiqClient wathiq = new WathiqClient("http://wathiq:8080"); byte[] pdf = wathiq.renderByRef("employment-certificate", dataJson);
Drag blocks in the Studio — tables, QR & barcodes, signature fields, running headers — with a live preview and glyph-coverage lint.
Save to the registry: delivery-note@1.0.0. Every version kept, history browsable, changes diffable.
POST templateRef + data from .NET, Python, Java, Node — sync, or async jobs with webhooks. On-prem or cloud.
Start free while evaluating. Pick the lane that fits your infrastructure and procurement.