Fedify is a comprehensive, modular TypeScript framework for building ActivityPub-powered federated servers (the Fediverse). It provides a rich set of abstractions: a central `Federation` class that orchestrates actor dispatchers, inbox/outbox listeners, WebFinger, HTTP signatures, and background tasks. The repository is a monorepo containing ~35+ packages under the `@fedify/*` scope, including integration adapters for popular web frameworks (Express, Hono, Fastify, Koa, Next.js, Nuxt, SvelteKit, SolidStart, Astro, Fresh, NestJS, Elysia, H3), storage backends (PostgreSQL, SQLite, MySQL, Redis, Deno KV, Cloudflare Workers KV, PGlite), message queues (AMQP, Redis, SQLite, MySQL, in-process, Cloudflare Workers Queues, Netlify Async Workloads), and developer tooling (CLI, project scaffolding, linting rules, debug dashboard, benchmarking). The architecture is highly modular with clean interface contracts (e.g., `KvStore`, `MessageQueue`) that multiple backends implement consistently, enabling users to swap infrastructure without changing application code. The core focuses on ActivityPub protocol compliance, including JSON-LD handling, HTTP Message Signatures (RFC 9421, Cavage), Linked Data Signatures, and Object Integrity Proofs. The codebase is well-tested with unit tests, integration tests, smoke tests against real Mastodon/Sharkey instances, and a dedicated benchmark suite.
Activitypub-federation is a high-level Rust framework for implementing ActivityPub federation. It provides abstractions for handling incoming and outgoing activities, fetching remote objects, managing HTTP signatures, and integrating with web frameworks like Actix-web and Axum. The library uses a trait-based design where users define their own data structures and implement Object, Activity, and Actor traits to plug into the federation system. It includes sophisticated features like an activity queue with exponential backoff retry logic (1 minute, 1 hour, 2.5 days), automatic caching of remote objects, and comprehensive security measures including HTTP signature verification.
Mastodon is a full-stack, federated social network server implementing the ActivityPub protocol. It provides a production-grade Rails API backend with a React/Redux frontend, real-time streaming via Node.js, and extensive background job processing with Sidekiq. The system supports user timelines, media attachments, content moderation, admin dashboards, OAuth authentication, and federation with other ActivityPub-compatible services. The codebase is large and actively maintained, with a clear separation of concerns across controllers, services, serializers, workers, and frontend components. It includes advanced features such as trending content, annual user reports, FASP data sharing, and a comprehensive admin interface. While the architecture is well-structured, there are signs of technical drift including mixed frontend patterns (legacy JSX vs modern TypeScript/Redux Toolkit), placeholder Ruby/Node version numbers, and some deprecated API endpoints.
Nextcloud Social is a federated social networking application implemented as a Nextcloud app. It allows each Nextcloud user to become an ActivityPub actor (Person), enabling posting, following, liking, boosting, replying, and direct messaging across the Fediverse. The system is fully compatible with the Mastodon client API, supporting timelines, lists, filters, scheduled posts, polls, stories, collections, trends, and moderation features. The backend is written in PHP, structured with controllers, services, database request builders, and ActivityPub model classes. The frontend is built with Vue 3, Pinia, and Vue Router, providing a responsive single-page application for timelines, profiles, and settings. The app integrates deeply with Nextcloud's dashboard, notifications, search, user migration, and admin settings. Federation is handled via ActivityPub protocols with HTTP signature verification, outbound delivery queues, and WebFinger discovery. The codebase is well-tested with both PHPUnit and Vitest suites, covering unit, integration, and federation wire compatibility tests.
Ibis is a federated wiki platform built entirely in Rust, enabling users to create, edit, and discuss articles across ActivityPub-enabled instances. The application follows a full-stack architecture with a Leptos-based frontend (compiled to WASM for client-side hydration) and an Axum backend serving both the API and server-side rendering. PostgreSQL is used as the database via Diesel ORM, and federation is implemented using the `activitypub-federation` crate, allowing articles, edits, comments, and user profiles to be synchronized between independent instances. The codebase is organized as a Cargo workspace with separate crates for backend, frontend, federation logic, database access, API client, markdown rendering, and reusable UI components. Key features include markdown-based article editing with custom extensions (LaTeX, table of contents, article links), edit conflict resolution via three-way merge, user authentication (JWT, OAuth, email verification), in-app and email notifications, and Wikipedia article import. The frontend uses Tailwind CSS with DaisyUI components and supports internationalization via `leptos-fluent`. Ibis demonstrates strong software engineering practices: modular crate structure, comprehensive integration tests with multi-instance federation scenarios, CI pipeline with formatting and linting, and Docker-based deployment. While the codebase is actively maintained and well-architected, it contains some production `expect` calls and relies on beta versions of key dependencies, which introduces minor risk. Overall, it is a polished, production-ready federated application with reusable patterns in frontend components, database abstractions, and ActivityPub object handling.