Manage all your
Fediverse
accounts in one place.

FediSuite is a free, open source platform for scheduling posts, splitting long posts into threads, managing notifications, and handling multiple accounts across 19+ Fediverse platforms — Mastodon, Pixelfed, Vernissage, PeerTube, Misskey, and more.

19+ platforms
GPL-3 open source
3 UI languages
Android app

Built for the Fediverse,
not bolted onto it.

Every feature was designed with the Fediverse in mind — from platform-specific character limits to OAuth2 authentication and automatic instance detection.

Multi-Account Dashboard

Manage all your Fediverse accounts in one interface. Switch instantly, and see posting status, import progress, and metrics across all platforms at a glance.

Smart Composer

Platform-specific character limits, visibility options, content warnings, alt-text fields, per-post language selection, and automatic thread splitting — validated live as you write.

Post Scheduling

Schedule posts to the minute in your timezone. Background workers handle publishing reliably with rate-limit resume handling and atomic post delivery.

Deep Analytics

Follower growth, engagement rates, posting heatmaps, hashtag reach, best times to post, and a tips engine based on your real data — not generic advice.

First-Class Accessibility

Every chart has a screen reader companion with text summaries and full data tables. Keyboard navigation, WAI-ARIA patterns, correct HTML lang, and live regions throughout.

Post Management

Edit, duplicate, repost, or delete scheduled, published, and failed posts. Full queue view with time-based ordering and status tracking.

Automatic Thread Splitting

Optional automatic splitting turns oversized posts into clean threads at paragraph, sentence, or word boundaries. Preview, segment order, and scheduling stay transparent.

Automatic Platform Detection

Enter an instance URL and FediSuite detects the platform type, loads character limits and media rules directly from that instance, and configures the composer automatically.

Notifications Inside FediSuite

Supported accounts can load their own notifications directly inside FediSuite, so you can react faster without jumping back into every individual instance.

Historical Import

After connecting an account, FediSuite imports your existing post history in the background with clear progress indicators and status badges.

Secure Authentication

OAuth2 where supported. Passwords stay on your instance by default. Any deviation from the standard flow is clearly communicated before you proceed.

Understand your
presence. Improve it.

FediSuite goes beyond simple follower counts. The analytics dashboard gives you a clear picture of how your content actually performs — and tells you specifically what to do about it.

Follower growth tracking

Daily and weekly follower and following counts, with change tracking and trend visualization across selectable time periods.

Engagement breakdown

Favorites, boosts, and replies broken down by day, with engagement rate, weekday patterns, and boost-to-reply ratios.

Best posting times heatmap

Average engagement by weekday and hour — a heatmap that shows exactly when your audience is most reactive.

Hashtag performance

Which tags and tag combinations drive the most reach for your specific audience — not generic hashtag advice.

Tips engine

Reads your actual data and produces concrete, specific suggestions based on your own numbers — not generic best-practice lists.

FediSuite Engagement Analytics — daily engagement area chart showing favourites and boosts over time with engagement rate and breakdown
FediSuite Engagement Analytics — engagement rate chart, breakdown pie with favourites, boosts and replies, and engagement by weekday
FediSuite Optimize — best posting times heatmap showing average engagement by weekday and hour

Accessibility is a
requirement,
not a footnote.

FediSuite treats accessibility as a core engineering requirement. Every chart, every form, every interactive element is built to work correctly with screen readers, braille displays, and keyboard-only navigation.

Screen reader users get the same information as everyone else — not a degraded experience. The analytics dashboard that sighted users see as colorful charts is fully accessible through companion text summaries and structured data tables.

Chart companion layers

Every analytics chart has a companion text summary and a full data table. Heatmaps and distribution charts expose structured textual equivalents.

Keyboard navigation

Arrow keys, Home, and End navigate dashboard tabs following the WAI-ARIA manual activation pattern. Roving tabindex on all tab lists.

Correct HTML lang

The HTML lang attribute reflects the active UI language from the start and updates live when the user changes language.

Proper ARIA semantics

Dialogs, live regions, radio groups, skip links, and labeled form controls — built correctly from the start, not patched on afterward.

Per-post language

Every post can carry a BCP 47 language tag. Validated, stored, and transmitted to supported platforms so assistive technology knows which language a post is in.

Alt text first

Alt text is a first-class field in the composer — per media item, with preview — not an afterthought hidden behind a toggle.

Built for the
diversity of
the Fediverse.

FediSuite detects platform types automatically, loads character limits and media rules directly from each instance, and connects accounts via OAuth2 — or the most appropriate alternative where OAuth2 isn't available. That includes photo-first platforms like Vernissage.

Automatic detection

Platform type, character limits, and media rules loaded directly from the instance — no manual configuration.

Secure auth

OAuth2 where available. Alternative logins only where technically required, and clearly communicated.

Import & status

Accounts display import progress, platform badges, metrics, and clear status values.

Notifications & refresh

Supported platforms integrate more than publishing: historical import, post-stat refresh, and account notifications handled directly inside FediSuite.

Mastodon

Mastodon

Microblogging

OAuth2
Pixelfed

Pixelfed

Photo network

OAuth2
Vernissage

Vernissage

Photo network

OAuth2
Misskey

Misskey

Microblogging

OAuth2
Friendica

Friendica

Social network

OAuth2
Pleroma

Pleroma

Microblogging

OAuth2
Akkoma

Akkoma

Microblogging

OAuth2
Sharkey

Sharkey

Misskey fork

OAuth2
Calckey

Calckey

Misskey fork

OAuth2
Firefish

Firefish

Misskey fork

OAuth2
Iceshrimp

Iceshrimp

Misskey fork

OAuth2
PeerTube

PeerTube

Video platform

Login
Loops

Loops

Short video

Login
GNU Social

GNU Social

Microblogging

OAuth2
GoToSocial

GoToSocial

Microblogging

OAuth2
Snac / Snac2

Snac / Snac2

Microblogging

OAuth2
Takahē

Takahē

Microblogging

OAuth2
Mitra

Mitra

Social network

OAuth2
WordPress

WordPress

Blog / CMS

Login

Full control.
Your server.
Your data.

Run FediSuite on your own server with Docker Compose. No compilation required — pull the official image, fill in your environment variables, and start the stack.

Official Docker image on Docker Hub

christinloehner/fedisuite — pull and run, no local build required.

4-service Docker Compose stack

PostgreSQL, the app (frontend + API), and two background workers for scheduling and refresh jobs.

Traefik support included

Example labels and a reference Traefik compose file included in the self-hosting repository.

Registration control

Set ENABLE_USER_REGISTRATION=false to run a private instance.

Quick Start
# Clone the self-hosting repository
git clone https://codeberg.org/christinloehner/FediSuite
cd FediSuite
# Configure your environment
cp .env.example .env
nano .env
# Start FediSuite
docker compose up -d
# Update to a newer version
docker compose pull && docker compose up -d
Required environment variables
DATABASE_URL
JWT_SECRET
APP_URL
ADMIN_EMAIL
ADMIN_PASSWORD
SMTP_HOST
SMTP_PORT
SMTP_USER
SMTP_PASS
SMTP_FROM
POSTGRES_DB
POSTGRES_PASSWORD

SMTP is required — FediSuite sends emails for registration, password reset, and import notifications.

GNU GPL-3.0.
Fully open.

The entire application stack is open — frontend, backend, Docker setup, and documentation. View the source, fork it, self-host it, and contribute. All under the GNU General Public License v3.

Bug reports
are welcome.

If you find a bug — especially in the self-hosting setup — please report it. The project is actively developed and real-world bug reports are one of the most valuable contributions right now. The CONTRIBUTING.md explains the process.

Native Android client.
Not a WebView wrapper.

FediSuite has a native Android app built with Expo and React Native — a real mobile-first client with a touch-optimized UI, compact analytics, and access to your full FediSuite workflow on the go.

The app connects to any FediSuite instance. Use the official hosted instance at app.fedisuite.com or point it at your own self-hosted server. No backend is hardcoded.

Android App on Codeberg (opens in new tab)

Touch-first UI

Bottom tab navigation, large touch targets, card-based screens, and dark-mode-first visual design.

Mobile analytics

Account analytics and insights — compact, readable, and always up to date.

Composer with media

Write posts, attach media, add alt text, and schedule — all from the mobile composer.

Any instance

Works with the official hosted instance and any self-hosted FediSuite server.

Actively developed.
Frequently released.

FediSuite ships updates regularly. This section shows the latest six releases directly from the upstream changelog.

v1.5.2 18.05.2026 Fixed
Fixed
  • Top posts and post statistics no longer include posts authored by other accounts that merely mention the user: the notification-based refresh no longer pulls in `mention` notifications, an ownership guard rejects foreign statuses, and posts wrongly stored by earlier versions are removed on the next account refresh (Codeberg #36).
v1.5.1 17.05.2026 Added · Fixed
Added
  • + WordPress sites running the ActivityPub plugin are now fully supported as a native "wordpress" provider: connecting via the plugin's Client-to-Server OAuth flow, publishing posts, and importing follower/post statistics, so WordPress blogs can be managed alongside the other Fediverse platforms. This requires the option "Aktiviere die ActivityPub-API, um Drittanbieter-Clients zu verbinden." (Enable the ActivityPub API to connect third-party clients) to be turned on in the WordPress site's ActivityPub settings (Codeberg #30).
Fixed
  • WordPress post statistics no longer count the actor profile object or post-edit/boost activities as posts: only original publications (ActivityStreams "Create") are imported, so the account profile and repeated edits stop appearing as bogus entries in the post analytics (Codeberg #30).
  • The composer preview now renders HTML for WordPress accounts instead of showing escaped markup, matching how WordPress federates post content (Codeberg #30).
  • The composer no longer gets stuck on "publishing…" without a success message: the mounted-state guard is now reset correctly on (re)mount so the publish-status poll and the success/reset are no longer silently skipped. WordPress HTTP calls also got a bounded timeout so a slow instance cannot hang a publish or refresh (Codeberg #30).
v1.5.0 17.05.2026 Fixed · Changed · Removed
Fixed
  • The plugin enable-state stored in the database is no longer wiped when the plugin directory is temporarily empty or unmounted (e.g. a Docker volume mount race); stale-plugin cleanup now only runs when at least one plugin is actually present on disk.
  • Disabling and re-enabling a plugin (or rolling out an updated plugin) now loads the new plugin code instead of keeping the previously imported version until a full server restart.
  • Dashboard widgets no longer show stale data from a previously selected account or time period and no longer update state after the dashboard was left, because superseded and unmounted requests are now discarded.
  • An expired or invalidated session now logs the user out consistently across the whole app instead of leaving widgets silently failing until a manual reload.
  • A failing database migration step no longer silently skips every following migration; each step now runs in isolation and failures are logged instead of swallowed.
  • Added database indexes for the per-minute scheduler query and the per-request post lookups (by status/schedule time, owner and account) to avoid full table scans as the posts table grows.
  • Account deletion, user self-deletion and admin user deletion now run inside a database transaction, so a mid-sequence failure can no longer leave orphaned posts or accounts behind.
  • Internal server errors no longer expose raw exception text (database, driver or outbound-URL internals) to API clients; the real error is logged server-side and a generic localized message is returned instead.
  • Outbound HTTP calls to remote Fediverse instances (including the HTTP/2 path) now use a configurable timeout, so an unresponsive instance can no longer hang a request handler indefinitely.
  • Fediverse platform badge colours are now consistent across the dashboard, composer, notifications, posts and admin user list; some platforms previously appeared in a neutral grey on certain pages because the colour map was duplicated with diverging coverage.
  • The plugin discovery payload is now computed once and reused until the plugin registry actually changes, instead of being fully rebuilt for every post and every thread part while publishing.
  • When publishing a thread, the per-post status is now polled in parallel instead of sequentially, so the progress display and the timeout stay accurate for long threads; closing the composer or edit dialog mid-publish now stops the polling instead of letting it keep running and updating a closed view.
  • Publishing or syncing the instance to the FediSuite instance directory no longer fails on slow self-hosted instances (e.g. Raspberry Pi or a small VPS): the registry HTTP timeout is now generous and configurable (FEDISUITE_REGISTRY_TIMEOUT_MS) instead of a hard 10 seconds.
Changed
  • The package version is now kept in sync with the project version file (1.5.0) so npm tooling and SBOMs report the correct version instead of a stale 1.0.0.
  • The instance's current version is now sent to the FediSuite instance directory on publish and on every refresh, so the running version can be shown in the directory.
  • A published instance now refreshes its directory entry every 2 hours instead of once a day, so user count, version and metadata stay current.
Removed
  • Removed dead/relic files that were no longer referenced anywhere: the superseded legacy Italian translation, an empty AI-service stub and an unused AI-studio metadata file.
v1.4.12 16.05.2026 Fixed
Fixed
  • The account selector in the edit composer (opened from the scheduled/posted list) is now active, so an existing post can be re-targeted to a different connected account when editing — e.g. re-publishing a Mastodon post for Friendica — and switching the account no longer clears the already-composed post (Codeberg #26).
  • Editing a post now enforces the target account's media-attachment limit instead of always assuming four (Codeberg #26).
  • When editing a post and switching to an account that does not support the attached media type (e.g. a video on an image-only account), the attachments are no longer silently stripped on selection; they stay until save/send, a clear warning shows that the post would then go out without the unsupported attachments, and affected attachments are visibly marked (Codeberg #26).
v1.4.11 16.05.2026 Added · Changed · Fixed
Added
  • + Scheduled, draft, failed and published posts can now be edited in the full composer (identical to "Create post", including attachments, visibility, language, schedule time, thread auto-split and plugin composer extensions). Scheduled/draft/failed posts are updated in place; editing a published post creates a new post (re-downloading its remote media) that can be posted now or rescheduled — the original stays untouched (Codeberg #26).
Changed
  • "Publish now" — both for new posts and when reposting/publishing an edited post — now runs in the background and the composer shows the real progress phase (queued → uploading media → instance processing → publishing → live) by polling the post status, so the user is never left in the dark while a video is being uploaded and transcoded (Codeberg #26).
  • The dashboard statistics period selector is now persisted per user on the server, so the chosen range is restored on the next visit and across devices; it is only saved when the user actually picks a different range.
Fixed
  • Fixed posting with a video (or other slow-processing media) on Mastodon-compatible platforms: media uploads now wait for the instance to finish processing before the post is created, instead of failing with "files that have not finished processing cannot be attached" (Codeberg #26).
v1.4.10 16.05.2026 Added · Changed
Added
  • + Added a controversy/polarisation insight: posts where replies dominate over favourites and boosts are compared against the rest, and the dashboard surfaces an evidence-based tip (with example posts) when discussion-heavy posts measurably help or hurt reach, so authors can dose pointed topics deliberately instead of guessing.
  • + Added a hook insight that analyses each post's opening line: when a short opener or an opener with a concrete number measurably outperforms the rest, the dashboard surfaces an evidence-based tip with example posts, so authors can sharpen their openers based on their own data instead of generic advice.
  • + Added a posting-frequency/cannibalisation insight: when the resonance per post on multi-post days is measurably lower than on single-post days, the dashboard recommends spreading posts out, so authors can tell whether bundling several posts a day costs them reach.
  • + Added a per-post drill-down ("Why did this post do well?") opened from the top-posts list: an accessible modal that shows the post's measurable features and how those features perform for the account on average (correlational, not causal), including a plain-language summary and a data table, so authors can understand individual posts without cluttering the dashboard.
  • + Added a topic-fatigue insight: when a hashtag topic's recent resonance has dropped clearly below its earlier level, the dashboard surfaces an evidence-based tip with example posts recommending a pause or a refresh, so authors can spot oversaturated topics before they keep losing reach.
Changed
  • Removed the fixed eight-tip cap: the dashboard now shows every applicable tip exactly once (deduplicated by type), sorted by priority and then confidence, so the most important and most reliable recommendations appear at the top.
  • The top-posts list now defaults to 10 entries and has a count selector (5/10/25/50/100) that is remembered per user, and the server top-posts limit was raised from 50 to 100, so authors can review more of their best posts.
  • Moved the "Daily engagement" chart and its data table from the Overview tab to the top of the Engagement tab, so the Overview stays focused and engagement detail lives with the other engagement widgets.
  • The four Overview stat cards (reach, scheduled, posts, failed) now show figures for the selected account instead of summed totals across all connected accounts, matching the account selector right above them; the accounts endpoint now also returns per-account scheduled/failed post counts, and the "total reach"/"total posts" labels were renamed to "reach"/"posts" since they no longer aggregate across accounts.

One project,
maintained by
one person.

FediSuite is designed, developed, and maintained by Christin Löhner (opens in new tab) — a single developer who uses the tool daily and builds features that solve real problems.

No VC money. No growth team. No roadmap driven by investor asks. Bug reports go directly to the person who wrote the code.

@christin@lsbt.me (opens in new tab)

Individuals & Creators

Manage multiple accounts without the tab chaos. Scheduling, analytics, and a platform-aware composer in one place.

Projects & Communities

Open source projects and community initiatives with regular publishing needs. Plan ahead and track what resonates.

Organizations

Teams taking the Fediverse seriously. Structured workflows, analytics, and the option to self-host on your own infrastructure.

From zero to productive
in four steps.

Start on the hosted instance or spin up your own Docker stack. Either way, you're up and running in minutes.

Open or self-host

Go to app.fedisuite.com and sign up for free — or spin up the Docker Compose stack from the self-hosting repository on your own server.

Connect accounts

Enter your instance URL. FediSuite detects the platform, loads limits and rules, and connects your account via OAuth2 or the appropriate alternative.

Schedule content

Write posts with the smart composer, attach media, add alt text, pick visibility, split long content into threads, and schedule for the exact time you want.

Analyze & optimize

Check analytics, load notifications directly in FediSuite, find your top posts, identify your best posting windows, and let the tips engine guide your strategy.

Your Fediverse,
organized.

Use the hosted instance for free, or run your own. FediSuite is open source and always will be.

Free to use · Open Source (GPL-3.0) · Self-hostable · 19+ platforms · Android App