Blog #11

Open
opened 2026-04-14 20:18:37 +00:00 by myxelium · 0 comments
Owner

User Story

As a server member,
I want to use a server-scoped blog module/plugin that allows me to create, manage, discover, follow, and share personal blog content within a server,
so that I can publish persistent content, keep up with others, and bring blog discussions into channels without breaking server isolation or permissions.


Acceptance Criteria

Module Scope & Isolation

  • The blog functionality is implemented as a modular plugin that can be enabled or disabled per server
  • All blog data (posts, follows, bookmarks, metadata) is strictly scoped to a single server
  • No blog content, relationships, or state is shared across servers
  • The module operates independently and does not interfere with other modules

Personal Blog Management

  • Each server member has a personal blog within that server
  • Users can:
    • Create new blog posts
    • Edit their own posts
    • Delete their own posts
  • Blog posts include:
    • Text content
    • Timestamps
  • Blog content:
    • Persists across sessions
    • Updates in real time for other online users
  • Permissions ensure:
    • Users can only manage their own blog content

Blog Discovery, Following & Navigation

  • Users can:
    • View any other member’s blog within the same server
    • Follow other users’ blogs
    • Bookmark blogs for quick access
  • The system provides awareness of new content through:
    • “New post” indicators in the member list (right-side UI)
    • Unread indicators for followed or bookmarked blogs
  • Followed/bookmarked blogs:
    • Appear as quick-access entries in the left-side navigation
  • Users can:
    • Unfollow blogs
    • Remove bookmarks at any time
  • Follow/bookmark state:
    • Persists across sessions
  • Navigation supports:
    • Discovery via member list
    • Repeat access via bookmarks/navigation

Sharing Blog Content to Channels

  • Users can share a blog post into a text channel within the same server
  • Shared posts include:
    • Original author’s name
    • A preview of the blog post
    • A clear indication that the content originates from a blog
    • The identity of the user who shared it
  • Users can choose which channel to share to, based on their permissions
  • Shared posts:
    • Appear as a message or embedded card in the channel
    • Allow others to open the original blog post
  • Permissions ensure:
    • Users can only share into channels they have access to
    • Only server members can access the original blog content

Real-Time Behavior & Persistence

  • Blog updates, follow states, bookmarks, and shared content:
    • Update in real time across all connected users
    • Persist across sessions
  • Indicators (new/unread) update consistently and accurately

Security & Permissions

  • Only server members can:
    • View blogs within that server
    • Interact with blog content
  • All actions respect server-level and channel-level permissions
  • Unauthorized actions (editing others’ posts, sharing to restricted channels, etc.) are prevented

Definition of Done

  • Users can create, edit, delete, and view blog posts without errors
  • Blog data persists correctly and remains isolated per server
  • Follow and bookmark functionality works reliably and persists
  • Discovery and navigation flows are clear and functional
  • Sharing blog posts to channels works with correct metadata and permissions
  • Real-time updates function correctly across multiple users
  • All permission rules are enforced consistently
  • Feature is tested across multiple users, servers, and permission scenarios
  • Module can be enabled/disabled per server without affecting other modules
### User Story > As a server member, > I want to use a server-scoped blog module/plugin that allows me to create, manage, discover, follow, and share personal blog content within a server, > so that I can publish persistent content, keep up with others, and bring blog discussions into channels without breaking server isolation or permissions. --- ### Acceptance Criteria #### Module Scope & Isolation * The blog functionality is implemented as a modular plugin that can be enabled or disabled per server * All blog data (posts, follows, bookmarks, metadata) is strictly scoped to a single server * No blog content, relationships, or state is shared across servers * The module operates independently and does not interfere with other modules #### Personal Blog Management * Each server member has a personal blog within that server * Users can: * Create new blog posts * Edit their own posts * Delete their own posts * Blog posts include: * Text content * Timestamps * Blog content: * Persists across sessions * Updates in real time for other online users * Permissions ensure: * Users can only manage their own blog content #### Blog Discovery, Following & Navigation * Users can: * View any other member’s blog within the same server * Follow other users’ blogs * Bookmark blogs for quick access * The system provides awareness of new content through: * “New post” indicators in the member list (right-side UI) * Unread indicators for followed or bookmarked blogs * Followed/bookmarked blogs: * Appear as quick-access entries in the left-side navigation * Users can: * Unfollow blogs * Remove bookmarks at any time * Follow/bookmark state: * Persists across sessions * Navigation supports: * Discovery via member list * Repeat access via bookmarks/navigation #### Sharing Blog Content to Channels * Users can share a blog post into a text channel within the same server * Shared posts include: * Original author’s name * A preview of the blog post * A clear indication that the content originates from a blog * The identity of the user who shared it * Users can choose which channel to share to, based on their permissions * Shared posts: * Appear as a message or embedded card in the channel * Allow others to open the original blog post * Permissions ensure: * Users can only share into channels they have access to * Only server members can access the original blog content #### Real-Time Behavior & Persistence * Blog updates, follow states, bookmarks, and shared content: * Update in real time across all connected users * Persist across sessions * Indicators (new/unread) update consistently and accurately #### Security & Permissions * Only server members can: * View blogs within that server * Interact with blog content * All actions respect server-level and channel-level permissions * Unauthorized actions (editing others’ posts, sharing to restricted channels, etc.) are prevented --- ### Definition of Done * Users can create, edit, delete, and view blog posts without errors * Blog data persists correctly and remains isolated per server * Follow and bookmark functionality works reliably and persists * Discovery and navigation flows are clear and functional * Sharing blog posts to channels works with correct metadata and permissions * Real-time updates function correctly across multiple users * All permission rules are enforced consistently * Feature is tested across multiple users, servers, and permission scenarios * Module can be enabled/disabled per server without affecting other modules
myxelium added this to the Modules project 2026-04-14 20:18:37 +00:00
myxelium moved this to To Do in Modules on 2026-04-29 17:42:30 +00:00
myxelium moved this to In Progress in Modules on 2026-04-29 17:42:31 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: myxelium/Toju#11