Dev · Client-side only
RSS-to-HTML embed
Point at any RSS feed; get a self-contained HTML widget. Powered by the free rss2json bridge — no keys.
Latest from the blog
- Preview: shipping fast without burning outJul 5, 2026
- Preview: prompt patterns for foundersJun 28, 2026
- Preview: why we killed our dashboardJun 21, 2026
HTML snippet
<!-- RSS embed · generated with Build on Vibe · buildonvibe.site/tools/free/rss-embed -->
<div class="rss" id="rss-c26ngh">
<h3 class="rss__title">Latest from the blog</h3>
<ul class="rss__list"><li class="rss__loading">Loading…</li></ul>
</div>
<style>
.rss{max-width:640px;margin:2rem auto;padding:1.5rem;border:1px solid #e5e7eb;border-radius:16px;font-family:system-ui,sans-serif}
.rss__title{font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:#f97316;margin:0 0 1rem}
.rss__list{list-style:none;padding:0;margin:0}
.rss__list li{padding:.75rem 0;border-top:1px solid #f3f4f6}
.rss__list li:first-child{border-top:0}
.rss__list a{color:#111;text-decoration:none;font-weight:600}
.rss__list a:hover{color:#f97316}
.rss__date{display:block;font-size:.75rem;color:#9ca3af;margin-top:.15rem}
.rss__loading{color:#9ca3af;font-size:.85rem}
</style>
<script>
(function(){
var feed="https://buildonvibe.site/rss.xml",max=6;
function esc(s){return String(s==null?'':s).replace(/[&<>"']/g,function(c){return({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]);});}
function safeHref(u){u=String(u==null?'':u);return /^(https?:|mailto:)/i.test(u)?u:'#';}
var api='https://api.rss2json.com/v1/api.json?rss_url='+encodeURIComponent(feed)+'&count='+max;
fetch(api).then(function(r){return r.json();}).then(function(d){
var el=document.currentScript.previousElementSibling;
while(el && !el.classList.contains('rss')) el=el.previousElementSibling;
if(!el||!d.items) return;
var ul=el.querySelector('.rss__list');
ul.innerHTML=d.items.slice(0,max).map(function(i){
var dt=new Date(i.pubDate).toLocaleDateString();
return '<li><a href="'+esc(safeHref(i.link))+'" target="_blank" rel="noopener">'+esc(i.title)+'</a><span class="rss__date">'+esc(dt)+'</span></li>';
}).join('');
}).catch(function(){});
})();
</script>