Skip to main content

Posts

Posts are how members share content in spaces. Every post is cryptographically verified, creating a permanent record of who said what and when.

What is a Post?

A post is content created by a member in a space. Posts can be:

  • Standalone updates: Thoughts, announcements, links
  • Conversations: Posts with replies (comments)
  • Rich content: Text with images, attachments, styling

Each post belongs to a space and is created by an identity. All posts are versioned—you can see edit history for transparency.

Post Structure

Posts have:

  • Title: Optional heading
  • Body: The main content (Markdown supported)
  • Cover image: Optional featured image for the post
  • Attachments: Additional images or media
  • Author: The identity who created it
  • Created timestamp: When it was first posted
  • Edit history: Full cryptographic record of changes

All posts are cryptographically signed by the author's keys, creating verifiable attribution.

Creating Posts

When you create a post:

  1. Write your content (title, body, add images)
  2. Post it to the space
  3. System creates a cryptographic record
  4. Post appears to all space members

Posts appear in the space immediately. There's no approval process—if you're a member, you can post.

Editing Posts

You can edit your posts. Each edit creates a new version in the cryptographic history.

Edit window for comments: Comments have a 15-minute edit window. After that, they're locked to prevent changing the conversation retroactively. Posts can be edited anytime by the author.

Cryptographic edit history: All versions are preserved in the catalog system. The history is cryptographically verified, though not currently exposed through the public API.

This creates accountability—you can update your content, but you can't erase the past.

Deleting Posts

Deleting a post doesn't erase it entirely. The post structure remains (so replies don't break), but the content is cleared.

Deleted posts show as [deleted] with no author, title, or body. Engagement metrics (likes, reactions) are preserved so the conversation structure stays intact.

Comments

Comments are replies to posts. They're simpler than posts—focused on conversation.

Structure: Comments have a body and optional attachments. Unlike posts, comments don't have titles or cover images.

Flat threading: Comments are direct replies to posts. They don't support nested replies—all comments on a post exist at the same level.

Edit window: 15-minute window to fix typos or clarify. After that, comments are locked.

Deletion: Same as posts—structure remains, content is cleared.

Comments create conversations on posts. Like posts, they're cryptographically signed and support reactions and bookmarks.

Reactions

Reactions are quick responses to posts and comments. Two types:

Likes

Simple thumbs-up. Binary—you either like something or you don't. Liking is instant and can be toggled on/off.

Emoji Reactions

Express more nuance. Pick any emoji to react with. Multiple people can use the same emoji, creating aggregated reactions.

Aggregation: Reactions of the same emoji are grouped together with a count.

Limit: Up to 50 unique emoji reactions per post or comment (to prevent reaction spam).

Reactions are lightweight engagement. They don't create notifications or threads—just a way to show you saw something and had a response.

Bookmarks

Bookmarks are personal save-for-later functionality. Bookmark a post to revisit it later.

Personal: Only you see your bookmarks. They're not visible to others.

Cross-space: You can bookmark posts from any space you're in and access them all in one place.

Instant: Bookmarking is instant. Toggle on/off anytime.

Bookmarks are for curating content that matters to you without creating public signals.

Drafts

Drafts let you work on posts before publishing. Two types:

New Post Drafts

Create a draft for a brand new post. Work on it over time, save progress (autosave supported), and publish when ready. Drafts are private to you.

Edit Drafts

When you edit an existing post, you can save your changes as a draft before publishing. This lets you make substantial edits without immediately changing the live post. Only one edit draft per post—creating a new edit draft replaces any existing one.

Publishing: When you publish a draft (either type), it creates the post or updates the existing one and removes the draft.

Draft indicators: The API returns pendingDraft info on posts you created, so UIs can show "you have unsaved edits."

Pinning

Space admins can pin posts to keep them at the top of the feed. Pinned posts appear first, ordered by when they were pinned.

Admin-only: Only space admins can pin/unpin. Regular members can't.

Filtering: The API allows filtering to show only pinned posts or exclude them entirely.

Pinning creates lightweight curation—highlight important announcements, rules, or evergreen content without algorithmic amplification.

Engagement Metrics

Each post and comment tracks:

  • Like count: Number of likes
  • Reaction counts: Number of each emoji reaction
  • Comment count: Number of replies
  • Bookmark count: How many people bookmarked it (visible to everyone)

These metrics are public to space members. They create light social proof without being algorithmically amplified.

Visibility

Posts are only visible to space members. If you're not in the space, you can't see its posts.

Within a space, all posts are visible to all members. There's no private posting or hidden content—membership is the access boundary.

This creates a shared context. Everyone in the space sees the same content.

Cryptographic Verification

All post content is backed by the catalog system. Each post operation is:

  • Signed by the author's keys
  • Content-addressed with a CID (content identifier)
  • Stored in an immutable operation log

This means you can verify:

  • Who created the post
  • When it was created
  • What changes were made
  • That the content hasn't been tampered with

The system provides both fast access (read from database) and cryptographic proof (verify against catalog).

Content Lifecycle

Creation: Write post, publish to space, cryptographic record created.

Engagement: Members react, comment, bookmark. Conversation develops.

Editing: Make changes within rules (15-min window for comments, anytime for posts). History preserved.

Deletion: Clear content but preserve structure. Thread integrity maintained.

Posts create the content layer of spaces. They're the primary way groups share information, have conversations, and build knowledge together.

Design Philosophy

Posts embody DFOS's approach to content:

Verified: Every post is cryptographically signed. Attribution is permanent.

Versioned: Edit history is preserved. You can update, but you can't rewrite history.

Space-scoped: Content lives in spaces, not on profiles. Group context over individual feeds.

Lightweight engagement: Reactions and bookmarks are low-friction ways to respond without derailing conversation.

Minimal algorithmic interference: No ranking by engagement, no "trending" manipulation. Chronological and member-curated.

This creates content that serves the group's needs rather than platform growth metrics.