Overview
Discover what makes Misskey powerful
Misskey is a federated, open‑source social‑networking platform built for developers who need a flexible, self‑hosted solution. At its core it implements the ActivityPub protocol to interoperate with other Mastodon‑compatible services, while providing a rich API surface that lets you build custom clients, bots, and integrations. The application is written entirely in TypeScript/Node.js on the backend, with a modern React‑based frontend that communicates via GraphQL and REST endpoints. Data is persisted in PostgreSQL, with Redis used for caching, job queues, and rate‑limiting.
Backend
Frontend
Database
Federation
Overview
Misskey is a federated, open‑source social‑networking platform built for developers who need a flexible, self‑hosted solution. At its core it implements the ActivityPub protocol to interoperate with other Mastodon‑compatible services, while providing a rich API surface that lets you build custom clients, bots, and integrations. The application is written entirely in TypeScript/Node.js on the backend, with a modern React‑based frontend that communicates via GraphQL and REST endpoints. Data is persisted in PostgreSQL, with Redis used for caching, job queues, and rate‑limiting.
Technical Stack & Architecture
- Backend: Node.js (v18+) + TypeScript, Express‑style router with custom middleware. The codebase is modularized into “services” (e.g.,
UserService,NoteService) that expose both internal APIs and external GraphQL resolvers. - Frontend: React + Vite, leveraging TypeScript for type safety. The UI is built as a single‑page application that consumes the GraphQL API and WebSocket events for real‑time updates.
- Database: PostgreSQL is the primary datastore, with a well‑structured schema that supports sharding via logical replication for large deployments. Redis is used as an in‑memory cache and task queue (BullMQ).
- Federation: ActivityPub is fully implemented; Misskey can act as both a client and server, handling inbox/outbox logic, signature verification, and object serialization.
- Containerization: Official Docker images are available on Docker Hub. The repository includes a
docker-compose.ymlthat spins up all required services (API, worker, Redis, PostgreSQL) in a single command.
Core Capabilities & APIs
- GraphQL: A comprehensive schema that exposes user profiles, notes, reactions, notifications, and federation streams. Supports subscriptions for live updates.
- REST: Legacy endpoints for backward compatibility, including OAuth2 support for third‑party clients.
- Webhooks: Publishers can subscribe to events (e.g., new note, user follow) via HTTP callbacks.
- Plugin System: Developers can write plugins in TypeScript that hook into lifecycle events (e.g.,
onNoteCreated) and expose new routes or modify federation behavior. - CLI Tools: Administrative commands for database migrations, cache clearing, and instance statistics.
Deployment & Infrastructure
Misskey is designed to run in a containerized environment but can also be installed on bare metal. The Docker image exposes ports for HTTP (80/443) and a separate worker port for background jobs. For scaling, the architecture supports:
- Horizontal Scaling: Multiple API instances behind a load balancer; PostgreSQL can be replicated, and Redis supports clustering.
- Background Workers: Separate containers or pods handle long‑running tasks such as reblog propagation, email notifications, and cache invalidation.
- Observability: Integrated Sentry for error tracking, Prometheus metrics, and Grafana dashboards are available out of the box.
Integration & Extensibility
- OAuth2: Full support for third‑party authentication providers (GitHub, Google) and custom OAuth clients.
- Federation Customization: Hooks to modify outgoing ActivityPub objects, block certain actors, or implement custom moderation policies.
- Event Bus: An internal pub/sub system allows plugins to listen for and react to federation events without touching core code.
- Internationalization: Localization files are maintained in Crowdin, enabling developers to add new languages easily.
Developer Experience
- Documentation: The project hosts extensive docs covering API reference, deployment guides, and plugin development. The
docsfolder contains Markdown files that are automatically rendered on the website. - Community: Active Discord and GitHub discussions provide quick support. The codebase follows standard TypeScript conventions, making onboarding straightforward.
- Testing: Codecov and Chromatic integration ensure high test coverage and visual regression testing, which is valuable for plugin authors.
Use Cases
- Self‑Hosted Social Networks: Organizations can run a private, federated community with full control over data.
- Custom Client Development: Build lightweight mobile or desktop clients that consume the GraphQL API and subscribe to real‑time updates.
- Bot Ecosystem: Deploy automated services (e.g., content moderation bots, scheduled posts) as background workers or plugins.
- Federated Chat: Use Misskey’s note system as a foundation for real‑time chat applications with federation support.
Advantages Over Alternatives
| Feature | Misskey | Mastodon / Others |
|---|---|---|
| TypeScript | Native TS backend & frontend | Mostly Ruby/Python |
| GraphQL API | First‑class, typed schema | Limited or REST only |
| Plugin Architecture | Built‑in hooks & CLI | Often requires fork |
| ActivityPub Flexibility | Customizable serialization | Standard implementation |
| Container Support | Official Docker + Compose | Varies by project |
Developers choose Misskey when they need a modern, type‑safe stack with robust federation and an extensible plugin system—all while staying within the open‑source ecosystem.
Open SourceReady to get started?
Join the community and start self-hosting Misskey today
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Novu
Unified notification platform for multi‑channel delivery
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
Weekly Views
Repository Health
Information
Explore More Apps
DOCAT
Versioned self‑hosted docs, simple and fast
Homepage
Fast, secure self‑hosted dashboard for over 100 services
Task Keeper
Powerful list editor for power users
Kestra
Event‑driven, declarative workflow orchestrator
MiroTalk SFU
Free, browser‑based real‑time video conferences
Plausible Analytics
Simple, privacy‑friendly web analytics