Widget configuration
The data-* attributes the Feedjolt widget loader reads: workspace, board, theme, SSO token, and API URL. Everything else is set per workspace in the dashboard.
The widget loader reads a small set of data-* attributes off the script tag. Everything else (launcher text, position, brand color, active/inactive) is configured per-workspace at Dashboard -> Settings -> Widget and fetched from /api/widget/embed/{workspace}/config at runtime.
This split is intentional: the per-page snippet stays minimal, and rebrands or copy changes don't need every page redeployed.
Script tag attributes
<script async src="https://www.feedjolt.com/widget-loader.js"
data-workspace="acme"
data-board="feature-requests"
data-theme="auto"
data-sso-token="JWT_HERE"
data-api-url="https://api.feedjolt.com/api"></script>| Attribute | Required | Notes |
|---|---|---|
data-workspace | yes | Your workspace slug. Without this the loader logs an error and exits. |
data-board | no | Slug of a default board to deep-link to when the widget opens. The picker still shows other boards. |
data-theme | no | light, dark, or auto. Override of the workspace default. |
data-sso-token | no | A JWT identifying the signed-in user - see SSO below. |
data-api-url | no | Override of the inferred API base URL. Useful for self-hosted or staged installs. |
If your needs aren't covered by these five attributes, configure the rest at Settings -> Widget.
Per-workspace settings (dashboard)
The config loaded at runtime contains:
launcher_text- the button label.launcher_position-bottom-rightorbottom-left.primary_color- used as the launcher background.is_active- kill switch. Iffalse, the loader returns early; nothing is rendered.
These propagate to every install of the widget for that workspace, no script change required.
SSO via data-sso-token
Pass a JWT on data-sso-token to authenticate the user inside the widget. The token is forwarded as a ssoToken query parameter to the portal iframe, which then signs the user into a Feedjolt session.
The token format and signing scheme are not yet publicly documented - we're finalising them. Until then, the recommended path is to leave data-sso-token empty; users will sign in with magic link inside the widget if they want to vote or comment.
Locale
The widget reads the locale from <html lang="..."> - en, es, or ca. If unrecognised, it defaults to en. There's no data-locale attribute today - set the page's lang attribute instead.
Programmatic control
Programmatic open / close / window.feedjolt.open() are not exposed today. The launcher button is the entry point. If you want a custom button, file feedback - depending on demand we can ship a small JS API.
Widget overview
How the Feedjolt widget works: one async script tag mounts a launcher and lazy-loads a sandboxed iframe on click. Install, what loads, and page isolation.
Widget customization
What you can customize in the Feedjolt widget: launcher text, position, and color, plus per-page theme and default-board attributes set on the embed tag.
