> [!NOTE] > Want to learn more about Mastodon? > Click below to find out more in a video. Mastodon is a free, open-source social network server based on ActivityPub…
> [!NOTE]
> Want to learn more about Mastodon?
> Click below to find out more in a video.
Mastodon is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, and video. All Mastodon servers are interoperable as a federated network (users on one server can seamlessly communicate with users from another one, including non-Mastodon software that implements ActivityPub!)
Navigation
- View sponsorsFeatures
Part of the Fediverse. Based on open standards, with no vendor lock-in. - the network goes beyond just Mastodon; anything that implements ActivityPub is part of a broader social network known as the Fediverse. You can follow and interact with users on other servers (including those running different software), and they can follow you back.
Real-time, chronological timeline updates - updates of people you're following appear in real-time in the UI.
Media attachments - upload and view images and videos attached to the updates. Videos with no audio track are treated like animated GIFs; normal videos loop continuously.
Safety and moderation tools - Mastodon includes private posts, locked accounts, phrase filtering, muting, blocking, and many other features, along with a reporting and moderation system.
OAuth2 and a straightforward REST API - Mastodon acts as an OAuth2 provider, and third party apps can use the REST and Streaming APIs. This results in a rich app ecosystem with a variety of choices!
Deployment
Tech stack
- Ruby on Rails powers the REST API and other web pages.
- PostgreSQL is the main database.
- Redis and Sidekiq are used for caching and queueing.
- Node.js powers the streaming API.
- React.js and Redux are used for the dynamic parts of the interface.
- BrowserStack supports testing on real devices and browsers. (This project is tested with BrowserStack)
- Chromatic provides visual regression testing. (This project is tested with Chromatic)
Requirements
- Ruby 3.3+
- PostgreSQL 14+
- Redis 7.0+
- Node.js 22+
- FFmpeg 5.1+
Contributing
Mastodon is free, open-source software licensed under AGPLv3. We welcome contributions and help from anyone who wants to improve the project.
You should read the overall CONTRIBUTING guide, which covers our development processes.
You should also read and understand the CODE OF CONDUCT that enables us to maintain a welcoming and inclusive community. Collaboration begins with mutual respect and understanding.
You can learn about setting up a development environment in the [DEVELOPMENT](docs/DEVELOPMENT.md) documentation.
If you would like to help with translations 🌐 you can do so on Crowdin.
LICENSE
Copyright (c) 2016-2026 Eugen Rochko (+ [mastodon authors](AUTHORS.md))
Licensed under GNU Affero General Public License as stated in the [LICENSE](LICENSE):
text
Copyright (c) 2016-2026 Eugen Rochko & other Mastodon contributors
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
details.
You should have received a copy of the GNU Affero General Public License along
with this program. If not, see https://www.gnu.org/licenses/Members
-
mastodon ★ PINNED
Your self-hosted, globally interconnected microblogging community
Ruby ★ 50k 8h agoExplain → -
mastodon-ios ★ PINNED
Official iOS app for Mastodon
Swift ★ 2.3k 20h agoExplain → -
mastodon-android ★ PINNED
Official Android app for Mastodon
Java ★ 2.0k 20h agoExplain → -
joinmastodon ★ PINNED
The official Mastodon project homepage
TypeScript ★ 277 5h agoExplain → -
documentation ★ PINNED
Mastodon documentation
SCSS ★ 1.7k 4d agoExplain → -
chart ★ PINNED
Helm chart for Mastodon deployment in Kubernetes
Mustache ★ 197 3d agoExplain → -
mastodon-api
A ruby interface for the Mastodon API
Ruby ★ 181 2y agoExplain → -
mastodon-ansible
Ansible playbook for installing Mastodon
Jinja ★ 167 1y agoExplain → -
fediverse_auxiliary_service_provider_specifications
Specifications for Fediverse Auxiliary Service Providers
★ 108 1y agoExplain → -
mastodon-native ▣
Mobile Mastodon app using React Native
JavaScript ★ 100 9y agoExplain → -
flodgatt ▣
A blazingly fast drop-in replacement for the Mastodon streaming API server
Rust ★ 85 6y agoExplain → -
mastodon-bridge ▣
Moved to https://source.joinmastodon.org/mastodon/bridge
Ruby ★ 64 8y agoExplain → -
blog
The official Mastodon blog
HTML ★ 47 6d agoExplain → -
share
Share widget for Mastodon
TypeScript ★ 39 5d agoExplain → -
helm-charts
No description.
Go Template ★ 38 3d agoExplain → -
omniauth-mastodon
OmniAuth strategy for Mastodon
Ruby ★ 37 3y agoExplain → -
goldfinger ▣
A Webfinger utility for Ruby
Ruby ★ 32 5y agoExplain → -
ostatus2 ▣
A Ruby toolset for interacting with the OStatus suite of protocols
Ruby ★ 31 6y agoExplain → -
gamo
An image proxy and optimization server
Go ★ 28 3y agoExplain → -
featured_collections
Thinking about federated Starter Packs
★ 26 24d agoExplain → -
fediscoverer
No description.
Ruby ★ 22 14h agoExplain → -
webpush-apn-relay ⑂
Relay that forwards web push notifications to APNs.
Go ★ 22 1mo agoExplain → -
webpush-fcm-relay
Relay encrypted WebPush notifications to Firebase Cloud Messaging.
Go ★ 19 1y agoExplain → -
mastodon-vagrant-box ▣
A Vagrant base box for Mastodon
Shell ★ 19 4y agoExplain → -
fediverse_discovery_providers
Website of the Fediverse Discovery Providers project
HTML ★ 18 1y agoExplain → -
fasp_ruby
Building blocks for ruby-based FASPs
Ruby ★ 16 7d agoExplain → -
.github
Mastodon org-level files
Python ★ 12 6d agoExplain → -
activitypub ⑂
No description.
HTML ★ 12 8y agoExplain → -
MastoParse
Parses Mastodon post contents for use in SwiftUI
Swift ★ 11 4mo agoExplain → -
terraform-fastly-service
Terraform module for more easily defining a Fastly service, following Mastodon common use cases.
VCL ★ 8 2mo agoExplain → -
specs-background
A place to store background documentation and research that informs specifications and FEPs
★ 8 1y agoExplain → -
packer
Build automation for DigitalOcean 1-click Install Image
Shell ★ 8 2y agoExplain → -
terraform-hetzner-k8s-kubeone
Terraform module for deploying kubernetes clusters in Hetzner Cloud.
HCL ★ 6 1y agoExplain → -
terraform-fastly-files-service
Terraform module for creating a fastly service for Mastodon's files backend
HCL ★ 5 6mo agoExplain → -
twemoji ⑂
Emoji for everyone. https://twemoji.twitter.com/
★ 5 3y agoExplain → -
fastly-globeviz-data
Backend server for Fastly Globeviz app (https://dev.to/fastly/visualize-your-fastly-traffic-on-a-real-time-globe-using-glitch-9di)
Go ★ 4 18d agoExplain → -
terraform-fastly-joinmastodon
Terraform module for setting up fastly services that make up the joinmastodon.org domain
HCL ★ 4 1y agoExplain → -
mastodon-fosdem2024
Content for the Mastodon stand at FOSDEM 2024
Python ★ 3 2y agoExplain → -
MetaTextKit ⑂
No description.
★ 3 1y agoExplain → -
webpush ⑂
webpush, Encryption Utilities for Web Push protocol
Ruby ★ 2 1y agoExplain → -
terraform-ovh-k8s
Module to create a managed k8s cluster in OVH
HCL ★ 1 1mo agoExplain → -
redis_namespace_migration
Documentation about how to move away from using namespaced keys in redis
Ruby ★ 1 1y agoExplain → -
rails-settings-cached ⑂ ▣
Global settings for your Rails application.
★ 1 2y agoExplain → -
terraform-hetzner-ssh
Terraform module for managing SSH keys in Hetzner Cloud
HCL ★ 1 3y agoExplain → -
future-tos
A future terms-of-service for Mastodon gGmbH-hosted servers
★ 0 9mo agoExplain → -
terraform-ovh-network
Module to create a private virtual network in OVH's public cloud
HCL ★ 0 10mo agoExplain → -
terraform-ovh-k8s-nodepool
Terraform module for kubernetes nodepools.
HCL ★ 0 11mo agoExplain → -
terraform-ovh-s3
Module for creating S3-compatible object storage in OVH
HCL ★ 0 11mo agoExplain → -
terraform-sigsci-backend-sync
Terraform module to sync Fastly's backend configuration with Signal Science's WAF
HCL ★ 0 2y agoExplain →
No repos match these filters.
More creators on gitmyhub
xiaolai brunosimon douglascrockford standardgalactic AlexTheAnalyst