Orbit Docs
Get Started
Deployment
Architecture
Architecture Overview
Shared Packages
Database
Database Schema
Triggers & Functions
Features
Spaces
Posts
Comments
Follows
Notifications
Feeds
Roles
Roles & Permissions
Api
Admin Api
Users
Roles
Site Configuration
Content Moderation — Posts
Content Moderation — Spaces
Hub Api
Spaces
Posts
Comments
Reactions
Memberships
Follows
Feeds
Uploads
Views
Other Api
Profile
Public Profiles
Notifications
Leaderboard
About
OG Metadata
User Search
Sponsored
Aveiro
aveiro.app
TrademarkTrademark
Ctrl k
Search...
Sign up
Orbit Docs
Get Started
Deployment
Architecture
Architecture Overview
Shared Packages
Database
Database Schema
Triggers & Functions
Features
Spaces
Posts
Comments
Follows
Notifications
Feeds
Roles
Roles & Permissions
Api
Admin Api
Users
Roles
Site Configuration
Content Moderation — Posts
Content Moderation — Spaces
Hub Api
Spaces
Posts
Comments
Reactions
Memberships
Follows
Feeds
Uploads
Views
Other Api
Profile
Public Profiles
Notifications
Leaderboard
About
OG Metadata
User Search
Sponsored
Aveiro
aveiro.app
Sponsored
Aveiro
aveiro.app
Sponsored
Aveiro
aveiro.app
TrademarkTrademark
OrbitSupa Social by Dopler
© Dopler. All rights reserved.
Built with Aveiro

Posts

Creating, editing, and moderating posts with rich attachment support.
Updated 11d ago
Spaces
Comments
Posts are the core content type in Supa Hub. Every post belongs to a space and has an author.

Creating a Post

Requires roleRank >= 50 (member+). Required fields:
  • Title — 5–200 characters
  • Space — Must select a target space
  • Author — Automatically set from the current user
Optional fields:
  • Content — Up to 2,500 characters
  • Attachment — One of four types (see below)

Attachment Types

Type
Description
Validation
imageSingle imageMust be HTTPS URL
carouselMultiple images1–10 HTTPS URLs
youtubeYouTube video embedMust match YouTube URL pattern
linkExternal link with OG previewMust be a valid HTTP(S) URL
Aspect ratios for images and carousels: 16/9, 1/1, or 3/4. Paste detection: The post editor automatically detects pasted images, YouTube URLs, and generic links, converting them into the appropriate attachment type.

Post Slugs

Slugs are auto-generated from the title by a database trigger:
  • Title is lowercased and stripped of accents via unaccent
  • Non-alphanumeric characters are replaced with dashes
  • A 7-character hash suffix (derived from the post UUID) is appended
  • Collision detection with automatic suffix extension
Example: "My First Post" → my-first-post-a3b4c5d Slugs are case-insensitively unique across all posts.

Post Statuses

Status
Visibility
Who can set it
visibleEveryoneDefault
hiddenAuthor + space mods + global modsSpace mods, global mods
suspendedGlobal mods onlyGlobal mods only
deletedGlobal mods onlyAuthor, space mods, global mods

Moderation Actions

  • Pin/Unpin — Pinned posts appear at the top of the space feed. Space mods and global mods only.
  • Hide/Unhide — Hidden posts are removed from feeds but accessible by direct URL to authorized users.
  • Suspend — Global moderators only. Removes from all feeds.
  • Delete — Soft-delete. Post remains in the database but is hidden from all non-admin views.
  • Open Graph Images

    Posts automatically generate Open Graph images for social sharing:
    • Image posts — Uses the attached image
    • YouTube posts — Uses the YouTube thumbnail
    • Carousel posts — Uses the first image
    • Link posts — Uses the link's favicon
    • Text-only posts — Generates a dynamic OG image via /api/og/post showing the title, space name, and author

    Views

    Post views are tracked via POST /api/hub/views. The view count is stored directly on the hub_posts.views column. View milestones (50, 100, 250, 500, 1000+) trigger notifications to the post author.

    Reactions

    Users can react to posts with emoji reactions. Each user can pick one reaction per post from a configurable set of emojis (default: 👍 ❤️ 😂 😮 😢). Clicking a different emoji switches the reaction; clicking the same one removes it. Admins can customize the available emojis via Admin → Site Configuration → Post reactions. Reaction milestones (5, 25, 50, 100+) trigger author notifications.

    Follower Notifications

    When a user creates a new post, all of their followers are automatically notified via a database trigger (hub_follower_post_notify). The notification includes the post title and links directly to the post.