The blog itself
Title, description, page size, the comment rules a comment form needs, the reactions to offer, and where the stylesheet and feed live.
x-api-keyx-api-key<token>A tenant API key — secret (htk_…) or, where allowed, publishable (hpk_…).
The blog and the rules your UI needs.
response?unknownapplication/jsoncurl -X GET 'https://api.horbit.ng/v1/public/blog'{ "status": true, "message": "Blog retrieved successfully", "data": { "title": "The Network Blog", "description": "News, stories and ideas from our community.", "postsPerPage": 10, "postUrlTemplate": "https://example.org/blog/{slug}", "publishedPosts": 42, "comments": { "enabled": true, "requiresApproval": true, "requireEmail": true, "allowReplies": true, "maxDepth": 3, "closeAfterDays": null }, "reactions": { "enabled": true, "types": [ { "type": "like", "label": "Like", "emoji": "👍" }, { "type": "love", "label": "Love", "emoji": "❤️" }, { "type": "clap", "label": "Clap", "emoji": "👏" }, { "type": "insightful", "label": "Insightful", "emoji": "💡" } ] }, "stylesheet": "/v1/public/blog/styles.css", "feed": "/v1/public/blog/feed.xml" }}API reference
Every Blog API endpoint, generated from the OpenAPI spec — with a live request playground.
The blog stylesheet GET
The workspace theme as `--hb-*` custom properties on `.hb-content`, the base rules for every `hb-` class, then the workspace's custom CSS. Every rule weighs **one class** — enough to beat a CSS reset, little enough that your own rules win when loaded after this sheet (or with one more class). No `!important` needed. Re-theme with variables: ```css .hb-content { --hb-accent: #e11d48; --hb-font: Georgia, serif; --hb-content-width: 680px; } ``` Or skip it and style the classes yourself. ```html <link rel="stylesheet" href="https://api.example.com/v1/public/blog/styles.css?key=hpk_…"> ```