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
| Component |
Technology |
| Backend |
PHP / Laravel |
| Frontend |
Vue 3 + TypeScript |
| CSS |
Tailwind CSS |
| Build tool |
Vite |
| Mobile app |
React Native (Expo) |
| Deployment |
Docker / Docker Compose |
| CDN |
Fastly (Fast Forward program) |
| License |
AGPL-3.0 |
Repositories
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
| Approach |
Used by |
Pros |
Cons |
Note + video attachment |
Loops |
Universal compatibility; shows up in all timelines |
Less video-specific metadata |
Video object |
PeerTube |
Rich 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
| Feature |
Status |
| Follow any ActivityPub user |
Working |
| Be followed from Mastodon/Pixelfed/etc |
Working |
| Cross-platform comments |
Working |
| Cross-platform likes |
Working |
| Share/Announce to followers |
Working |
| Federated notifications |
Working |
| Multi-instance video distribution |
Working |
| Account migration with follower transfer |
Planned |
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)
| Quarter |
Features |
| Q1 |
Advanced moderation, push notifications, multi-account, stitches |
| Q2 |
Creator analytics, AR filters, collaborative moderation, accessibility |
| Q3 |
Embeddable player, account migration, live streaming, video editor |
| Q4 |
Challenges, monetization options |
5. Loops vs PeerTube
| Aspect |
Loops |
PeerTube |
| Focus |
Short-form vertical video (TikTok/Vine) |
Long-form video (YouTube) |
| Video length |
Up to 3 minutes |
No practical limit |
| UI |
Mobile-first vertical swipe |
Web-first video library |
| Discovery |
For You algorithmic feed + hashtags |
Federated search, channels |
| AP object type |
Note with video attachments |
Video |
| Tech stack |
Laravel (PHP) + Vue.js |
Node.js + Angular |
| P2P delivery |
No |
Yes (WebRTC) |
| Live streaming |
Planned Q3 2026 |
Yes |
| Maturity |
Beta (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
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.
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.
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.
Like and Announce work normally — standard Like and Announce
activities targeting a loop's Note ID work as expected.
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.
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.
1---2name: kb-loops3description: Background knowledge about Loops, the federated short-form video sharing platform (TikTok/Vine alternative for the Fediverse). Covers the key federation design decision of using Note objects with video attachments instead of Video objects for maximum cross-platform compatibility, the instance actor and shared inbox implementation, HTTP Signatures with SHA-256 digests, WebFinger discovery, the graph-walking comment validator (rejects top-level Notes, creates Comment and CommentReply objects), cross-platform interactions (follow, comment, like, Announce across Mastodon/Pixelfed/PeerTube), the tech stack (Laravel/PHP, Vue 3, Tailwind, Expo/React Native mobile), features (vertical swipe feed, For You algorithm, duets, 3-minute videos, playlists, threaded comments), the relationship to Pixelfed and creator Daniel Supernault, federation beta status, and comparison with PeerTube (Note vs Video object types, short-form vs long-form). Load when the user asks about Loops; how short-form video federates in the Fediverse4---5
6# Loops — Complete Reference
7
8## Overview
9
10Loops is a federated, open-source short-form video sharing platform —
11the Fediverse equivalent of TikTok/Vine. Its tagline is "Short videos.
12Your community. Your rules." Created by **Daniel Supernault** (aka
13Dansup), the Canadian developer also behind **Pixelfed** (the Fediverse
14Instagram alternative). Branded as "Loops by Pixelfed," it is a separate
15platform under the Pixelfed project umbrella.
16
17Built on **Laravel (PHP), Vue 3, and Tailwind CSS** with a custom
18ActivityPub implementation. Licensed AGPL-3.0. ActivityPub federation
19entered beta on October 14, 2025. As of March 2026, the latest release
20is v1.0.0-beta.10.
21
22---
23
24## 1. Technology Stack
25
26| Component | Technology |
27|-----------|-----------|
28| Backend | PHP / Laravel |
29| Frontend | Vue 3 + TypeScript |
30| CSS | Tailwind CSS |
31| Build tool | Vite |
32| Mobile app | React Native (Expo) |
33| Deployment | Docker / Docker Compose |
34| CDN | Fastly (Fast Forward program) |
35| License | AGPL-3.0 |
36
37### Repositories
38
39| Repository | URL |
40|-----------|-----|
41| Server | https://github.com/joinloops/loops-server |
42| Mobile app | https://github.com/joinloops/loops-expo |
43| API docs | https://docs.joinloops.org/ |
44
45---
46
47## 2. The Key Design Decision: Note, Not Video
48
49The most important technical decision in Loops' federation: **Loops uses
50`Note` objects with video attachments instead of `Video` objects** for
51maximum cross-platform compatibility.
52
53From Daniel Supernault:
54
55> "The fediverse is optimized for notes. Mastodon, Pleroma, Misskey —
56> they all handle notes beautifully. By wrapping video content as notes
57> with video attachments, loops federate seamlessly across the entire
58> fediverse without requiring special handling."
59
60> "This pragmatic approach means loops show up properly everywhere, not
61> just on platforms that specifically understand video objects. It's about
62> meeting the fediverse where it is, not where we wish it would be."
63
64### What Gets Federated
65
66When a loop is posted, the federation sends:
67
68- A `Note` object with rich video attachments
69- Multiple video encodings for different devices (where supported)
70- Generated thumbnails and preview images (where supported)
71- Captions and content warnings
72- All standard interaction capabilities (Like, Announce, Reply)
73
74### Why Not Video Objects?
75
76PeerTube uses `Video` objects, which provide richer video-specific
77metadata. However, many Fediverse platforms (especially microblogging
78platforms like Mastodon, Misskey, Pleroma) either don't handle `Video`
79objects at all or display them with degraded UX. By using `Note` — the
80type every Fediverse platform handles natively — Loops videos appear
81correctly in timelines across the entire Fediverse without special
82handling.
83
84### Comparison
85
86| Approach | Used by | Pros | Cons |
87|----------|---------|------|------|
88| `Note` + video attachment | Loops | Universal compatibility; shows up in all timelines | Less video-specific metadata |
89| `Video` object | PeerTube | Rich metadata (duration, resolution, chapters) | Many platforms ignore or poorly display `Video` type |
90
91---
92
93## 3. Federation Implementation
94
95### Instance Actor and Shared Inbox
96
97Every Loops instance has a server-level actor that handles:
98- Server-to-server authentication
99- Instance metadata exchange
100- Account deletions and relay subscriptions
101
102A **shared inbox** is implemented for optimized delivery — remote
103instances send activities once to the shared inbox rather than per-
104follower, reducing network overhead as instances grow.
105
106### HTTP Signatures
107
108Request signing with:
109- SHA-256 digests
110- Date header parsing (handling format variations across servers)
111- Non-standard port number handling
112- Every federated request is cryptographically signed
113
114### WebFinger Discovery
115
116Standard WebFinger discovery for both individual users and the instance
117actor, enabling seamless follow operations across the Fediverse.
118
119### Federation-Aware Comments
120
121Loops implements a **graph-walking validator** that traces reply chains:
122
123- **Top-level `Note` objects from remote servers are rejected** — Loops
124 is for videos only, not microblog posts
125- Replies to videos create `Comment` objects
126- Replies to comments become `CommentReply` objects with correct parent
127 relationships
128- This enables nested conversations that work across platforms
129
130This validator is important for interoperability: when a Mastodon user
131replies to a loop, the reply is accepted as a Comment. But if a Mastodon
132user tries to create a top-level post that arrives at a Loops instance,
133it is rejected.
134
135### What Works in Federation Beta
136
137| Feature | Status |
138|---------|--------|
139| Follow any ActivityPub user | Working |
140| Be followed from Mastodon/Pixelfed/etc | Working |
141| Cross-platform comments | Working |
142| Cross-platform likes | Working |
143| Share/Announce to followers | Working |
144| Federated notifications | Working |
145| Multi-instance video distribution | Working |
146| Account migration with follower transfer | Planned |
147
148### Federation Configuration
149
150Federation is **opt-in** during beta for self-hosted instances:
151- Enable in instance settings
152- HTTPS required
153- Configure domain properly
154- Allocate storage for remote media caching
155- Documented in FEDERATION.md in the repository
156
157---
158
159## 4. Features
160
161### Available Now
162
163- Vertical swipe short-video feed
164- **Following feed** (chronological) and **For You feed** (algorithmic,
165 powered by engagement/hashtags/social graph)
166- Videos up to **3 minutes** (originally 30 seconds, extended over time)
167- In-app camera with multi-lens switching and caption editor
168- **Duets** (collaborative video creation)
169- Nested/threaded comments with @mentions across the Fediverse
170- Like, share, boost/repost
171- Hashtag browsing and trending topics
172- Profile and video search
173- Pinned videos (up to 3)
174- Playlists & Collections
175- Favourites (private bookmarks)
176- Sound library
177- Full ActivityPub federation (beta)
178- Native iOS and Android apps
179- Admin dashboard
180- Public API with OpenAPI documentation
181
182### Roadmap (2026)
183
184| Quarter | Features |
185|---------|----------|
186| Q1 | Advanced moderation, push notifications, multi-account, stitches |
187| Q2 | Creator analytics, AR filters, collaborative moderation, accessibility |
188| Q3 | Embeddable player, account migration, live streaming, video editor |
189| Q4 | Challenges, monetization options |
190
191---
192
193## 5. Loops vs PeerTube
194
195| Aspect | Loops | PeerTube |
196|--------|-------|----------|
197| Focus | Short-form vertical video (TikTok/Vine) | Long-form video (YouTube) |
198| Video length | Up to 3 minutes | No practical limit |
199| UI | Mobile-first vertical swipe | Web-first video library |
200| Discovery | For You algorithmic feed + hashtags | Federated search, channels |
201| AP object type | `Note` with video attachments | `Video` |
202| Tech stack | Laravel (PHP) + Vue.js | Node.js + Angular |
203| P2P delivery | No | Yes (WebRTC) |
204| Live streaming | Planned Q3 2026 | Yes |
205| Maturity | Beta (v1.0.0-beta.10) | Stable (v6+, since 2018) |
206
207Loops and PeerTube are complementary, not competing — they target
208fundamentally different video use cases. PeerTube is for long-form
209content hosting (channels, playlists, educational videos). Loops is for
210short-form social video (trends, creativity, casual sharing).
211
212---
213
214## 6. Interoperability Notes for Implementers
215
2161. **Loops videos arrive as `Note` objects** — if your software handles
217 `Note` with video attachments, Loops content will display correctly in
218 timelines. No special `Video` type handling needed.
219
2202. **Replying to a Loop** — send a standard `Note` reply with `inReplyTo`
221 pointing to the loop's `Note` ID. Loops will accept it as a Comment.
222
2233. **Top-level Notes are rejected** — Loops only accepts video content
224 for top-level posts. If a Mastodon user mentions a Loops user in a
225 standalone post (not a reply), Loops will not ingest it as a post.
226
2274. **Like and Announce work normally** — standard `Like` and `Announce`
228 activities targeting a loop's `Note` ID work as expected.
229
2305. **Video stays on origin server** — when a loop federates, remote
231 instances receive the `Note` metadata but the video file is served
232 from the original Loops instance. This reduces storage requirements
233 for remote instances but depends on the origin server's availability.
234
2356. **Multiple encodings** — Loops may include multiple video file
236 attachments (different resolutions/encodings) in the `Note` object.
237 Consumers should select the appropriate encoding for their display
238 context.
239
240---
241
242## 7. API
243
244Loops provides a full public REST API (OpenAPI spec v1.0.0):
245
246- OAuth authentication with 2FA support
247- Video upload and management
248- Duets
249- Playlists and collections
250- Explore/trending endpoints
251- For You feed with impression tracking
252- Full-text search
253- Privacy controls
254- 25+ language support
255- AI content detection flags
256- Alt text and content sensitivity marking
257
258Documentation: https://docs.joinloops.org/
259
260---
261
262## 8. Known Considerations
263
264- **Beta federation**: ActivityPub support is in beta (since October
265 2025). Some edge cases with remote platforms may still need work.
266- **Opt-in federation**: Self-hosted instances must explicitly enable
267 federation in settings during the beta period.
268- **Video bandwidth**: Short-form video demands significant bandwidth
269 and storage. Instance operators should plan for CDN/object storage
270 costs. Loops benefits from Fastly Fast Forward sponsorship for its
271 premiere instance.
272- **No monetization yet**: Creator monetization features are planned for
273 Q4 2026. This may affect creator adoption in the near term.
274- **Recommendation algorithm limitations**: The "For You" feed uses
275 engagement, hashtags, and social graph signals, but federated privacy
276 constraints limit the data available compared to centralized platforms
277 like TikTok.