Add from: Widgets → Add widget → Portfolio
What goes in the widget
The portfolio schema has two arrays:| Array | Holds | Cap |
|---|---|---|
images | Each entry is { imageUrl, caption? }. The image URL must be https:// or a /uploads/... path uploaded from this widget. | 60 images. |
clips | Each entry is { url } only. Allowed sources: YouTube, Twitch (video or clip), Streamable, Kick video. | 12 clips. |
Per-item fields
Image entry
| Field | What it does |
|---|---|
| Image URL / upload | The image (uploaded via the widget editor or pasted as a URL — only https:// or /uploads/... accepted). |
| Caption (optional) | Up to 200 chars. Shown under the thumbnail when item labels are on. |
Clip entry
| Field | What it does |
|---|---|
| URL | Public YouTube, Twitch (video or clip), Streamable, or Kick URL. Up to 2,048 chars. |
Widget options
| Option | What it does |
|---|---|
Image grid columns (portfolioGridColumnsPerRow) | 2–6. Omitted = 3. |
| Spread partial rows | When on, partial bottom rows use auto-fit to span full width. Off = fixed columns with empty space on the right. |
| Item labels | Toggles the caption under each image (defaults on). |
| Item chrome | solid / transparent / glass / blur (the same widgetItemChrome enum every widget uses). |
Tips
- First image is the visual anchor — pick something that grabs attention.
- Mix-and-match: a portfolio widget with 8 images and 1 hero clip reads cleanly.
- For lots of video, use the Embed widget — it has dedicated grid columns + button/embed display modes.
Common questions
Can I upload videos directly?
Can I upload videos directly?
Not via the portfolio widget — the
clips array only accepts YouTube / Twitch / Streamable / Kick URLs. For an <video>-style background, see Page background.Twitch clip says 'not allowed'
Twitch clip says 'not allowed'
The Twitch player needs the page hostname to allowlist. We send the right
parent= parameter — if you see this on a custom domain, drop us a message.Can I have one widget for images and another for clips?
Can I have one widget for images and another for clips?
Yes. Add two portfolio widgets — one with
images only, one with clips only.The grid looks weird on mobile
The grid looks weird on mobile
Drop the column count. 2 columns is usually right for phones; 4 is comfortable on desktop.
My image rejected with 'Image must be http(s) or a /uploads/ path'
My image rejected with 'Image must be http(s) or a /uploads/ path'
Drag-and-drop the file from disk so it goes through the widget uploader, or paste a fully-qualified
https:// URL. Local file paths (file://, C:\...) are not accepted.