DIY guide · Medium API
Turn your homepage into proof you ship ideas
Visitors decide in seconds whether you are active and credible. A live "Writing" section—pulled from Medium—is one of the highest-leverage blocks on a founder or developer homepage. You do not need a CMS; you need a feed.
Trust is visual
Technical buyers trust people who publish. Not who claim to publish. A homepage that shows three recent essays with real titles and dates signals momentum. An empty "Blog" link signals the opposite.
You already write on Medium because friction is low. The gap is display: getting that work on the site where deals actually close.
Widget vs full embed
Two valid products, do not confuse them:
A widget teases: title, date, maybe one line, click-through to Medium or to on-site full text. It is for homepages and landing pages where brevity wins.
A full embed (see our guide on in-site articles) is for readers who should never leave. Many teams do both—widget on /, full post on /writing/{slug}.
This guide focuses on the widget because it is the fastest win.
What the API gives you for free
List endpoints return what cards need: identifiers, titles, URLs, previews. You are not parsing og:tags from HTML. You are not asking designers to paste links manually each week.
That means engineering time goes into layout and motion—grid, typography, hover states—not into fragile ingestion.
Design patterns that convert
Strong writing sections use consistent card height, real dates (not "2 years ago" because you hard-coded), and a clear "View all" path. Founders often add one featured post with image from article metadata when they want a magazine feel.
Performance matters: fetch server-side or at build time, cache thirty minutes on marketing sites, never block LCP on a third party.
Zenndra as infrastructure
Zenndra keeps the contract boring: one key, JSON responses, rate limits you can reason about. When you outgrow a static widget, the same ids power full article pages without a migration.
Shipping in an afternoon
Wire the list call once. Map to your component library. Style three cards. Ship. Iterate when you want images or on-site reading—not before.
The goal is not perfection on v1. The goal is never shipping a stale homepage again.