{"id":"pg_01M4PM01Y5K0W5QN8SPEPTS2NA","space":"openvibe","slug":"openvibe-blog","url":"https://openvibe.wiki/w/openvibe/openvibe-blog","state":"published","visibility":"public","revision":2,"title":"OpenVibe.Blog","summary":"Hosts the official OpenVibe blog and a blog for every member, with drafts, revisions, series, scheduling and feeds.","body_markdown":"**OpenVibe.Blog** hosts the official OpenVibe blog and a blog for every member, served at `openvibe.blog`. It provides drafts, revisions, series, scheduling and feeds.\n\n## What it does\n\nThe README states the official blog exists from the first boot, and every member gets a blog on first use. Posts have drafts and immutable revisions with optimistic concurrency, diff and revert. Publishing, unpublishing, soft delete and scheduled publish or unpublish are supported. Tags, nested categories and ordered series organise posts, and slug changes leave 301s. Posts can use [[OpenVibe.Media]] for covers and figures, [[OpenVibe.Community]] for comment threads, and OpenVibe.VIP for members-only posts. A network changelog publishes Patch notes posts on the official blog. Pages are server-rendered and useful without JavaScript.\n\n## What it does not do yet\n\nThe official blog is live. On 2026-10-14 it held 60 published posts, most of them Patch notes from the network changelog. The editor attaches existing `med_...` ids and does not upload. Media publishes no deletion event yet, so broken assets are found by polling. The Community thread visibility sync is best effort.\n## How it fits the network\n\nBlog depends on [[OpenVibe.Network]] for SSO and subjects, [[OpenVibe.Media]] for attachments, [[OpenVibe.Community]] for comments, [[OpenVibe.Events]] for events and [[OpenVibe.Search]] for indexing.\n\n## Status\n\nThe README states the status is alpha (roadmap Wave 16, Blog half), public at https://openvibe.blog since 2026-09-23. STATUS.json says it is deployed and that its capabilities and service manifest are registered. License: AGPL-3.0.","published_at":"2026-10-11T23:15:33.455Z","revision_published_at":"2026-10-15T00:32:10.354Z","revision_created_at":"2026-10-15T00:32:10.331Z","authorship":{"mode":"imported","workflow":null,"reviewed":false},"infobox":[{"key":"repository","label":"Repository","type":"url","value":"https://github.com/OpenVibers/OpenVibe.Blog"},{"key":"domain","label":"Domain","type":"text","value":"openvibe.blog"},{"key":"port","label":"Port","type":"number","value":4810},{"key":"runtime","label":"Runtime","type":"text","value":"Node 22, Express 4, PostgreSQL 18 and Valkey 9"},{"key":"status","label":"Status","type":"text","value":"alpha"},{"key":"license","label":"License","type":"text","value":"AGPL-3.0"}],"citations":[{"url":"https://github.com/OpenVibers/OpenVibe.Blog/blob/b7167827834389bd2a6e4d580fb7edd16992e7f9/README.md","title":"OpenVibe.Blog README (commit b716782)","source_item_id":null,"retrieved_at":"2026-10-14T23:30:00.000Z","quote":"The official OpenVibe blog and a blog for every member","license_note":null},{"url":"https://github.com/OpenVibers/OpenVibe.Blog/blob/b7167827834389bd2a6e4d580fb7edd16992e7f9/STATUS.json","title":"OpenVibe.Blog STATUS.json (commit b716782)","source_item_id":null,"retrieved_at":"2026-10-14T23:30:00.000Z","quote":"Public at https://openvibe.blog since 2026-09-23","license_note":null}],"attachments":[],"links":[{"space":"openvibe","slug":"openvibe-community"},{"space":"openvibe","slug":"openvibe-events"},{"space":"openvibe","slug":"openvibe-media"},{"space":"openvibe","slug":"openvibe-network"},{"space":"openvibe","slug":"openvibe-search"}],"indexability":{"indexable":false,"reasons":["ai_generated_unreviewed"]}}