Blog
Blog content is handled by node5-blog-service. Markdown-based CMS with public API.
Why ship a built-in blog CMS
Section titled “Why ship a built-in blog CMS”- Organic discovery (SEO) — Long-form posts become indexable pages on your domain. That helps you rank for product keywords, tutorials, and comparisons without bolting on a separate WordPress site.
- Trust and narrative — Changelog-style updates, how-tos, and case notes show that the product is alive. That supports conversion on Pricing and reduces “is this maintained?” friction.
- Publish without redeploying the app — Editors use the admin Blog UI; you are not editing marketing repo files or running a deploy for every announcement. Content stays in one pipeline with the rest of ZShip.
- Headless-friendly API —
GET /api/blog/listandGET /api/blog/getletapps/web(Astro), landing, or a future front-end render posts consistently—same data, multiple surfaces if you need them. - Fits the stack — Same auth and tenant model as the rest of the platform; Markdown plus CDN-friendly images (node6 or external URLs) keeps hosting simple on Cloudflare.
Together, the blog turns your site from a static brochure into a content channel that compounds: more pages, more reasons to return, and clearer positioning for AI/SaaS buyers.

Admin pages
Section titled “Admin pages”- Blog (
/blog) — Create, edit, publish posts
Public API
Section titled “Public API”- List posts:
GET /api/blog/list - Get post:
GET /api/blog/get?slug=...
Content
Section titled “Content”Posts support Markdown. Images can be stored via node6-cdn or external URLs.