Skip to main content
PR #1971 shipped a universal website embed widget plus an admin-side customisation panel. This is the recommended embed path for any surface that isn’t a Shopify storefront (CMS, custom sites, partner portals).
Organisation branding and appearance settings

What it is

A small embed script you drop into your site. The script finds a placeholder <div> and injects a Nudj widget wired to your community. The widget is styled from the community theme and respects the embed configuration created in the admin panel.

Setup

1

Configure the widget in admin

Open the admin panel’s embed customisation panel (PR #1971). Choose the widget layout, theme overrides, and the authentication mode — OIDC SSO or API Link token handoff.
2

Copy the embed snippet

The customisation panel surfaces a ready-to-paste snippet. It looks something like:
<div id="nudj-widget"></div>
<script async src="https://your-org.nudj.cx/embed.js"
        data-nudj-community="your-community-id"></script>
3

Drop the snippet onto your page

Paste the snippet anywhere on the page. The widget renders into the placeholder div on first paint.
4

Authenticate the user

  • OIDC flow — the user clicks “Sign in” inside the widget and is redirected through your identity provider and back.
  • API Link flow — your server issues a Nudj token and your page passes it to the widget (see API Link for the protocol).

CSP allowlist

PR #2333 opened the Nudj user app’s CSP frame-ancestors directive so the universal embed can render on arbitrary third-party domains without the browser blocking it. This matters because the widget ships as an iframe under the hood — without the CSP change, every new embedding host would have needed a manual allowlist entry.

When to pick the universal embed

Your surfaceBest fit
Shopify storefrontShopify storefront widgets — richer block catalog, theme editor integration
Any other ecommerce / CMS / custom siteUniversal embed widget (this page)
Native mobile appMobile webview
You host the full user app on your domainIframe + CNAME (white-labeling)

Differences from the Shopify widget

The universal embed and the Shopify theme app extension share the same underlying Nudj user app. What differs:
  • Distribution — the Shopify widget is a theme app extension merchants add from the theme editor; the universal embed is a script tag you host.
  • Configuration surface — Shopify widgets are configured per-block in the theme editor; the universal embed is configured once in the admin panel.
  • CSP — Shopify storefront domains are allowlisted by PR #1638; universal embed uses the wider allowance from PR #2333.

Next steps

Embedding modes overview

Compare all four embedding modes.

Custom domains + theming

Theme the embedded widget to match your brand.
Last reviewed: 2026-04 · Related PRs: #1971, #2333, #1638