ReviewOS

stacks/postline

Blog post management: use Postline as a source for Stacks app blogs

#6
Closed glennmichael123 opened this 9 days ago ·
9 days ago

Beyond social crossposting, Postline should be usable to write and manage blog posts for Stacks apps.

Idea

Stacks ships a CMS package (@stacksjs/cms — posts, authors, categories, tags, RSS, sitemaps). Postline's Post → PostTarget model already treats each network as a publish target, so a blog can be just another target:

  • Add a blog provider/driver in DriverRegistry that writes to the Stacks CMS post models instead of an external API
  • Composer support for long-form content when the blog target is selected (title field, no character limit, markdown body)
  • Decide the sync model: does Postline own the canonical post and push to a Stacks app, or write directly into the app's CMS tables/API?
  • Support multiple destination blogs (one per Stacks app) — likely one SocialIdentity-style record per blog
  • Crosspost flow: publish the blog post, then optionally crosspost a teaser + link to the social networks

Context

  • Fan-out: app/Services/Social/CrosspostService.ts, registry: app/Services/Social/DriverRegistry.ts
  • Models: app/Models/Post.ts, app/Models/PostTarget.ts
9 days ago

PR #8 ships a v1: "Blog" is a crosspost provider — publishing writes markdown to content/blog/, which the framework's BunPress blog renders at /blog/<slug> (with RSS). A blog_posts table keeps the canonical record alongside post_targets. Still open: long-form composer support (title field, no char limit) and multi-destination blogs / pushing into another Stacks app's CMS.

9 days ago

Shipped across PRs #8, #10, #13: the blog is a crosspost target writing markdown that the framework's BunPress blog serves at /blog with RSS, the composer has a long-form mode (title field, 10k limit), and queued blog posts keep their title/body through scheduled publishing. Multi-destination blogs (pushing into other Stacks apps' CMSs) stays a future design conversation — reopen or file fresh if it becomes a priority.

Sign in to comment on this issue.