Substack integration

Embed Orizn widgets in Substack

Step-by-step guide to add visa, budget, and travel widgets to your Substack site in under 2 minutes.

Substack does not allow custom JavaScript in posts — by design, to keep newsletter delivery clean. That means the standard Orizn snippet will not run inside a Substack post. The workaround is to link out to a hosted widget preview, or use an inline image fallback that still drives readers to your affiliate page.

Tested with Substack 2026 editorFree forever

What you'll get

Three quick wins

🔗

Linked preview card

Substack auto-fetches Open Graph metadata. Paste the embed.orizn.app/widgets URL on its own line and you get a rich preview.

🖼️

Image-as-button

Drop a screenshot of the widget and hyperlink it to your affiliate widget URL. Same intent, no script required.

✉️

Works in the email and the web

Because there is no JS, the same fallback renders identically in the inbox and on substack.com.

Setup

Step-by-step in Substack

Five concrete steps from opening the editor to hitting publish.

1

Read the limitation up front

Substack strips <script> tags and most iframes from posts. There is no Custom HTML block. Trying to paste the standard snippet will result in plain visible text or a removed block when you publish.

2

Open the new post editor

From your Substack dashboard, click New post → Text post. The editor is a stripped-down ProseMirror surface with only basic blocks: text, image, embed (YouTube/Twitter only), code block, button, paywall.

3

Use a code block as a visual fallback

If you want to show the snippet for reference (e.g. for a tech post), use the Code block (</> icon). The HTML will not execute but it will display as monospace text. This is useful for tutorials about embedding, not for live widgets.

4

Link to a hosted Orizn widget page

The recommended path: paste the URL https://embed.orizn.app/widgets/visa?destination=THA on its own line. Substack auto-converts it to a rich embed card with screenshot, title, and CTA. Add &affiliate=ORIZN-XXXXX so the click attribution flows back to your account.

5

Publish

Hit Continue → Send to everyone. The card sends in the email and renders on the web archive. Track clicks via your affiliate dashboard at affiliate.orizn.app.

Code

The snippet for Substack

Copy the variant that matches your setup. Switch tabs to see the affiliate or iframe versions.

url
https://embed.orizn.app/widgets/visa?destination=THA

Watch out

Common Substack pitfalls

The things that catch first-timers — fix in advance.

No script execution, ever

Even on a paid Substack Pro plan, custom JS is blocked. There is no plan upgrade that unlocks it.

iframes are usually stripped

Substack only honors a small whitelist of iframe sources (YouTube, Twitter, Spotify). Orizn iframes will be removed silently on save.

Use your own Substack subdomain for canonical

If you are on yourbrand.com, the OG preview still works but Substack rewrites links to substack.com — verify the affiliate query string survives the rewrite.

Image alt text matters for email

Many email clients block images by default. Always set a descriptive alt='Check Thailand visa requirements' on your fallback screenshot.

FAQ

Questions about Substack

Why can't I just paste the script?

Substack sanitizes all posts to keep newsletter delivery reliable across Gmail, Outlook, Apple Mail, etc. No third-party JS makes it through.

Will my affiliate link still track conversions?

Yes. As long as the destination URL contains ?affiliate=ORIZN-XXXXX, the click is attributed for 30 days from the orizn_passport cookie.

Can I host the widget on a sub-page and iframe that?

Substack still blocks the iframe. Use the URL-as-preview-card pattern instead — same conversion, more reliable.

Is there a Substack-specific theme?

Not yet. Pass data-theme='light' or 'dark' on the destination embed.orizn.app page to match your newsletter aesthetic.

Other platforms

Embed Orizn elsewhere

Ready?

Ready to embed in Substack?

Grab the snippet, paste it where the steps above describe, and ship in two minutes.