Conversion is one feature. The rest of the product is the surface around it — multi-key billing, signed webhooks, audit log, dashboard, test mode. The stuff Aspose makes you fight for or build yourself.

Six surfaces of one product. Click into the deep sections below for what each actually does, or skim the tag rows for the specifics.
One SVG per slide. Text-as-text, shapes-as-shapes, z-order preserved. Images embedded inline. ~80% fidelity target with everything that didn't render listed in the sidecar.
Block the connection for ~5–10s on small decks. Hand off to a webhook for anything larger. Both are first-class — one endpoint, one query param toggle.
HMAC-SHA256 signed payloads. Retry schedule 30s → 5m → 30m → 2h → 12h → 24h. Dead-letter queue with one-click replay. Every attempt observable in the dashboard.
Multiple keys per account. Live / test mode separation (sk_live_ vs sk_test_). Per-key rate-limit overrides. One-click rotation with 24-hour overlap.
Every security, billing, and member event recorded per account. Filter by actor, event type, or time range. Expand for raw payloads. Export for SOC 2.
Upload a deck, pick sync or async, see the response, copy the curl. No code required to validate a conversion against your real slides before you wire it up.
Each slide becomes one self-contained SVG file with text as <text>, shapes as native primitives, and groups preserved. The coordinate system maps cleanly to standard slide dimensions so it drops straight into Fabric.js, Konva, or any custom canvas.
<!-- slide_03.svg --> <svg viewBox="0 0 1280 720"> <g id="title"> <text x="96" y="140">Q4 results</text> </g> <g id="callout" data-deckup-kind="callout"> <rect x="96" y="240" width="480" height="180" rx="8" fill="#C2522D" /> <text x="336" y="350" fill="#FAECE7">+18.4% YoY</text> </g> <g id="chart_revenue" data-deckup-kind="chart"> /* 6 series, preserved structure */ </g> </svg>
Every conversion ships a sidecar telling you per-slide title, speaker notes, dimensions, and the explicit list of elements that couldn't be rendered. SmartArt on slide 4? You'll know — and so will your customer, with a real explanation instead of a silently-broken slide.
sidecar_version field so you can pin against breakage.Hand off to a webhook URL and Deckup takes responsibility for getting the result to you. HMAC-signed, retried six times across 24 hours, dead-lettered if you stay down — and replayable in one click from the dashboard.
Deckup-Signature header — industry-standard verification.A real working surface — not a marketing screenshot. Conversion history with filters and search. Per-conversion detail view with slide thumbnails, errors, webhook history, raw response. Audit log of every account action. Playground for testing without writing code.
| ID | Status | Mode | Wall |
|---|---|---|---|
| conv_01HXR3K4P7T1 | succeeded | sync | 6.4s |
| conv_01HXR3J9C2K6 | partial | async | 42.1s |
| conv_test_01HXR2… | running | async | — |
| conv_01HXR2X1A8D9 | failed | sync | 1.2s |
| conv_01HXR2V0Z4M3 | succeeded | sync | 4.8s |
We list deferred features explicitly so you can decide whether Deckup fits today. Anything in the right column lands in the sidecar JSON with a kind and reason — it's never silently broken output.
Priority shifts based on customer pull. If you're paying for Pro or Scale and you need something specific, your voice counts most. Everything below is grounded in real conversations, not speculation.
The fastest way to find out whether Deckup handles your slides is to run it on the ugliest deck in your library. 25 free conversions a month, no card. Test keys infinite. Upgrade later and we'll add a one-time +100 bonus credit on top.