Fediverse

Wer sich mit sozialen Netzwerken wie Mastodon beschäftigt, wird den Begriff des Fediverse bereits gehört haben. Das Kofferwort, bestehend aus Federation und Universe, bezeichnet ein Netzwerk verschiedener sozialer Plattformen, die nicht von einem einzigen Anbieter betrieben werden, sondern auf vielen unabhängigen Servern laufen und mittels offener Protokolle miteinander verbunden sind.

Anders als in den klassischen Walled Gardens à la X, Facebook oder YouTube, wo jede Plattform ein geschlossenes System darstellt, können im Fediverse Nutzer plattformübergreifend miteinander interagieren. Oft genügt bereits ein einziger Account, um Inhalten über verschiedene Dienste hinweg zu folgen und zu kommentieren, z. B. um über Mastodon einem Pixelfed-Account zu folgen.

Ein Ausschnitt des Fediverse

Ein großer Vorteil der Föderation ist die Robustheit. Es gibt keinen Single Point of Failure. Fällt eine Instanz aus oder wird abgeschaltet, betrifft das nur dessen Nutzer, nicht aber das gesamte Netzwerk.

Spezial-Communitys können eigene Instanzen mit spezifischen Moderationsregeln oder Features betreiben, die auf ihre Bedürfnisse zugeschnitten sind. Nutzer haben die Wahl, sich einer Instanz anzuschließen, deren Ausrichtung und Richtlinien ihnen zusagen, oder selbst einen Server aufzusetzen.

Andererseits bedeutet die dezentrale Föderation auch, dass kein einzelner Akteur vollständige Kontrolle über Inhalte und Abläufe hat. Zentralisierte Netzwerke können schneller agieren, einheitliche Richtlinien durchsetzen und technisch einfacher skalieren, da alle Daten an einem Ort liegen.

Im Fediverse müssen sich die Betreiber der einzelnen Instanzen abstimmen, um z. B. Spam oder Missbrauch einzudämmen. Jede Instanz moderiert primär für sich. Auch sind föderierte Systeme komplexer. Der ständige Austausch zwischen Instanzen erfordert robuste Protokolle und kann die Infrastruktur bei hohen Aktivitätspeaks erheblich beanspruchen.

Im Rahmen des Artikels soll vorrangig auf den Teil des Fediverse eingegangen werden, der die ActivityPub-Spezifikation nutzt. Andere Mitglieder des Fediverse im weiteren Sinne, wie Bluesky als Nutzer des AT-Protokolls oder Diaspora mit dem gleichnamigen Protokoll, werden nur angerissen.

Geschichte

Der Grundgedanke von Dezentralität war schon früh im Internet verankert; das E-Mail-System ist bis heute ein anschauliches Beispiel für ein föderiertes Netzwerk. Jeder kann E-Mail-Server aufsetzen und in der Theorie ohne Probleme mit anderen E-Mail-Servern kommunizieren. Auch wenn es im E-Mail-System in den vergangenen Jahrzehnten zu enormen Zentralisierungen gekommen ist, ist es im Kern immer noch ein dezentrales System.

Mit dem Web der späten 90er und beginnenden 2000er Jahre entstanden persönliche Websites, Webringe, RSS/Atom-Feeds und frühe Blogging-Ökosysteme. Technisch dominierten zwar zentralisierte Plattformen wie Blogger.com, aber gleichzeitig gab es einen starken Drang zur Selbsthostbarkeit.

Besonders RSS und Atom können als gedankliche Vorläufer des Fediverse gelten, da sie schon früh das automatische Abonnieren von Inhalten über verschiedene Server hinweg ermöglichten.

OStatus

Sozial wurde Föderation im Web Ende 2008. Das damals von Evan Prodromou entwickelte Protokoll OpenMicroBlogging, ab 2010 OStatus genannt, kombinierte mehrere offene Standards, namentlich Atom, PubSubHubbub, Salmon und WebFinger, um Follower-Beziehungen, Status-Updates und Interaktionen serverübergreifend möglich zu machen.

Allerdings war OStatus technisch fragmentiert, schwer erweiterbar und bot keine echte Möglichkeit, komplexere Interaktionen standardisiert abzubilden.

Mit Identi.ca, welches 2008 gestartet wurde, und dem zugrunde liegenden Software-Stack StatusNet entstand das erste große föderierte Microblogging-Netzwerk. Später nutzten auch GNU social und Friendica Varianten des OStatus-Stacks.

Zeitgleich entwickelte sich mit Diaspora ab 2010 eine weitere föderierte Plattform, die auf einem eigenen Protokoll basierte, aber das Prinzip dezentraler, selbstverwalteter Instanzen ebenfalls konsequent umsetzte.

2013 wurde die Plattform Identi.ca auf pump.io migriert, woraufhin StatusNet faktisch eingestellt wurde. Auch wenn die pump.io-Plattform mittlerweile Geschichte ist, legte sie einige technische Grundlagen für das spätere ActivityPub.

Die im Juli 2014 gegründete W3C Federated Social Web Working Group entwickelte einen neuen Standard, welcher besagte Vorarbeit nutzte, um ActivityPub zu spezifizieren und zu standardisieren. Evan Prodromou fungierte hierbei als Mitautor. 2018 wurde ActivityPub schlussendlich als Webstandard verabschiedet.

ActivityPub erleichterte die Entwicklung dezentraler Plattformen erheblich. Mastodon, das anfangs noch OStatus unterstützte, setzte früh auf ActivityPub und wurde dadurch zum wichtigsten Motor des modernen Fediverse.

Wachstumsschmerzen

Neben der Vergrößerung des Fediverse durch neue Instanzen und Plattformen haben auch kommerzielle Anbieter das Fediverse für sich entdeckt.

So sorgte Meta für Schlagzeilen, als es mit Threads einen eigenen Microblogging-Dienst à la Twitter bzw. X startete und ankündigte, diesen mit ActivityPub kompatibel zu machen.

Die Reaktionen darauf waren im Fediverse gemischt. Einerseits sehen viele darin eine Stärkung der offenen Standards. Dennoch gibt es Bedenken, ob ein großer Player die Kultur des Fediverse verändert oder gar dominiert. Einige Mastodon-Instanzen kündigten prophylaktisch an, Threads gegebenenfalls zu blockieren, falls Meta versucht, zu viele Daten abzugreifen oder eigene Regeln zu diktieren.

Matt Mullenweg zeigte sich begeistert über das Fediverse und sieht darin eine Renaissance des offenen Webs. WordPress selbst kann nun per Plugin zu einem Fediverse-Teilnehmer gemacht werden, wenn auch mit Einschränkungen.

FediDB zeigt das Fediverse in Zahlen

Mittlerweile verfügt das Fediverse (laut FediDB, Stand Dezember 2025) über 12 Millionen registrierte Nutzer, davon sind etwa 890.000 Accounts aktiv, bei insgesamt 1,4 Milliarden Statusmeldungen und über 35.000 Instanzen bzw. Servern.

ActivityPub im Detail

Technisch betrachtet besteht die heutige Föderation aus zwei eng verzahnten Bausteinen. ActivityPub definiert die Mechanik der Kommunikation, also wie Clients Inhalte an einen Server senden und wie Server Aktivitäten an andere Instanzen verteilen.

Was dabei übertragen wird, legt ein zweiter Standard mit dem Namen ActivityStreams 2.0 fest. Dieses JSON-basierte Vokabular beschreibt die semantische Ebene, also welche Objekt- und Aktivitätstypen es gibt; von Note über Image bis zu Create, Like oder Follow.

Erst im Zusammenspiel beider Standards entsteht ein interoperables soziales Netzwerk. ActivityStreams liefert die Bedeutung, während ActivityPub den Transport, Zustellung und die Föderation übernimmt.

ActivityPub definiert zwei APIs. Zum einen eine Client-zu-Server-API (C2S), über die Nutzerinhalte auf dem eigenen Server erstellt, abgerufen oder gelöscht werden können. Zum anderen wird eine Server-zu-Server-API (S2S) definiert, über die föderierte Kommunikation zwischen verschiedenen Servern bzw. Instanzen erfolgt.

Während die C2S-API in der Theorie von den Clients, wie einer App oder einem Webinterface genutzt wird, wird die S2S-API für die Kommunikation zwischen den Servern genutzt.

Interessanterweise müssen nicht beide APIs implementiert werden. So implementiert z. B. Mastodon nur die S2S-API und nutzt stattdessen eine eigene Client-API.

Dies hängt damit zusammen, dass die Implementierung beider APIs optional ist und Mastodons eigene Client-API deutlich älter als ActivityPub ist. Dazu heißt es in der Spezifikation:

ActivityPub implementations can implement just one of these things or both of them.

Die Client-zu-Server-Seite von ActivityPub ist zwar spezifiziert, wird in der Praxis jedoch nur sehr begrenzt genutzt.

Die Energie floss bei den meisten Plattformen in das föderierte Server-zu-Server-Protokoll, dass die Dienste des Fediverse tatsächlich miteinander verbindet.

Actors

Nutzer in ActivityPub werden von einem sogenannten Actor repräsentiert und besitzen jeweils eine eindeutige Adresse, bestehend aus einem Nutzernamen und der Domain der Heim-Instanz.

Wichtig ist hierbei, dass zwischen dem Fediverse-Handle z. B. @ und der eigentlichen Adresse (https://fedi.example/users/alice) unterschieden wird. Das Handle wird hierbei mehrheitlich mittels Webfinger zur URL aufgelöst. Technisch betrachtet werden Handles nicht in der ActivityPub-Spezifikation behandelt, da dort nur Actor-URLs erwähnt werden.

Ein Nutzer kann im Kontext von ActivityPub z. B. eine Person, eine Applikation, eine Gruppe, ein Service oder eine Organisation sein. Dazu heißt es in der Spezifikation:

ActivityPub does not dictate a specific relationship between „users“ and Actors; many configurations are possible. There may be multiple human users or organizations controlling an Actor, or likewise one human or organization may control multiple Actors. Similarly, an Actor may represent a piece of software, like a bot, or an automated process. More detailed „user“ modelling, for example linking together of Actors which are controlled by the same entity, or allowing one Actor to be presented through multiple alternate profiles or aspects, are at the discretion of the implementation.

In- und Outboxen

Jeder Actor verfügt über eine In- und eine Outbox. Die Inbox enthält die Nachrichten, die von außerhalb empfangen wurden, während die Outbox die zu sendenden Nachrichten enthält.

Wenn ein Nutzer einen neuen Beitrag absendet, landet dieser zunächst in der Outbox. Der Server sendet diese zu den Inboxen der Follower-Server.

Umgekehrt kommen eingehende Nachrichten anderer Instanzen in der Inbox des Nutzers an.

Follow und Accept

Damit ein Actor allerdings überhaupt entsprechende Nachrichten erhält, muss er mindestens einem anderen Actor folgen. Dies geschieht, indem er eine Follow-Activity an einen anderen Actor sendet. Der Remote-Server antwortet mit einer Accept-Activity, wenn er den Follow erlaubt.

Erst wenn der Ablauf erfolgreich abgeschlossen ist, gilt auf Protokollebene eine lokale Follow-Beziehung als etabliert. Nur dann beginnt der Server des Actors, neue Aktivitäten aus seiner Outbox an die Inbox des Followers zu pushen.

ActivityPub im Beispiel

Doch wie sehen die Operationen auf Protokollebene aus? Für den Fall, dass ein Nutzer einem anderen Nutzer folgen möchte, sendet seine Instanz eine Follow-Activity an die Inbox des Remote-Actors. In diesem Fall möchte Bob dem Nutzer Alice folgen:

POST https://fedi.example/users/alice/inbox
Content-Type: application/activity+json

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://social.example/users/bob/activities/follow-123",
  "type": "Follow",
  "actor": "https://social.example/users/bob",
  "object": "https://fedi.example/users/alice"
}

Was im Request nicht aufgeführt ist, aber faktisch zum Fediverse dazugehört, ist eine Signatur im Header:

Signature: keyId="https://social.example/users/bob#main-key",algorithm="rsa-sha256",headers="(request-target) host date digest",signature="..."

Unsignierte Requests werden von den meisten Plattformen grundsätzlich abgelehnt.

Mit der Follow-Activity ist allerdings noch keine Follow-Beziehung etabliert. Der Remote-Server entscheidet, ob die Anfrage genehmigt wird. Wenn ja, sendet er eine Accept-Activity zurück. Erst mit diesem Accept ist die Follow-Beziehung etabliert. In diesem Fall bestätigt Alice die Anfrage von Bob:

POST https://social.example/users/bob/inbox
Content-Type: application/activity+json

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://fedi.example/activities/accept-follow-123",
  "type": "Accept",
  "actor": "https://fedi.example/users/alice",
  "object": {
    "id": "https://social.example/users/bob/activities/follow-123",
    "type": "Follow",
    "actor": "https://social.example/users/bob",
    "object": "https://fedi.example/users/alice"
  }
}

Wenn der Nutzer nun einen Beitrag schreiben möchte, so erstellt er eine Create-Activity, die in die Outbox seiner Instanz gestellt wird. Von dort wird sie automatisch an die Follower verteilt. Im Beispiel setzt Alice einen Post ab:

POST https://fedi.example/users/alice/outbox
Content-Type: application/activity+json

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Create",
  "actor": "https://fedi.example/users/alice",
  "object": {
    "type": "Note",
    "content": "Hello, world!",
    "to": ["https://www.w3.org/ns/activitystreams#Public"]
  }
}

Der Remote-Follower empfängt die Nachricht in seiner Inbox:

POST https://social.example/users/bob/inbox
Content-Type: application/activity+json

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://fedi.example/users/alice/activities/create-123",
  "type": "Create",
  "actor": "https://fedi.example/users/alice",
  "object": {
    "id": "https://fedi.example/users/alice/posts/123",
    "type": "Note",
    "content": "Hello, world!",
    "to": ["https://www.w3.org/ns/activitystreams#Public"]
  }
}

Daneben sind natürlich auch andere Interaktionen, wie Likes im Rahmen der Kommunikation, möglich.

Protokoll-Fragmentierung

Auf dem Papier wirkt ActivityPub wie der gemeinsame Nenner des Fediverse. Ein Datenmodell, ein Protokoll und damit die Aussicht auf echte Interoperabilität.

In der Praxis zeigt sich jedoch ein paradoxes Bild. Trotz des gleichen Protokolls sprechen viele Plattformen unterschiedliche Dialekte. Es entsteht kein kohärentes Gesamt­netzwerk, sondern mehrere nur locker miteinander gekoppelte Subsysteme.

Ein Kernproblem liegt in der Architektur des Standards selbst. ActivityPub basiert auf ActivityStreams 2.0, und dieses Format ist absichtlich sehr flexibel und erweiterbar gestaltet. Viele Felder sind optional, Semantiken bleiben offen und unbekannte Eigenschaften müssen laut Spezifikation ignoriert werden. Required-Attribute werden stattdessen nur sehr sparsam eingesetzt.

So können zwei Plattformen vollkommen korrekt behaupten, ActivityPub zu unterstützen, und dennoch kaum sinnvoll miteinander kommunizieren. Eine Plattform sendet Objekte mit Mastodon-Erweiterungen, eine andere erwartet strikteres JSON-LD, eine dritte ignoriert Felder, die für eine andere Plattform essenziell sind.

Besonders sichtbar wird das am Beispiel Mastodon. Die Plattform ist mit Abstand die größte ActivityPub-Implementierung und gleichzeitig eine, die den Standard nur teilweise umsetzt.

Die Client-to-Server-API fehlt weitgehend, mehrere Activity-Typen werden nicht unterstützt und bei der Account-Migration setzt Mastodon auf ein eigenes Verfahren. Umgekehrt verlangt Mastodon Dinge, die ActivityPub selbst nicht vorschreibt. Dazu gehören HTTP Signatures für alle Server-zu-Server-Anfragen, bestimmte JSON-LD-Kontexte und diverse Mastodon-spezifische Felder.

Mitglieder des Fediverse

Im Fediverse existieren zahlreiche Dienste mit unterschiedlichen Schwerpunkten. Viele davon sind bewusst als Alternative zu bekannten zentralen Plattformen konzipiert. Einige dieser Plattformen werden im Folgenden vorgestellt.

Mastodon

Mastodon ist die bekannteste und mit Abstand größte Plattform im Fediverse. Es handelt sich um einen freien Microblogging-Dienst, der Twitter bzw. X ähnelt. Nutzer können kurze Texte mit Bildern, Umfragen usw. veröffentlichen und anderen Nutzern folgen.

Mastodon wurde 2016 vom deutschen Entwickler Eugen Rochko gestartet und hat insbesondere nach der Übernahme von Twitter durch Elon Musk massiven Zulauf erhalten. So stieg die registrierte Nutzerzahl innerhalb weniger Wochen sprunghaft an.

Mastodon im Browser

Für den Nutzer bietet Mastodon drei Feed-Spalten: die Home-Timeline (Beiträge der Accounts, denen man folgt), eine lokale Timeline (alles, was auf der eigenen Instanz gepostet wird) und die föderierte Timeline, die öffentliche Posts aus allen verbundenen Instanzen zeigt.

Mastodon selbst ist quelloffene Software unter der AGPLv3 und wird mittlerweile von der Mastodon gGmbH weiterentwickelt, finanziert u. a. durch Spenden. Technisch basiert die Plattform auf Ruby on Rails und React.

Lemmy

Für textbasierte Diskussionen, Linksharing und Community-Foren gibt es im Fediverse Lemmy. Dieses Projekt startete 2019 und ist ein freies, selbsthostbares Foren- und Link-Aggregator-System, das bewusst als Alternative zu Reddit entworfen wurde.

Eine Lemmy-Instanz

Inhalte werden in thematischen Unterforen, sogenannten Communitys, eingestellt. Andere Nutzer können Beiträge und Kommentare hoch- oder runterstimmen, und es gibt Diskussionsthreads.

Lemmy hat durch die Reddit-Turbulenzen einen Schub an Nutzern erfahren. Während es Anfang 2023 noch unter hundert Lemmy-Instanzen gab, wuchs die Zahl bis Juli 2023 auf über 1.500 an, mit rund 66.000 aktiven Nutzern pro Monat.

Manche großen Reddit-Communities haben Lemmy-Ableger gegründet, um eine zensurresistente, gemeinschaftskontrollierte Alternative in der Hinterhand zu haben. Trotz dieses Wachstums steht Lemmy noch am Anfang. Die in Rust geschriebene Software wird aktiv weiterentwickelt und ist unter der AGPL lizenziert.

Pixelfed

Pixelfed ist konzeptionell eine dezentrale Alternative zu Instagram. Die Plattform ging Ende 2018 an den Start und ermöglicht das Teilen von Fotos, Alben und Storys.

Pixelfed erinnert in seiner Oberfläche stark an Instagram. Es gibt einen Feed mit den Beiträgen der verfolgten Accounts, Bilder können gelikt, Hashtags genutzt, Fotos mit Ortsangaben versehen und Storys gepostet werden.

Pixelfed ist ebenfalls quelloffen und unter der AGPL lizenziert und wird vom Entwickler Daniel Supernault verantwortet. Technisch basiert es auf PHP und Laravel.

PeerTube

PeerTube ist das Fediverse-Pendant zu YouTube. Es wurde ab 2017 vom französischen Non-Profit-Verein Framasoft entwickelt, um eine Alternative zu zentralisierten Videoportalen wie YouTube, Vimeo oder Dailymotion zu bieten.

Die PeerTube-Instanz der Blender Foundation

Technisch setzt PeerTube auf ActivityPub und ergänzt es um Peer-to-Peer-Technologie, um die Belastung einzelner Server bei populären Videos zu reduzieren.

Es erfreut sich insbesondere in Europa zunehmender Beliebtheit bei öffentlichen Einrichtungen und der Open-Source-Community. Daneben nutzen einige Content Creator PeerTube als werbefreie, datenschutzfreundliche Ergänzung zu YouTube.

PeerTube hat auch institutionelle Adoption erreicht. Der Europäische Datenschutzbeauftragte betrieb das Portal EU Video auf PeerTube-Basis im Rahmen einer Pilotphase, nach deren Ende der Betrieb erst einmal nicht fortgesetzt wurde.

PeerTube ist freie Software und unter der AGPL lizenziert. Technisch setzt PeerTube auf TypeScript, mit einem Node.js-Backend und einem Angular-Frontend.

Mobilizon

Bei Mobilizon handelt es sich um eine Plattform für die Organisation von Veranstaltungen und Gruppen und stellt damit das Fediverse-Pendant zu Facebook Events oder Meetup.com dar.

Mobilizon wurde ebenfalls von Framasoft initiiert und im Oktober 2020 in Version 1.0 veröffentlicht. Die Idee dahinter war, zivilgesellschaftlichen Gruppen, Vereinen oder einfach Freundeskreisen ein Werkzeug zu geben, um Veranstaltungen zu erstellen, Teilnehmer einzuladen und sich zu koordinieren.

Die Software ist in der Programmiersprache Elixir geschrieben und nutzt als Frontend das JavaScript-Framework Vue.js. Es ist unter der AGPL lizenziert und damit freie Software.

Friendica

Friendica gehört zu den ältesten Föderations-Plattformen und besticht durch eine breite Protokollunterstützung im Fediverse. Gestartet bereits 2010 unter dem Namen Mistpark, war Friendica lange vor ActivityPub verfügbar und unterstützt bis heute mehrere Protokolle parallel.

Friendica kann als eine Art föderiertes soziales Netzwerk à la Facebook betrachtet werden. Es bietet klassische Social-Media-Funktionen, einen Nachrichtenstream, Freunde/Follow-System, Kommentare, Gruppen, Direktnachrichten und Fotoalben.

Friendica-Server können sich einerseits untereinander verbinden, andererseits aber auch Inhalte und Kontakte von externen Netzwerken einbinden. So lassen sich in einem Friendica-Account Kontakte von Diaspora, GNU social und seit einiger Zeit auch ActivityPub-Diensten wie Mastodon oder Pixelfed integrieren.

Friendica ist ebenfalls freie Software unter der AGPL und wird von einer Community entwickelt. Als selbst gehostete Lösung ist es relativ anspruchslos und kann auch auf kleinen Webservern betrieben werden.

Sonstige Dienste

Neben den bekannten Schwergewichten existiert im Fediverse eine ganze Reihe weiterer Dienste, die jeweils eigene Nischen adressieren.

So sieht sich Funkwhale etwa als föderiertes Pendant zu SoundCloud, Castopod als moderne Podcast-Hosting-Plattform, WriteFreely als Blogging-Plattform oder BookWyrm als soziale Heimat für Leser, vergleichbar mit Goodreads.

Fediverse in der Praxis

In der praktischen Nutzung des Fediverse stößt der Nutzer auf eine Reihe von Eigenheiten und Mechanismen, die sich von klassischen, zentralisierten Plattformen unterscheiden und daher besondere Aufmerksamkeit verdienen.

Instanzauswahl

Die Wahl einer Instanz wirkt auf den ersten Blick wie die Entscheidung für einen E-Mail-Provider. So sorgt die Föderation schließlich dafür, dass Dienste miteinander sprechen können. Doch in der Praxis hängt die Nutzung stark davon ab, wo man sich niederlässt.

Jede Instanz bringt ihre eigene Kultur, Moderationsregeln und technischen Rahmenbedingungen mit. Diese Unterschiede prägen den Alltag deutlicher als neue Nutzer es oft erwarten.

Besonders relevant ist der Fokus auf die Community. Ob Microblogging, Fotoplattform, Wissenschaft, Gaming oder Bücher. Praktisch für jeden sozialen Mikrokosmos existiert eine passende Instanz im Fediverse.

Die Instanzgröße verändert das Nutzungserlebnis spürbar. Kleine Knoten liefern Nähe und kurze Wege zur Moderation, mittlere Instanzen eine gute Balance, große Instanzen hohe Aktivität, aber auch mehr Rauschen.

Auch die technischen Parameter bestimmen die Alltagstauglichkeit. Von Uptime, Serverlast über Softwarestand und der Frage, welche externen Instanzen blockiert oder eingeschränkt werden. All das bestimmt, welche Inhalte sichtbar werden und welche außen vor bleiben.

Ein oft unterschätzter Punkt ist die finanzielle und organisatorische Nachhaltigkeit. Viele Instanzen werden ehrenamtlich betrieben; wenn Administratoren aussteigen oder Kosten steigen, kann ein Server verschwinden. Verschwindet die Instanz, auf der der eigene Account liegt, gehen sämtliche Daten verloren und sind nicht mehr abrufbar.

Hier sind in der Theorie Protokolle wie Zot bzw. Nomad im Vorteil, die nomadische Identitäten ermöglichen und nicht an eine einzelne Instanz gebunden sind.

Praktische Helfer, wie Fedi.Garden, Instances.social oder die Join-Fediverse-Guides z. B. joinfediverse.wiki erleichtern die Orientierung, ersetzen aber nicht den Blick auf Community, Governance und technische Basis einer Instanz.

Account-Migration

Je nach Plattform gestaltet sich die Account-Migration auf den Fediverse-Plattformen schwierig. So sind bestimmte Dinge semi-automatisiert, wie die Followerübertragung bei Mastodon, während Inhalte wie Posts nicht automatisch übertragen werden.

Die zentrale Limitierung bleibt die providergebundene Identität. ActivityPub verankert Identitäten in URIs, die den jeweiligen Server-Hostnamen enthalten. Damit sind Identitäten praktisch nicht portabel.

Bei einem Serverwechsel bleiben die historischen Post-URLs an die alte Instanz gebunden. Externe Links und Einbettungen verweisen weiterhin auf den alten Host und werden unbrauchbar, sobald dieser verschwindet. Modelle wie Bring-Your-Own-Domain oder W3C-DIDs könnten dieses Problem theoretisch lösen, existieren aber praktisch in keiner größeren Implementierung.

Fazit

Das Fediverse ist längst kein experimentelles Nischenprojekt mehr, sondern die bislang reifste Alternative zu zentralisierten Social-Media-Plattformen.

Die Stärken sind funktionierende Dezentralisierung, Community-Governance, Open-Source-Innovation und ein Rückzugsort jenseits kommerzieller Plattformlogiken.

Gleichzeitig bleiben die offenen Fragen erheblich. Finanzielle Nachhaltigkeit, Skalierbarkeit, moderationsfähige Strukturen bei Wachstum und echte Widerstandsfähigkeit gegenüber kommerzieller Vereinnahmung.

Aktuelle Forschung zeigt zudem nüchtern, dass die Idealvorstellung radikaler Dezentralität in der Praxis stark relativiert wird. Die Mehrheit der aktiven Nutzer konzentriert sich auf wenige große Instanzen, und mit Threads drängt erneut ein Player mit deutlicher Dominanz ins offene Ökosystem.

Auch klassische Lock-ins bestehen fort, etwa die fehlende Post-Migration oder eingeschränkte Interoperabilität zwischen Implementierungen.

Ob das Fediverse sich langfristig etabliert, hängt von einigen Faktoren ab: belastbare öffentliche Förderung, institutionelle Adoption durch Verwaltungen, Medien und Wissenschaft, Skalierung und Verschlüsselung sowie Governance-Modelle, die Koordination ermöglichen, ohne zentrale Kontrolle.

Ebenso zentral ist eine gesunde, einladende Community-Kultur, die bei weiterem Wachstum nicht verloren gehen darf.

Letztlich bleibt das Fediverse eine der spannendsten Entwicklungen des modernen Webs. Es erinnert an die frühen Ideale des Internets; offen, föderiert, interoperabel und zeigt, dass Alternativen zu den klassischen Monopolplattformen tatsächlich funktionieren können.

Dieser Artikel erschien ursprünglich auf Golem.de und ist hier in einer alternativen Variante zu finden.

Markdown – einfach und vielseitig

Wer Text schreibt, kann dies mit unterschiedlichen Werkzeugen bewerkstelligen, vom WYSIWYG-Editor à la Word bis hin zum reinen Texteditor. Jede dieser Varianten wartet mit unterschiedlichen Vor- und Nachteilen auf.

Daneben hat in den vergangenen Jahren die Nutzung der Auszeichnungssprache Markdown zugenommen und diese an Beliebtheit gewonnen. Im Gegensatz zum What You See Is What You Get-Ansatz trennt Markdown die Struktur und Formatierung vom endgültigen Erscheinungsbild, indem es die Bedeutung des Inhaltes betont. Trotzdem lässt sich ein solcher Markdown-Text auch ohne weitere Kenntnisse problemlos lesen:

# Überschrift

Lorem *ipsum dolor sit amet*, consectetur, adipisci 
velit, ut aspernatur labore ad dolores quidem eos
architecto pariatur. Dolor asperiores commodi corrupti, 
vel dignissimos velit, **labore aliquip voluptatem**:

* Lorem
* Ipsum
* dolor

## Noch eine Überschrift

Lorem ipsum dolor sit amet:

> Sequi quasi mollit dolor cupiditate in.

Somit stört Markdown den Lesefluss nicht und enthält doch Informationen über die Struktur des Dokumentes. Doch wie genau wird Markdown geschrieben, genutzt und wo finden sich seine Einsatzgebiete?

Auszeichnungssprachen

Markdown wird den Auszeichnungssprachen zugeordnet. Bei solchen Auszeichnungssprachen (engl. Markup language), handelt es sich um eine Sprache, die zur Strukturierung, Formatierung und Kennzeichnung von Texten und Daten verwendet wird.

Eine solche Sprache ermöglicht es, Textinhalte mit zusätzlichen Informationen zu versehen, die deren Struktur und Darstellung definieren. Diese zusätzlichen Informationen werden in Form von Tags oder Markierungen eingefügt, die wiederum von anderen Programmen, z. B. Browsern interpretiert werden können.

Zu den bekanntesten Auszeichnungssprachen gehört HTML:

<html>
<head>
  <title>Beispielseite</title>
</head>
<body>
  <h1>Lorem Ipsum</h1>

  Lorem ipsum dolor sit amet.
</body>
</html>

Geschichte

Historisch gesehen geht die Entwicklung von Markdown auf das Jahr 2004 zurück, in welchem John Gruber und Aaron Swartz diese Entwicklung anstießen. Aaron Swartz hatte vorher mit atx eine eigene Auszeichnungssprache definiert, aus der unter anderem die Überschriften-Semantik in Markdown übernommen wurde.

Die Hauptidee hinter Markdown war es, eine einfache Möglichkeit zu schaffen, Text in HTML zu konvertieren, ohne dass der Nutzer umfangreiche HTML-Kenntnisse benötigt. Gruber und Swartz wollten damit eine Sprache schaffen, die leicht zu lesen und zu schreiben ist. John Gruber fasste dies mit der Aussage:

Markdown is intended to be as easy-to-read and easy-to-write as is feasible.

in der ursprünglichen Markdown-Spezifikation zusammen. Inspiriert wurde die Syntax und der Aufbau von Markdown von bereits vorher verwendeten Konventionen, wie der Textauszeichnung in E-Mails und anderen Auszeichnungssprachen wie Textile.

Neben der ursprünglichen Spezifikation wurde auch ein Perl-Skript mit dem Namen Markdown.pl entwickelt, welches Markdown in HTML konvertieren konnte. Das Skript und die dazugehörige Dokumentation wurden unter der 3-Klausel BSD-Lizenz veröffentlicht und sind damit freie Software. Die einfache Syntax und die Möglichkeit, Markdown-Dateien in verschiedenen Umgebungen zu verwenden, machten es schnell populär.

Ein wesentlicher Aspekt von Markdown ist seine Lesbarkeit. Die Syntax ist so gestaltet, dass der Text auch dann lesbar bleibt, wenn er nicht in HTML umgewandelt wird. Dies unterscheidet Markdown von anderen Auszeichnungssprachen wie LaTeX oder HTML, die ohne entsprechende Rendering-Tools oft schwer zu lesen sind. Diese Eigenschaft machte Markdown besonders attraktiv für Blogger, Autoren und Entwickler, die ihre Texte sowohl in Rohform als auch in gerenderter Form verwenden wollten.

Mit der Zeit entwickelte sich Markdown zu einem De-facto-Standard für Textformatierung im Web. Viele Blogging-Plattformen, Content-Management-Systeme und Plattformen wie GitHub begannen, Markdown zu unterstützen.

GitHub spielte eine entscheidende Rolle bei der Popularisierung von Markdown, indem es die Sprache für die Dokumentation von Projekten und das Schreiben von README-Dateien bzw. README.md-Dateien verwendete. Dies führte dazu, dass immer mehr Entwickler und Autoren Markdown in ihren Arbeitsabläufen integrierten.

Trotz seiner Popularität gab es keine offizielle Standardisierung von Markdown, was zu verschiedenen Dialekten und Implementierungen führte. Dadurch entstanden Kompatibilitätsprobleme, da verschiedene Systeme und Tools unterschiedliche Varianten von Markdown unterstützten. Um diesem Problem zu begegnen, wurde 2014 das Projekt CommonMark ins Leben gerufen. CommonMark zielt darauf ab, eine einheitliche Spezifikation für Markdown zu schaffen und so die Kompatibilität zwischen verschiedenen Implementierungen zu verbessern.

Nicht unerheblich für den Erfolg von Markdown war die Entwicklung von entsprechenden Konvertern. Software wie Pandoc ermöglichte es Benutzern, Markdown-Dokumente in verschiedene Formate zu konvertieren. Diese Werkzeuge erweiterten die Einsatzmöglichkeiten von Markdown erheblich, indem sie den Export von Markdown-Dokumenten in PDF-, Word- und andere Formate ermöglichten.

Die Flexibilität von Markdown führte zu seiner Verwendung in anderen Bereichen, wie z. B. in wissenschaftlichen Publikationen, technischen Dokumentationen und sogar in Präsentationen. Durch die Integration von Erweiterungen wie MathJax für mathematische Formeln konnte Markdown an die spezifischen Bedürfnisse verschiedener Benutzergruppen angepasst werden.

Syntax

Grundsätzlich handelt es sich um bei einem Markdown-Dokument um ein normales Textdokument, welches über verschiedene Zeichen strukturiert wird. So befinden sich im folgenden Dokument eine Überschrift der ersten Ebene und ein Text, in welchem ein Wort kursiv gestellt wird:

# Lorem Ipsum

Lorem Ipsum dolor *sit* amet.

In Markdown existieren verschiedene Arten von Blöcken, die zur Strukturierung und Formatierung von Text verwendet werden. Grundlegend können Blöcke in Markdown in zwei Typen unterteilt werden: Containerblöcke und Blattblöcke (engl. leaf blocks).

Containerblöcke dienen als übergeordnete Strukturen, die mehrere Elemente umfassen können. Blattblöcke hingegen sind Blöcke, die keine anderen Blöcke enthalten können. Sie sind die „Blätter“ der Dokumentstruktur und enthalten den eigentlichen Inhalt.

Zu den Containerblöcken gehören Absätze, Blockzitate, Listen und Codeblöcke. Zu den Blattblöcken gehören Überschriften, horizontale Linien, Inline-Code und HTML-Blöcke.

Eines der einfachsten Elemente in Markdown ist der Absatz. Dieser definiert sich als eine Ansammlung von Zeilen. Getrennt werden diese Absätze durch eine oder mehrere leere Zeilen. In der Denkweise von Markdown bedeutet dies, dass wenn die Zeile leer aussieht, sie leer ist. So würde eine Zeile gefüllt mit Leerzeichen oder Tabs als leer interpretiert werden.

Ein grundlegendes Merkmal von Markdown ist die Verwendung von Klartextzeichen, um Formatierungen zu definieren. Überschriften können etwa durch Voranstellen einer Raute erstellt werden.

Mit einer einzelnen Raute kann so eine Überschrift der ersten Ebene, mit zwei Rauten eine Überschrift der zweiten Ebene usw. definiert werden. Bei einer Konvertierung in HTML würde hierbei die Tags <h1> und <h2> generiert werden:

# Überschrift der ersten Ebene

## Überschrift der zweiten Ebene

### Überschrift der dritten Ebene

Diese Art der Überschriften wird auch atx-Überschrift genannt. Daneben werden in der ursprünglichen Markdown-Spezifikation auch Setext-Überschriften definiert. Setext-Überschriften werden durch das Unterstreichen des Überschriftentextes erzeugt:

Überschrift der ersten Ebene
============================

Überschrift der zweiten Ebene
-----------------------------

In der Praxis kommt heute zumeist die atx-Variante zum Tragen, mit welcher bis zu sechs Ebenen definiert werden können. Weniger bekannt ist, dass diese Art der Überschrift auch geschlossen existieren darf:

# Überschrift (Ebene 1) #

Lorem Ipsum dolor sit amet.

## Überschrift (Ebene 2) ##

Die Nutzung der schließenden Rauten ist hierbei rein kosmetischer Natur und hat sonst keinerlei Auswirkungen. Allerdings sollte beachtet werden, dass diese geschlossene Variante nur selten genutzt und von vielen Markdown-kompatiblen Werkzeugen in dieser Form nicht unterstützt wird.

Da Markdown ursprünglich zur Konvertierung in HTML gedacht war, dieses aber nicht ersetzen sollte, verfügt es über die Möglichkeit Inline-HTML zu nutzen:

# Hypergraphen

Ein Hypergraph ist eine Verallgemeinerung eines Graphen.

# Begrifflichkeiten

Folgende Begrifflichkeiten definieren einen solchen Graphen:

  <table>
        <tr>
            <th>Eigenschaft</th>
            <th>Beschreibung</th>
        </tr>
        <tr>
            <td>Knoten</td>
            <td>Die grundlegenden Einheiten eines Hypergraphen, ähnlich den Knoten in einem einfachen Graphen.</td>
        </tr>
        <tr>
            <td>Kanten</td>
            <td>Kanten in einem Hypergraphen, auch Hyperkanten genannt, können mehr als zwei Knoten verbinden.</td>
        </tr>
    </table>

Neben Hypergraphen ...

Sollen in Markdown Zeichen genutzt werden, welche durch die Markdown-Syntax vorbelegt sind, so müssen diese Zeichen maskiert werden. Dies geschieht mit dem Backslash:

\# Dies ist keine Überschrift

Für Hervorhebungen kennt Markdown die Möglichkeit, Text als fett und kursiv zu markieren. Um einen Text kursiv zu setzen, reicht es aus ihn in Sternchen zu setzen:

*kursiv*

Soll der Text hingegen fett gesetzt sein, so werden zwei Sternchen benötigt:

**fett**

Auch die Kombination aus Kursiv- und Fettschreibung ist möglich, indem drei Sternchen genutzt werden:

***kursivundfett***

Neben der Nutzung des Sternchens ist auch die Nutzung von Unterstrichen möglich. Allerdings wird dies in der Praxis seltener genutzt.

Neben diesen einfachen Formatierungen sind in Markdown Blöcke wie Zitate und Beispielcodeblöcke möglich. So beginnt ein Zitat in Markdown mit einer spitzen Klammer:

> There is no reason for any individual to have a computer in his home.
> Ken Olsen, 1977

Hierbei ist auch erlaubt, diese Blöcke ineinander zu verschachteln, sodass verschachtelte Zitate dargestellt werden können:

> Er pflegte es immer mit einem Zitat zu begründen:
> > Wenn Sterne tanzen, ihre Glut sich erhebt.

Codeblöcke können in Markdown ebenfalls abgebildet werden. Dazu muss der entsprechende Code mit vier Leerzeichen bzw. einem Tab eingerückt werden. Damit wird ein solcher Block als preformatierter Text betrachtet.

Alternativ kann ein Codeblock auch über drei Backticks erzeugt werden:

```
int number = 13052025;

if(isPrime(number)) {
    ...
}
```

Markdown unterstützt Listen. Hierbei wird zwischen ungeordneten und geordneten Listen unterschieden. Ungeordnete Listen können mit einem Sternchen erzeugt werden:

# Einkaufsliste

* Brot
* Marmelade
* Salat

Daneben können solche Listen auch mit einem Plus- oder einem Minus-Zeichen angelegt werden.

Für geordnete Listen muss eine Zahl vor den eigentlichen Listenpunkt geschrieben werden:

# Prioritäten

1. Rasen mähen
2. Einkaufen
3. Kochen

Die Zahlen zur Nummerierung müssen nicht unbedingt aufeinanderfolgen; dies dient nur der besseren Lesbarkeit. In der Theorie könnte eine solche Liste auch wie folgt aussehen:

# Prioritäten

1. Rasen mähen
1. Einkaufen
1. Kochen

Würde ein solches Markdown-Element in eine HTML-Datei konvertiert werden, so würde ein Dokument aus einem <ol>-Tag mit einer entsprechenden Liste bestehen. Die Nummern würden in diesem Fall bei der Konvertierung entfallen.

Markdown ermöglicht auch das Einfügen von horizontalen Linien, die als Trennlinien verwendet werden können. Dies geschieht durch mindestens drei Bindestriche, Sternchen oder Unterstriche in einer separaten Zeile. Diese Trennlinien sind nützlich, um verschiedene Abschnitte eines Dokumentes visuell und thematisch zu trennen.

Neben Formatierungen können in Markdown auch Verlinkungen und Bilder integriert werden. Ein Link wird durch eckige Klammern für den Linktext und runde Klammern für die URL definiert:

[Linktext](http://example.com)

Diese Links werden auch Inline-Links genannt. Markdown ermöglicht daneben, Links auf eine elegantere Weise zu verwalten, insbesondere wenn dieselbe URL mehrfach verwendet wird. Dies geschieht durch die Verwendung von Referenz-Links. Ein Referenz-Link wird in zwei Teilen geschrieben: Der erste Teil enthält den Link-Text und eine Referenz in eckigen Klammern:

[Beispiel-Link][1]

Nun muss dazu die entsprechende Referenz definiert werden:

[1]: https://www.example.com

Diese Methode verbessert die Lesbarkeit des Quelltextes und erleichtert die bessere Verwaltung von Links, da die URL nur einmal geändert werden muss, wenn sie aktualisiert wird.

Neben der Verlinkung zu externen Webseiten ermöglicht Markdown auch das Verlinken zu anderen Teilen desselben Dokumentes, was besonders nützlich für lange Texte oder Dokumentationen ist. Dies wird durch die Verwendung von Anker-Links erreicht. Ein Anker-Link verweist auf eine bestimmte Überschrift im Dokument. Beispielhaft könnte dies so aussehen:

[Einleitung](#einleitung)

Damit würde dieser Link auf die Überschrift Einleitung verweisen.

Eine eher selten genutzt Möglichkeit der Verlinkung sind sogenannte Autolinks. Damit können URLs und E-Mail-Adressen automatisch in Links umgewandelt werden. Dazu muss die betreffende URL oder E-Mail-Adresse in spitze Klammern gesetzt werden:

<example.com>

Die Syntax zur Einbindung von Bildern ähnelt der von Verlinkungen. Jedoch wird ein Ausrufezeichen vor der Definition genutzt:

![Alt-Text](http://example.com/bild.jpg)

Auch die Angabe eines Titels ist bei dieser Art der Definition möglich:

![Alt-Text](http://example.com/bild.jpg "Titel des Bildes")

Daneben sind wie bei der Verlinkung auch bei der Definition von Bildern die Möglichkeiten von Referenzen gegeben.

Neben den klassischen Elementen, die in Markdown dargestellt werden können, existieren auch Elemente, welche durch verschiedene Erweiterungen bzw. Varianten, wie GitHub Flavored Markdown, zu Markdown kamen.

In diesen Erweiterungen können unter anderem Tabellen definiert werden. Tabellen können erstellt werden, indem Spalten durch senkrechte Striche und Zeilen durch Zeilenumbrüche getrennt werden. Die Kopfzeile wird durch eine Trennlinie aus Bindestrichen unterstrichen. Diese Syntax macht es einfach, strukturierte Daten darzustellen.

Eine solche Tabelle könnte beispielhaft wie folgt aussehen:

| Spalte 1 | Spalte 2 | Spalte 3 |
|----------|----------|----------|
| Inhalt 1 | Inhalt 2 | Inhalt 3 |
| Inhalt 4 | Inhalt 5 | Inhalt 6 |

Auch eine Syntax für Fußnoten ist im ursprünglichen Markdown nicht vorgesehen, wurde aber in unterschiedlichsten Varianten definiert:

Das ist ein Beispieltext mit einer Fußnote.[^1]

[^1]: Dies ist der Text der Fußnote.

Komplexer wird es bei der Integration von mathematischen Formeln in Markdown. Hier sind unterschiedliche Möglichkeiten gegeben, wie die Nutzung von MathJax oder direkte Unterstützung der LaTeX-Syntax für Formeln, die allerdings nur in bestimmten Varianten und Markdown-Werkzeugen unterstützt werden.

Geschmacksrichtungen

Standard-Markdown, oft einfach Markdown genannt, ist die ursprüngliche Version, die von John Gruber veröffentlicht wurde. Es bietet grundlegende Formatierungsoptionen wie Überschriften, Listen, Links, Bilder und Zitate.

Daneben existieren Markdown-Varianten, welche unterschiedlichste Formatierungsmittel und Möglichkeiten hinzufügen. Diese Varianten erweitern die ursprüngliche Markdown-Syntax und bieten zusätzliche Funktionen, um den unterschiedlichen Anforderungen der Benutzer gerecht zu werden. Jede Variante hat ihre eigenen spezifischen Anwendungsfälle und wird in verschiedenen Kontexten bevorzugt.

Zu den häufigsten Varianten zählen GitHub Flavored Markdown, CommonMark, Markdown Extra, MultiMarkdown und die Pandoc-Markdown-Variante, wobei CommonMark im Verlauf des Artikels noch separat betrachtet werden soll.

Varianten unter der Lupe

GitHub Flavored Markdown ist eine erweiterte Version von Markdown, die von GitHub entwickelt wurde. Sie fügt zusätzliche Funktionen hinzu, die speziell auf die Bedürfnisse von Entwicklern und die Nutzung auf GitHub zugeschnitten sind. Zu den Erweiterungen gehören Tabellen, erweiterte Listen, Inline-Code, Codeblöcke mit Syntaxhervorhebung und Task-Listen.

Markdown Extra ist eine Erweiterung, die von Michel Fortin entwickelt wurde. Es fügt zusätzliche Funktionen wie Definition Lists, Fußnoten, Abkürzungen und Tabellen hinzu.

MultiMarkdown wurde von Fletcher Penney entwickelt und erweitert die Fähigkeiten von Markdown um Funktionen wie Tabellen, Fußnoten, Referenzen und mathematische Unterstützung. Es ist besonders nützlich für wissenschaftliche und technische Dokumentationen.

Neben diesen Varianten existieren weitere Markdown-Varianten, wie RMarkdown und kramdown, welche hier allerdings nicht weiter behandelt werden sollen.

Standardisierung

Die ursprüngliche Markdown-Spezifikation von John Gruber kämpft mit einigen Mehrdeutigkeiten. Daneben wurden im Laufe der Zeit, wie oben beschrieben, eigene Varianten und Erweiterungen von Markdown entwickelt. Diese Varianz führte zu Problemen beim Teilen und Verarbeiten von Markdown-Dokumenten.

Im Jahr 2012 initiierte eine Gruppe von Personen, zu der Jeff Atwood und John MacFarlane gehörten, eine Standardisierungsinitiative. Eine Community-Website wurde erstellt, um eine Vielzahl von Werkzeugen und Ressourcen zu dokumentieren, die Autoren von Dokumenten und Entwicklern verschiedener Markdown-Implementierungen zur Verfügung stehen sollten.

Im September 2014 äußerte Gruber Bedenken hinsichtlich der Nutzung des Namens Markdown für diese Initiative, woraufhin sie in CommonMark umbenannt wurde.

CommonMark veröffentlichte mehrere Versionen einer Spezifikation, einer Referenzimplementierung und einer Testsuite und plant eine endgültige 1.0-Spezifikation vorzustellen. Diese 1.0-Spezifikation wurde jedoch bisher nicht veröffentlicht, da noch wichtige Probleme ungelöst sind.

Einige Projekte haben mittlerweile die Definition von CommonMark übernommen darunter Discourse, GitHub, und Stack Exchange.

Vom CommonMark-Projekt werden unterschiedlichste Parser angeboten, wie commonmark-java, welche wiederum Erweiterungen unterstützen. Daneben existieren andere Parser, welche ebenfalls die CommonMark-Spezifikation implementieren, z. B. markdown-it.

Auch wenn sich CommonMark in vielen Bereichen durchgesetzt hat, ist die Vielfalt und Unterschiedlichkeit der Markdown-Derivate, schon im Ursprung von Markdown angelegt, neben den anderen Problemen, welche oft mit der Definition eines Standards eingehen.

RFCs

Daneben fand Markdown auch bereits Erwähnung in einigen RFCs. Im März 2016 wurden zwei relevante RFCs veröffentlicht: RFC 7763 führte den MIME-Typ text/markdown ein, und RFC 7764 diskutierte unter anderem die Varianten MultiMarkdown, GitHub Flavored Markdown, Pandoc und Markdown Extra.

Markdown in der Praxis

Doch wie sieht die Nutzung von Markdown in der Praxis aus? Hier haben sich in den vergangenen Jahren viele Gebiete gefunden, in denen Markdown genutzt wird.

Texteditoren und IDEs

Viele Entwicklungsumgebungen und Texteditoren unterstützen Markdown mittlerweile von Haus aus. Dies bedeutet meist ein (optionales) Rendering und eine Hervorhebung der Formatierungselemente, wie bei der Fett- und Kursivstellung von Texten. Im Rahmen von Textdateien wird als Endung für Markdown-Dateien überwiegend die Endung .md genutzt.

Markdown-Editor in IntelliJ IDEA

So unterstützen IDEs wie die JetBrains IDEs und Editoren wie Atom, Visual Studio Code oder auch Texteditoren wie Notepad++, Sublime Text oder TextMate Markdown.

Markdown-Unterstützung in TextMate

Daneben existieren mit Editoren wie MarkText, Anwendungen welche speziell auf Markdown geeicht sind. Dieser Editor bietet eine Echtzeit-Vorschau, Unterstützung für CommonMark und GitHub Flavored Markdown sowie eine Vielzahl von Themes und Tastenkombinationen.

Zusätzlich zu den beschriebenen Texteditoren existieren auch webbasierte Markdown-Editoren wie Dillinger.

Der Markdown-Editor Dillinger

Auch dieser Editor bietet eine Echtzeit-Vorschau und die Möglichkeit, Dokumente in unterschiedliche Formaten zu exportieren.

Notiz-Applikationen

Neben reinen Texteditoren und IDEs haben sich mittlerweile auch viele Notiz-Applikationen für Markdown erwärmt.

Während die Unterstützung bei Apps wie Evernote und OneNote eher eingeschränkt ist, oder nur durch Plugins ermöglicht wird, existieren andere Applikationen wie Bear, Joplin oder Obsidian, die sich weitgehend auf Markdown stützen.

Joplin nutzt Markdown als Basis

Markdown dient hier als schneller und unkomplizierter Weg, Informationen zu erfassen. Je nach Applikation werden unterschiedliche Ansichten auf die Markdown-Dokumente geliefert, wie zum Beispiel das Quelldokument und das entsprechende Rendering. Bei Joplin werden auch Webseiten in Markdown konvertiert, wenn sie mit dem Webclipper gespeichert wurden.

Blogging und Content Management

Viele Blogging-Plattformen wie WordPress, Ghost und Jekyll unterstützen Markdown, was es Autoren ermöglicht, sich auf das Schreiben zu konzentrieren, ohne sich um die Formatierung zu sorgen.

Da Markdown-Dateien ursprünglich darauf angelegt waren, einfach in HTML umgewandelt zu werden, vereinfacht dies die Veröffentlichung im Web.

Je nach verwendetem System werden hier, wie im Falle von WordPress, Plugins für die Unterstützung benötigt. Andere Systeme wie Ghost und Jekyll unterstützen Markdown nativ.

Dokumentation und technisches Schreiben

Besonders beliebt ist Markdown in der Softwareentwicklung für die Erstellung von Dokumentationen.

Plattformen wie GitHub verwenden Markdown für README-Dateien, die Projektdetails und Anweisungen enthalten. Mit Markdown können Entwickler schnell und effizient Dokumentationen erstellen und aktualisieren.

# Java Starter Project

Starter project for Java based on Maven. Generates a fat JAR file containing all dependencies. JAR files are created with:

> mvn package

## Dependencies

Includes some basic dependencies:

* Guava
* GSON
* SLF4J
* JUnit (Version 5)

...

Neben der Dokumentation in Softwareprojekten existieren eine Reihe von Dokumentationstools.

Eine aus Markdown erzeugte Mkdocs-Dokumentation

So setzen Werkzeuge wie MkDocs und Sphinx auf Markdown und auch Plattformen wie ReadTheDocs unterstützen Markdown.

E-Mails und Kommunikation

Markdown kann zum Schreiben von E-Mails verwendet werden, um Text klar und strukturiert zu formatieren. Einige E-Mail-Clients unterstützen Markdown direkt. So existieren Clients wie MailMate, die Markdown nativ zum Schreiben von E-Mails unterstützen.

Auch etablierte Mail-Clients wie Thunderbird können über Add-Ons wie Markdown Here mit einer entsprechenden Funktionalität nachgerüstet werden.

Präsentationen

Mittels entsprechender Frameworks und wie reveal.js können auch Präsentationen über Markdown erstellt werden.

Reveal.js ist ein Open-Source-Framework zur Erstellung von Präsentationen im Webbrowser. Entwickelt von Hakim El Hattab, ermöglicht es Nutzern, ansprechende und interaktive Präsentationen mit HTML, CSS und JavaScript, aber auch mit Markdown zu gestalten.

Dadurch kann sich der Ersteller einer Präsentation auf die Inhalte konzentrieren, ohne sich mit Designfragen auseinandersetzen zu müssen.

Eine reveal.js Präsentation

Dazu müssen die Markdown-Dateien nur innerhalb der Index-Datei der reveal.js-Präsentation eingebunden werden:

<div class="slides">
    <section data-markdown="markdown/intro.md"
				data-separator="^-----\n"
				data-separator-vertical="^---\n"
				data-separator-note="^Note:"
				data-charset="utf-8">
	</section>
	<section data-markdown="markdown/webservices.md"
				data-separator="^-----\n"
				data-separator-vertical="^---\n"
				data-separator-note="^Note:"
				data-charset="utf-8">
	</section>

...

Aussehen würde eine beispielhafte Slideabfolge einer Sektion dabei wie folgt:

## OpenAPI

aka Swagger

Note:
* maschinenlesbare Interfacedefinitionen
* Contract-First-Gedanke
* betreut von der OpenAPI Initative

---

![OpenAPI Initiative](images/openapi.png)

Note:
* Atlassian
* Google
* Paypal
* SAP

...

Damit lassen sich über Markdown schnell Präsentationen erzeugen, welche den Fokus auf den Inhalt, anstelle der mühsamen Gestaltung legen.

Schreiben

Neben den vorgestellten Texteditoren, existieren eine Reihe von Werkzeugen, welche sich auf den Aspekt des Schreibens längerer Werke, mittels Markdown konzentrieren.

So existiert mit iA Writer ein minimalistischer Texteditor, der sich besonders an Autoren, Journalisten und andere Schreibende richtet, die eine ablenkungsfreie Umgebung schätzen.

Speziell zu iA Writer existieren Open Source-Alternativen, wie FocusWriter, welche sich ebenfalls ablenkungsfreies Schreiben auf die Fahnen geschrieben haben.

Ulysses

Eine weitere auf Markdown zentrierte Schreibanwendung ist Ulysses, die speziell für Autoren und Schriftsteller entwickelt wurde. Sie bietet eine ablenkungsfreie Benutzeroberfläche und eine Vielzahl von Werkzeugen, die das Schreiben und Organisieren von Texten erleichtern.

Ulysses unter macOS

Die App basiert auf Markdown, und die erzeugten Dokumente können in unterschiedliche Ausgabeformate exportiert werden.

Kollaboratives Schreiben

Neben dem Schreiben als Einzelperson existieren etliche Werkzeuge für kollaboratives Schreiben, wie zum Beispiel die unterschiedlichsten Varianten von EtherPad. Mit HedgeDoc existiert ein solcher webbasierter Editor mit Markdown-Unterstützung.

HedgeDoc als kollaborativer Markdown-Editor

Ursprünglich als CodiMD bekannt, bietet die Anwendung eine benutzerfreundliche Oberfläche, die sowohl für Einzelpersonen als auch für Teams geeignet ist. Die Markdown-Unterstützung orientiert sich an CommonMark und dem GitHub Flavored Markdown.

Zettlr

Zettlr ist eine freie Software, die darauf abzielt, das Schreiben und Verwalten von Texten zu unterstützen. Hier liegt der Fokus auf wissenschaftlichem Arbeiten. Die Anwendung bietet Funktionen zur Erstellung von Markdown-Dokumenten und zur Organisation von Notizen.

Zettlr unter macOS

Zudem ist sie mit Referenzverwaltungstools wie Zotero kompatibel, was die Verwaltung von Literaturquellen erleichtert. Zettlr ermöglicht den Export von Dokumenten in verschiedene Formate wie PDF und Word.

Im weiten Web

Grundsätzlich findet sich Markdown-Unterstützung in vielen webbasierten Systemen, wie Wikis, Diskussionsplattformen und vielen weiteren.

Foren wie Reddit und Stack Overflow unterstützen Markdown, um Benutzern das Formatieren ihrer Beiträge zu erleichtern. Durch die einfache Syntax können auch Nutzer ohne größere technische Vorkenntnisse ihre Beiträge sinnvoll gestalten.

Konverter

Neben dem Schreiben in Markdown ist oft auch der Export in andere Formate gewünscht. Während viele Applikationen dies von sich aus beherrschen, gibt es auch spezialisierte Software wie Pandoc, für solche Zwecke.

Pandoc ist ein Werkzeug zur Konvertierung von Dokumenten zwischen verschiedenen Formaten. Es unterstützt die Konvertierung von Markdown in HTML, PDF, DOCX, LaTeX und viele andere Formate.

Pandoc nutzt hierbei seinen eigenen Markdown-Dialekt und ist freie Software.

Ressourcen und Dokumentation

Neben Dokumenten wie der ursprünglichen Spezifikation und CommonMark existieren es eine Reihe von Ressourcen, die in Markdown einführen, wie der Markdown Guide.

Dieser bietet eine umfangreiche Ressource rund um Markdown, führt in die Syntax ein und pflegt eine Liste von Markdown-Tooling.

Auch existieren unzählige Cheat Sheets und Tutorials für Markdown und ermöglichen es Einsteigern schnell in der Markdown-Welt anzukommen.

Fazit

Markdown wurde ursprünglich mit einem minimalistischen Ansatz entwickelt und hat sich schnell eine breite Anhängerschaft aufgebaut. Während die unterschiedlichen Varianten etwas Verwirrung stiften können, ist der Kern von Markdown wohl definiert.

Selbst ohne spezielle Tools lässt sich Markdown problemlos lesen und verstehen, was es ideal für die Erstellung von Dokumentationen, Notizen und Texten macht.

Mittels Markdown können elegant und schnell Texte geschrieben werden, ohne dass sich in Formatierungsoptionen und Designfragen verloren wird. Damit bietet es im Zusammenhang mit entsprechenden Applikationen eine ablenkungsfreie und effiziente Schreibumgebung.

Überdies bietet Markdown bzw. die Werkzeuge rund um Markdown die Flexibilität, ansprechend formatierte Dokumente zu exportieren. Diese Kombination aus Einfachheit und Vielseitigkeit machte Markdown zu einem unverzichtbaren Werkzeug.

Neben dem reinen Schreiben hat sich Markdown darüber hinaus viele weitere Anwendungsgebiete erobert und wird uns sicherlich auch in Zukunft begleiten.

Dieser Artikel erschien ursprünglich auf Golem.de und ist hier in einer alternativen Variante zu finden.