Back Donovan Crader Let's talk
Showcase project 2023

Shmedium

A complete publishing platform — built from scratch, not from a template.

  • Flask
  • Python
  • PostgreSQL
  • React
  • Redux
  • AWS S3
A finished article on Shmedium titled "A short note on building websites you can rely on" with elegant serif typography.

Case study

  • Publishing / blogs
  • Membership sites
  • Long-form content

Shmedium was built as an App Academy capstone project in May–June 2023. The brief: prove that the core publishing workflow of Medium or Substack — accounts, stories, follows, comments, full-text search — can be built from scratch by one developer in six weeks. Everything here is built, not bootstrapped.

The stack is Flask + PostgreSQL on the backend with React 17 + Redux on the frontend. Writers create accounts, publish stories with formatted text and cover photos (stored on AWS S3), follow other writers, and leave comments. Every major publishing workflow is present: story drafts, writer profiles, topic-tag filtering, and a personalized following feed.

Performance was the first production lesson. The original home feed was naive: it loaded stories, then fetched author data for each story in a loop, then fetched follower counts in a second loop. The page was firing 757 database queries on every load. A single refactor — joining author data and aggregating follower counts in one SQL query — dropped that to 10 queries. That's a 75× improvement, and the refactored version is what runs today.

The seed data takes the platform seriously. 96 real articles were written and seeded across topics — technology, design, business, culture — so the platform looks like a real publication on first visit, not an empty scaffold. Empty-state UIs are a crutch; Shmedium shows a working feed with real content.

Full-text search covers story titles, body content, author names, and topic tags, with highlighted matches in results. Writer profile pages show total follower count, published story count, and a sortable story archive. The platform is deployed on Render.com and live to the public.

Screenshots

Like what you see?

Let's build something together.

Have a project in mind? I'd love to hear about it.