Flat posts work until you need the same story in email, in-app, and partner feeds. A clear content model—title, slug, excerpt, body, taxonomies—becomes the contract every channel reads from.
This stack keeps values in normalized tables, so you are not scraping HTML when a new channel appears. Add fields deliberately; every new knob is a promise to every consumer.