Back to writing

Building BlogSync as a publishing system

Why the writing tool and the public site should be separate systems.

BlogSync started as a way to write once and publish to multiple platforms. The useful boundary is not “one more blog engine”; it is a private writing system that produces portable content.

The public site can then stay focused on presentation:

  • readable article pages
  • durable URLs
  • project explanations
  • static deployment

That separation keeps the publishing pipeline replaceable. If the public site changes from Astro to another static generator, BlogSync only needs to keep writing clear Markdown with stable frontmatter.

type Publisher interface {
    Publish(ctx context.Context, article Article) error
}

The interface is small because the system boundary is small.