An Instagram feed on your website, automatically, with Make.com
Your latest Instagram photos are pulled in automatically and shown as a feed on your website. No plugins, no account needed, just a Make.com subscription you probably already have.
- ✓free with an existing account
- ✓5 or 10 photos
- ✓updates automatically
How it works
01
Fetch Instagram
Make.com logs in through the Instagram Business API and pulls the latest 20 posts.
02
Filter
Only photos and albums are included (no Reels). The counter stops at 5 or 10.
03
Save the photos
Each photo is downloaded and saved on your server as ig-01.jpg through ig-05.jpg.
04
Build the JSON
Make.com writes an instagram.json file to your server with the links and captions.
05
Load the feed
A small piece of JavaScript reads the JSON and shows the photos as a clickable grid on your page.
What the feed looks like
📷
Sfeervolle avond op het terras...
📷
Nieuwe seizoenskaart is er!
📷
Dank voor alle lieve reacties...
📷
Live muziek vanavond van...
📷
Zaterdag open vanaf 12 uur.
Clickable, mobile-responsive, and updated automatically as long as Make.com keeps running.
Make.com blueprint
Import the blueprint straight into your Make.com account. All you need to set up is your Instagram Business connection and your FTP connection.
Open blueprint ↗5 or 10 photos
By default, the blueprint takes the last 5 photos. Want 10 instead? Adjust this filter in the router step:
filter: {{14.i}} < 6 // 5 photos
filter: {{14.i}} < 11 // 10 photosThe filenames then run from ig-01.jpg through ig-10.jpg. You don't need to change the JSON file or the HTML.
Code for your site
Click a fragment to open the full code.
JavaScript · main.js
async function loadInstagram() {
try {
const res = await fetch('instagram.json');
if (!res.ok) return;
const data = await res.json();
const feed = document.getElementById('instagram-feed');
if (!data.posts || !data.posts.length) return;
feed.innerHTML = data.posts.map(post => `
<a class="ig-photo" href="${post.link}" target="_blank"
rel="noopener" aria-label="Bekijk Instagram post">
<div class="ig-card">
<div class="ig-image-wrapper">
<img src="${post.image}" alt="Instagram foto" loading="lazy">
</div>
${post.caption
? `<p class="ig-caption">${post.caption}</p>`
: ''}
</div>
</a>
`).join('');
} catch (e) {
// Feed niet beschikbaar, placeholder blijft zichtbaar
}
}
loadInstagram();HTML · section
<section id="instagram" class="section section-instagram"
aria-labelledby="ig-titel">
<div class="container">
<div class="section-header">
<h2 id="ig-titel">Instagram</h2>
</div>
<p class="section-intro">
Volg ons voor de laatste sfeerbeelden en nieuwtjes.
</p>
<div class="instagram-grid" id="instagram-feed">
<div class="ig-placeholder">
<a href="https://www.instagram.com/jouwaccount/"
target="_blank" rel="noopener" class="btn-outline">
@jouwaccount
</a>
<p class="ig-note">
De Instagram-feed is hier straks zichtbaar zodra
de koppeling actief is.
</p>
</div>
</div>
</div>
</section>CSS · styles
.instagram-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 0.5rem;
}
.ig-photo { text-decoration: none; color: inherit; display: block; }
.ig-card {
border: 1px solid #dbdbdb;
border-radius: 8px;
background: #fff;
transition: box-shadow 0.2s ease;
}
.ig-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.12); }
.ig-image-wrapper { aspect-ratio: 1 / 1; overflow: hidden; }
.ig-image-wrapper img {
width: 100%; height: 100%;
object-fit: cover; display: block;
transition: transform 0.3s ease;
}
.ig-card:hover .ig-image-wrapper img { transform: scale(1.04); }
.ig-caption {
padding: 10px 12px;
font-size: 0.85rem; line-height: 1.4; color: #333;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden; margin: 0;
}Built by Remco Bouwman forCafé Heuvel Amsterdam. Works with any Make.com subscription. Free · Instagram Business API · Make.com