Maildeno ships official SDKs for JavaScript/TypeScript, Python, and PHP. All three expose an identical conceptual surface — only the language idioms differ.
All three SDKs render in-process: each fetches a template’s JSON from Maildeno once via GET /v1/sdk/template/{id}, caches it locally (memory or disk), and renders HTML / React Email / MJML on your own server. Your merge tags and visibility context never leave your infrastructure. JavaScript/TypeScript and Python render through an embedded WebAssembly engine; PHP renders through a small native binary instead — no Wasm runtime or FFI extension required — as of PHP SDK v1.0.0. See JS Caching / Python Caching / PHP Caching for the caching model.
These SDKs are clients for Maildeno’s hosted Render API and require an API key. Rendering an already-exported template JSON file with no API key, no account, and no network access at all? See the open-source @maildeno/renderer package instead.
|
Available SDKs
| Language | Package | Version | Minimum runtime |
|---|---|---|---|
JavaScript / TypeScript |
2.1.6 |
Node.js 18+ (or any runtime with native |
|
Python |
2.0.6 |
Python 3.9+ |
|
PHP |
1.0.3 |
PHP 8.1+ |
Quick comparison
| Feature | JavaScript SDK | Python SDK | PHP SDK |
|---|---|---|---|
Async support |
Native ( |
|
Not available (SDK is sync-only) |
Sync support |
N/A (JS is async by nature) |
|
|
Transport |
Native |
|
|
Type safety |
Full TypeScript types exported |
Full PEP 561 type stubs (mypy / pyright) |
Native PHP 8.1+ type declarations |
Error type |
|
|
|
Validation errors |
|
|
|
Rendering |
In-process (embedded engine) |
In-process (embedded Wasm engine) |
In-process (native binary, no Wasm/FFI) |
Caching |
Memory (default) or disk, with stale-on-error fallback |
Memory (default) or disk, with stale-on-error fallback |
Memory (default) or disk, with stale-on-error fallback |
Render methods
All three SDKs expose the same methods — PHP uses the same camelCase names as JavaScript/TypeScript:
| JavaScript / PHP | Python | Returns |
|---|---|---|
|
|
Full result object ( |
|
|
Rendered HTML string |
|
|
Rendered React/TSX string |
|
|
Rendered MJML string |
Where to go next
-
JavaScript / TypeScript SDK — full reference
-
Python SDK — full reference
-
PHP SDK — full reference
-
REST API — raw HTTP reference (JSON)
-
Error Codes — complete error code reference
-
API Key Scopes — key creation and permissions