Documentation
Customization
Control how your feed looks directly from the dashboard or via HTML attributes.
Dashboard settings
Most layout settings are configured from the feed’s settings page in the dashboard (Feeds → your feed → Settings). Changes apply immediately without re-deploying your site.
| Setting | Description | Plan |
|---|---|---|
| Feed name | Internal label — not shown to visitors. | All |
| Max posts | Maximum number of posts to display. Limited by your plan. | All |
| Refresh interval | How often to check Instagram for new posts. | All |
| Allowed domains | Restrict which websites can embed this feed. | All |
Layout options
Set layout options via data- attributes on the container element. See Embed options for the full reference.
Columns
data-columnsUse 2 for a portrait/blog feel, 4–5 for a gallery wall effect.
Gap
data-gapSet to 0 for a seamless mosaic. 8–16 for a card grid.
Border radius
data-border-radius0 = sharp squares. 8 = subtle rounding. 999 = circles.
Plan limits
Some settings are gated by your plan. Here’s a summary:
| Plan | Max posts | Refresh | Feeds | Views/mo |
|---|---|---|---|---|
| Free | 9 | Daily | 1 | 1,000 |
| Solo | 30 | Hourly | 1 | 10,000 |
| Growth | 100 | 10 min | 10 | 100,000 |
| Scale | 150 | 5 min | 25 | 500,000 |
| Partner | 150 | 1 min | 50+ | 100k + overage |
See pricing for full plan details.
Custom CSS
The widget adds a small set of CSS classes you can override in your own stylesheet:
.feedembed-grid { /* the outer grid container */ }
.feedembed-post { /* each post cell */ }
.feedembed-post a { /* the link wrapping each image */ }
.feedembed-post img { /* the post image */ }
.feedembed-empty { /* shown when no posts are available */ }All classes are prefixed with feedembed- to avoid conflicts with your existing styles. Use !important sparingly — the widget’s styles use low specificity intentionally.