Posts are fetched once and cached at the edge, so visitors get fast responses from the nearest data center.
The open-source alternative to Elfsight
Your Instagram feed, embedded in two lines of code.
This is a live Alfsight widget, loaded from our own Cloudflare deployment.
This snippet renders the live feed above. Paste it anywhere in your HTML.
A workflow tuned for speed
Create, customize, embed and forget. Alfsight keeps your feed fresh on its own.
New widget
Connect a public Instagram profile.
Instagram username
Create a widget from any public Instagram username in seconds.
Layout
Customize the design with layouts, spacing and hover effects, live.
<instagram-feed
feed="YOUR_FEED_ID"
></instagram-feed>
<script src="…/instagram.iife.js" defer></script>Embed anywhere with a two-line snippet that works on any site.
- CCronSynced 12 new posts06:00
- CCacheFeed refreshed in KV06:00
- MManualSynced 3 new posts09:42
Stay in sync automatically, with posts refreshed every 6 hours.
Everything you need to embed Instagram, nothing you don't.
One script tag and a custom element. No framework runtime, with Shadow DOM keeping styles isolated.
AlfsightFree and open source, forever. MIT licensed, self-hosted on your own Cloudflare account, with every line of code yours to read and change.
Grid, masonry or showcase. Tune columns, gaps, radius, hover effects and colors and see every change instantly.
Your data, your keys, your domain. Nothing runs on a third-party widget service.
Cron triggers refresh every feed on a schedule, and you can sync manually from the dashboard any time.
Plain HTML, WordPress, Shopify, Webflow, React, Vue or Next.js. If it renders HTML, it works.
Pick a layout and tweak every pixel
Grid layout
Even rows and columns for the classic profile look. Pick 2 to 6 columns and any gap.
Masonry layout
Staggered heights that keep tall posts intact, for a magazine-style wall.
Showcase layout
One hero post with a supporting strip beside it, perfect for product launches.
Live editor
Every change previews instantly on desktop, tablet and mobile before you hit save.
Runs on your Cloudflare, worldwide
The API, widget and dashboard deploy to your own account. Feeds are cached at the edge and refreshed on a schedule.
- < 6 kB widget
- 6 h auto sync
- KV edge cache
- MIT licensed
Hono API on Workers
A tiny, typed API that runs at the edge.
D1 database
Feeds and posts live in Cloudflare's SQLite.
KV edge cache
Feeds are served from cache, close to visitors.
Shadow DOM widget
Your site's CSS never clashes with the feed.
Validated with Zod
Every request body is checked before it's saved.
TypeScript end to end
Shared types between API, widget and dashboard.
Everything Elfsight does, without the subscription or the view limits.
Elfsight
A hosted widget service you rent month to month.
Pricing
Paidplans per month
- Monthly subscription for higher tiers
- Widget views capped per plan
- Elfsight branding on the free plan
- Closed source
- Data hosted on vendor servers
Alfsight
Open sourceA self-hosted widget service you own outright.
Pricing
$0forever, on Cloudflare's free tier for most sites
Everything you need, plus
- Unlimited widgets and views
- No third-party branding, ever
- Open source under the MIT license
- Your data in your own Cloudflare account
- Shadow DOM widget under 6 kB gzipped
- Automatic sync every 6 hours
No subscription, no view caps, no lock-in. You only pay Cloudflare if you outgrow their free tier.
Need a hand self-hosting?
Follow the step-by-step deploy guide, or open an issue on GitHub and we'll help you get your first widget live.
Have questions? Browse the FAQs to find the answers you need.
- Is Alfsight really free?
- Yes. The code is MIT licensed and runs on your own Cloudflare account. Small and medium sites usually fit within Cloudflare's free tier, so there is no monthly bill to pay.
- Do I need an Instagram API token or OAuth?
- No. Public profile data is fetched server-side through the OpenHandle API, so you only need an OpenHandle key (a free test key is available). No Instagram tokens ever reach the browser.
- Can I show a private Instagram account?
- No. Alfsight only displays public profiles, the same posts anyone can see on Instagram.
- How often do new posts appear?
- A Cloudflare cron trigger re-syncs every feed every 6 hours, and you can trigger a manual sync from the dashboard at any time.
- Will the widget clash with my site's CSS?
- No. The widget is a web component rendered in Shadow DOM, so your styles don't leak in and its styles don't leak out.
- Does it work with WordPress, Shopify or Webflow?
- Yes. Paste the two-line snippet into any HTML block or custom code embed. If the platform renders HTML, it works.
Didn't find your answer? Read the docs or open an issue on GitHub.