Posts & Editor
Posts are the primary content type on the platform. They are published to communities or on a user's personal page.
Creating a Post
The create post button is available in the site header and on any community page. Posts open in the block editor.
Block Editor (Editor.js)
The editor is built on Editor.js and supports:
| Block type | Purpose |
|---|---|
| Text (paragraph) | Main text content |
| Heading | H2, H3, H4 |
| Image | Upload or insert URL |
| Quote | Highlighted quote |
| Delimiter | Horizontal divider |
| Poll / Quiz | Interactive poll with answer options |
| Embed | YouTube, Vimeo, and others |
| Code | Code block |
Title and Intro
Each post has:
- Title — displayed prominently at the top
- Intro — short description for the feed preview card
- Body (blocks) — main content in JSON format (stored in the
blocksfield)
Cover Image
A cover image can be uploaded — it is displayed in the feed card.
Draft Autosave
The editor automatically saves drafts. While is_publish = false, the post is not visible to others. Closing the browser tab won't lose data.
Version History
Every save creates a version. The version list is accessible via the Version History button in the editor. Any previous version can be restored.
Versions are stored in the post_version_histories table.
Publication Settings
When publishing:
| Setting | Purpose |
|---|---|
| Community | Which community to publish to |
| Tags | Attach tags (#hashtag in editor or separate field) |
| Comments | Allow or disable comments |
| 18+ | Mark post as adult content |
| Editorial | Add an "editorial" label |
Polls (Quiz)
The poll block adds interactive voting directly in the post. Users select one option; results are displayed in real time.
Votes are stored in a separate table linked to the post.
Tags
Tags are added via #hashtag in the editor (with autocomplete) or through a dedicated field. A tag is created automatically if it doesn't exist yet.
Tag page: /tag/{slug} — a feed of all posts with that tag.
Post Reactions
Users react to posts via POST /reaction. Available reactions are configured in Admin Panel → Reactions (/admin-panel/like-reactions).
Post Management
For the Author
- Edit — modify any block, title, settings
- Unpublish — set
is_publish = false - Delete — delete the post (soft delete)
- Pin — pin the post in the community or profile
For Administrators
Admin Panel → Posts (/admin-panel/posts):
- Search and filter posts
- Unpublish
- Block
- Delete
Post Statuses
Post state is determined by the boolean fields is_publish and is_block:
| is_publish | is_block | State |
|---|---|---|
false | false | Draft, not visible to others |
true | false | Published, visible to all |
true | true | Blocked by administrator |
false | true | Blocked (unpublished) |
Feeds
Posts appear in multiple feeds:
| Feed | URL | Description |
|---|---|---|
| Personal | /my | Posts from followed communities and authors (requires login) |
| Popular | /popular | By rating and views (default feed at /) |
| New | /new | Chronologically newest posts |
| Editorial | /editorial | Posts with the editorial label |
| News | /news | Aggregated news |
| By tag | /tag/{name} | Posts with a specific tag |
Views & Rating
Post views are tracked in the post_showings table. Post rating is calculated based on reactions, views, and comments. The formula is configurable via Admin Panel → Rating (/admin-panel/settings/rating).
Reposts
A user can repost another user's post — it appears on their profile with a link to the original.
Post SEO
For each post the platform automatically generates:
<title>based on the heading- OpenGraph meta with the post cover
- JSON-LD
Articlemarkup - Inclusion in
sitemap.xml