Design a Blogging Platform
MediumSystem design · Publishing
Design a blogging platform where authors write drafts, schedule or publish posts, and readers discover and subscribe to blogs. Published posts must load fast and survive viral spikes, and authors can use their own custom domains.
In scope: the draft and revision model, publish pipeline, serving and caching, custom domains and certificates, email subscriptions, and view analytics. Out of scope: the comments system internals and recommendation feeds.
Requirements
- Support drafts, immutable revisions, scheduled publishing and preview
- Serve published posts from a cache or static output; purge on edit without a stampede on the origin
- Support custom domains with on-demand certificate issuance and renewal
- Send new-post emails to subscribers without duplicates, and derive simple analytics without slowing reads