Vibefed kb-loops

install
source · Clone the upstream repo
git clone https://github.com/reiver/vibefed
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/reiver/vibefed "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/kb-loops" ~/.claude/skills/reiver-vibefed-kb-loops && rm -rf "$T"
manifest: skills/kb-loops/SKILL.md
source content

Loops — Complete Reference

Overview

Loops is a federated, open-source short-form video sharing platform — the Fediverse equivalent of TikTok/Vine. Its tagline is "Short videos. Your community. Your rules." Created by Daniel Supernault (aka Dansup), the Canadian developer also behind Pixelfed (the Fediverse Instagram alternative). Branded as "Loops by Pixelfed," it is a separate platform under the Pixelfed project umbrella.

Built on Laravel (PHP), Vue 3, and Tailwind CSS with a custom ActivityPub implementation. Licensed AGPL-3.0. ActivityPub federation entered beta on October 14, 2025. As of March 2026, the latest release is v1.0.0-beta.10.


1. Technology Stack

ComponentTechnology
BackendPHP / Laravel
FrontendVue 3 + TypeScript
CSSTailwind CSS
Build toolVite
Mobile appReact Native (Expo)
DeploymentDocker / Docker Compose
CDNFastly (Fast Forward program)
LicenseAGPL-3.0

Repositories

RepositoryURL
Serverhttps://github.com/joinloops/loops-server
Mobile apphttps://github.com/joinloops/loops-expo
API docshttps://docs.joinloops.org/

2. The Key Design Decision: Note, Not Video

The most important technical decision in Loops' federation: Loops uses

Note
objects with video attachments instead of
Video
objects
for maximum cross-platform compatibility.

From Daniel Supernault:

"The fediverse is optimized for notes. Mastodon, Pleroma, Misskey — they all handle notes beautifully. By wrapping video content as notes with video attachments, loops federate seamlessly across the entire fediverse without requiring special handling."

"This pragmatic approach means loops show up properly everywhere, not just on platforms that specifically understand video objects. It's about meeting the fediverse where it is, not where we wish it would be."

What Gets Federated

When a loop is posted, the federation sends:

  • A
    Note
    object with rich video attachments
  • Multiple video encodings for different devices (where supported)
  • Generated thumbnails and preview images (where supported)
  • Captions and content warnings
  • All standard interaction capabilities (Like, Announce, Reply)

Why Not Video Objects?

PeerTube uses

Video
objects, which provide richer video-specific metadata. However, many Fediverse platforms (especially microblogging platforms like Mastodon, Misskey, Pleroma) either don't handle
Video
objects at all or display them with degraded UX. By using
Note
— the type every Fediverse platform handles natively — Loops videos appear correctly in timelines across the entire Fediverse without special handling.

Comparison

ApproachUsed byProsCons
Note
+ video attachment
LoopsUniversal compatibility; shows up in all timelinesLess video-specific metadata
Video
object
PeerTubeRich metadata (duration, resolution, chapters)Many platforms ignore or poorly display
Video
type

3. Federation Implementation

Instance Actor and Shared Inbox

Every Loops instance has a server-level actor that handles:

  • Server-to-server authentication
  • Instance metadata exchange
  • Account deletions and relay subscriptions

A shared inbox is implemented for optimized delivery — remote instances send activities once to the shared inbox rather than per- follower, reducing network overhead as instances grow.

HTTP Signatures

Request signing with:

  • SHA-256 digests
  • Date header parsing (handling format variations across servers)
  • Non-standard port number handling
  • Every federated request is cryptographically signed

WebFinger Discovery

Standard WebFinger discovery for both individual users and the instance actor, enabling seamless follow operations across the Fediverse.

Federation-Aware Comments

Loops implements a graph-walking validator that traces reply chains:

  • Top-level
    Note
    objects from remote servers are rejected
    — Loops is for videos only, not microblog posts
  • Replies to videos create
    Comment
    objects
  • Replies to comments become
    CommentReply
    objects with correct parent relationships
  • This enables nested conversations that work across platforms

This validator is important for interoperability: when a Mastodon user replies to a loop, the reply is accepted as a Comment. But if a Mastodon user tries to create a top-level post that arrives at a Loops instance, it is rejected.

What Works in Federation Beta

FeatureStatus
Follow any ActivityPub userWorking
Be followed from Mastodon/Pixelfed/etcWorking
Cross-platform commentsWorking
Cross-platform likesWorking
Share/Announce to followersWorking
Federated notificationsWorking
Multi-instance video distributionWorking
Account migration with follower transferPlanned

Federation Configuration

Federation is opt-in during beta for self-hosted instances:

  • Enable in instance settings
  • HTTPS required
  • Configure domain properly
  • Allocate storage for remote media caching
  • Documented in FEDERATION.md in the repository

4. Features

Available Now

  • Vertical swipe short-video feed
  • Following feed (chronological) and For You feed (algorithmic, powered by engagement/hashtags/social graph)
  • Videos up to 3 minutes (originally 30 seconds, extended over time)
  • In-app camera with multi-lens switching and caption editor
  • Duets (collaborative video creation)
  • Nested/threaded comments with @mentions across the Fediverse
  • Like, share, boost/repost
  • Hashtag browsing and trending topics
  • Profile and video search
  • Pinned videos (up to 3)
  • Playlists & Collections
  • Favourites (private bookmarks)
  • Sound library
  • Full ActivityPub federation (beta)
  • Native iOS and Android apps
  • Admin dashboard
  • Public API with OpenAPI documentation

Roadmap (2026)

QuarterFeatures
Q1Advanced moderation, push notifications, multi-account, stitches
Q2Creator analytics, AR filters, collaborative moderation, accessibility
Q3Embeddable player, account migration, live streaming, video editor
Q4Challenges, monetization options

5. Loops vs PeerTube

AspectLoopsPeerTube
FocusShort-form vertical video (TikTok/Vine)Long-form video (YouTube)
Video lengthUp to 3 minutesNo practical limit
UIMobile-first vertical swipeWeb-first video library
DiscoveryFor You algorithmic feed + hashtagsFederated search, channels
AP object type
Note
with video attachments
Video
Tech stackLaravel (PHP) + Vue.jsNode.js + Angular
P2P deliveryNoYes (WebRTC)
Live streamingPlanned Q3 2026Yes
MaturityBeta (v1.0.0-beta.10)Stable (v6+, since 2018)

Loops and PeerTube are complementary, not competing — they target fundamentally different video use cases. PeerTube is for long-form content hosting (channels, playlists, educational videos). Loops is for short-form social video (trends, creativity, casual sharing).


6. Interoperability Notes for Implementers

  1. Loops videos arrive as

    Note
    objects — if your software handles
    Note
    with video attachments, Loops content will display correctly in timelines. No special
    Video
    type handling needed.

  2. Replying to a Loop — send a standard

    Note
    reply with
    inReplyTo
    pointing to the loop's
    Note
    ID. Loops will accept it as a Comment.

  3. Top-level Notes are rejected — Loops only accepts video content for top-level posts. If a Mastodon user mentions a Loops user in a standalone post (not a reply), Loops will not ingest it as a post.

  4. Like and Announce work normally — standard

    Like
    and
    Announce
    activities targeting a loop's
    Note
    ID work as expected.

  5. Video stays on origin server — when a loop federates, remote instances receive the

    Note
    metadata but the video file is served from the original Loops instance. This reduces storage requirements for remote instances but depends on the origin server's availability.

  6. Multiple encodings — Loops may include multiple video file attachments (different resolutions/encodings) in the

    Note
    object. Consumers should select the appropriate encoding for their display context.


7. API

Loops provides a full public REST API (OpenAPI spec v1.0.0):

  • OAuth authentication with 2FA support
  • Video upload and management
  • Duets
  • Playlists and collections
  • Explore/trending endpoints
  • For You feed with impression tracking
  • Full-text search
  • Privacy controls
  • 25+ language support
  • AI content detection flags
  • Alt text and content sensitivity marking

Documentation: https://docs.joinloops.org/


8. Known Considerations

  • Beta federation: ActivityPub support is in beta (since October 2025). Some edge cases with remote platforms may still need work.
  • Opt-in federation: Self-hosted instances must explicitly enable federation in settings during the beta period.
  • Video bandwidth: Short-form video demands significant bandwidth and storage. Instance operators should plan for CDN/object storage costs. Loops benefits from Fastly Fast Forward sponsorship for its premiere instance.
  • No monetization yet: Creator monetization features are planned for Q4 2026. This may affect creator adoption in the near term.
  • Recommendation algorithm limitations: The "For You" feed uses engagement, hashtags, and social graph signals, but federated privacy constraints limit the data available compared to centralized platforms like TikTok.