Zum Hauptinhalt springen
YouTube Security VideosMicrosoft Developer: Why AI agents Cost So Much(20.10.2026 um 09:00 Uhr)
••
Windows Tipps & SecurityWindows Sandbox: So testen Sie unsichere Dateien gefahrlos(20.10.2026 um 08:00 Uhr)
•••
Windows Tipps & SecurityDriverMax(20.10.2026 um 10:00 Uhr)
••••
Podcasts & Audio BriefingsFraunhofer IEM: Geld ohne Arbeit: Macht KI uns alle reich? | OUTATIME #44(20.10.2026 um 06:00 Uhr)
•
YouTube Security VideosMicrosoft Developer: Why AI agents Cost So Much(20.10.2026 um 09:00 Uhr)
••
Windows Tipps & SecurityWindows Sandbox: So testen Sie unsichere Dateien gefahrlos(20.10.2026 um 08:00 Uhr)
•••
Windows Tipps & SecurityDriverMax(20.10.2026 um 10:00 Uhr)
••••
Podcasts & Audio BriefingsFraunhofer IEM: Geld ohne Arbeit: Macht KI uns alle reich? | OUTATIME #44(20.10.2026 um 06:00 Uhr)
•
Intelligence View
⚡ tsecurity.de Intelligence

Add a Live Medium Writing Widget to Any Homepage

Add a Live Medium Writing Widget to Any Homepage Visitors decide in seconds if you ship ideas. A stale “Blog” link hurts credibility; three real essay titles wi…

Beitrag
0
Seite
0
↗ Quelle (dev.to)
Social ReaktionenReagiere als Erste:r — dein Feedback zählt!




Add a Live Medium Writing Widget to Any Homepage



Visitors decide in seconds if you ship ideas. A stale “Blog” link hurts credibility; three real essay titles with dates does the opposite.



This builds a writing widget—not a full embed—ideal for homepages and landing pages.




Tool outcome: A cached API route /api/writing + a 3-card UI you can drop into any stack.










Widget vs full embed























Pattern Where Goal
Widget Homepage Tease; link to Medium or on-site posts
Full embed /writing/[slug] Keep readers on your domain


For full posts see embed Medium articles.









Server route (Next.js App Router example)






// app/api/writing/route.js
export const revalidate = 1800; // 30 min

const API = 'https://api.zenndra.com';

export async function GET() {
const headers = { Authorization: `Bearer ${process.env.ZENNDRA_API_KEY}` };
const handle = process.env.MEDIUM_USERNAME;

const idRes = await fetch(`${API}/user/id_for/${handle}`, { headers, next: { revalidate: 86400 } });
const { user_id } = await idRes.json();

const listRes = await fetch(`${API}/user/${user_id}/articles`, { headers, next: { revalidate: 1800 } });
const { articles } = await listRes.json();

const latest = (articles ?? []).slice(0, 3).map((a) => ({
id: a.id,
title: a.title,
url: a.url,
published_at: a.published_at,
preview: a.preview ?? '',
}));

return Response.json(latest);
}






Never call third-party APIs from the browser with your secret key—always proxy server-side.









React cards






export function WritingWidget({ posts }) {
return (
<section aria-labelledby="writing-heading">
<h2 id="writing-heading">Writing</h2>
<ul className="writing-grid">
{posts.map((p) => (
<li key={p.id}>
<time dateTime={p.published_at}>
{new Date(p.published_at).toLocaleDateString()}
</time>
<a href={p.url}>{p.title}</a>
{p.preview && <p>{p.preview}</p>}
</li>
))}
</ul>
<a href="/writing">View all →</a>
</section>
);
}












Performance tips




  • Fetch at build or edge with TTL—do not block LCP.

  • Use consistent card height; real dates beat “Updated 2022.”

  • Optional: pull hero image from article metadata when you want a magazine layout.









Keywords



medium portfolio widget, show medium posts on website, medium latest articles api, developer homepage writing section.









Further reading



Intelligence Digest — kostenlos Täglich die wichtigsten Security-News · jederzeit abbestellbar
Community Rating & Social Proof
⭐ Leser-Wertung
–
Ø / 5.0
Noch keine Leser-Bewertungen
War diese Seite hilfreich?
0
Jetzt Bewertung abgeben
🟢 Niedrig (1-3.9) 🟡 Mittel (4.0-6.9) 🔴 Hoch (7.0-8.9) Kritisch (9.0-10.0)

Verwandte Story-Cluster & Quellen (Vektor-KI)

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Add a Live Medium Writing Widget to Any Homepage

Thematisch verwandte Begriffe: Live, Medium, Writing, Widget · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

💬 Kommentare werden geladen…
Zum Aktualisieren ziehen
Nächster Beitrag