Yarn.social
Yarn.social is a decentralised self-hosted social media
based on the Twtxt format
(with Extensions) that has a privacy-first focus.
There are no ads, no tracking, and no personal information is ever collected or stored.
Read more About Yarn.social or try the Demo Pod today!
Please contribute financially if you can! π
π Getting Started
Yarn.social is completely decentralized and operates on a ‘pull’-based model β not unlike ActivityPub based platforms like Mastodon. In order to get onboard and start following your friends, family or colleagues, you need a feed and a client.
- Run-a-pod yourself on your own server (or even on a Raspberry Pi )!
- Manually host your own feed and use any “compatible” client of your choosing, or write a new one that implements the specifications. Enjoy! π€
π§Ά Run-a-Pod
π£ NEW: (17 April 2022) Yarn is now available in the Vultr App Marketplace! See https://www.vultr.com/marketplace/apps/yarn for more details.
If you have Docker installed and available to run containers you can run a yarnd
instance by simply running:
1$ docker run -p 8000:8000 prologic/yarnd
Pre-compiled binaries can be found on the yarn Releases page,
and are compiled by James Mills; the *-checksums.txt.sig
can be verified with the GPG public key C1F16643ADFF61B4A39EA3FEAC4C014F1440EBD6
.
Otherwise, if you wish to compile from source and build yarnd
yourself – be sure to have Go installed – run the following:
1$ git clone https://git.mills.io/yarnsocial/yarn
2$ cd yarn
3$ make deps
4$ make
Now launch your instance by running:
1yarnd
For options, see yarnd --help
.
Please refer to the Configuring your Pod
guide for a production pod setup.
For other setups and community documentation on setting up a Yarn.social pod, please see Our Pod Owners’ Wiki; contributions are very welcome!
πͺ Self Host Manually
Joining the Yarn.social / Twtxt social ecosystem is as simple as writing a
RFC3339 timestamp, followed by a tab and your post to a text file, and then hosting that on a public web server. For example:
1$ echo -e "$(date -Is)\tHello World" >> twtxt.txt
That’s it! (But do read on…)
Since Yarn.social is built upon the Twtxt
spec with a few small (optional) extensions,
all you need to do to join the network and participate in the growing number
of users and conversations is:
- Host a
twtxt.txt
file somewhere; - Add some important Metadata
such as# Nick =
,# Description =
and# Avatar =
at a minimum; and - Use a twtxt Yarn-compatible client that
at least implements the Twt Subject Ext
and Twt Hash Ext such as the ones listed
in clients.
For the best experience your client should also support some of the
Twtxt Extensions developed by Yarn.social’s
development team and community. For example, being able to participate in
“threads” by implementing the Twt Subject and Twt Hash extensions, and the
Metadata extensions to advertise information about your feed, such as a
description and avatar.
πΈ Clients
The following clients are modern up-to-date and well maintained clients that
fully support the Twtxt
and Twtxt Extensions:
- jenny: A console twtxt client
with mutt integration
(tutorial) - jdtron/twet: A command-line client
- twtr: A twtxt client written in Go, for all your twting needs
- Yarn Desktop Client: A Desktop client for Yarn.social pods.
For other clients, tools and awesome stuff rleated to Yarn.social and Twtxt see:
π Example
A complete example of a feed would look like this:
# nick = Yarn
# url = https://yarn.social/twtxt.txt
# avatar = https://yarn.social/logo.png
# description = Yarn.social is a decentralised self-hosted social media based on the Twtxt format.
2022-10-30T23:20:41+10:00 Hello World
Which also happens to be the same feed at twtxt.txt; you can follow it in your client by entering the feed uri of https://yarn.social/twtxt.txt or @-mentioning the feed with either @<Yarn https://yarn.social/twtxt.txt>
(the Twtxt mention format) or [email protected]
(the yarnd
mention syntax).
Enjoy! π€
π¨βπ§ Services
The following supporting services help to support the Yarn.social platform and
are provided for the benefit of all users:
- search.twtxt.net: This is an instance of the Yarns search engine and crawls and indexes Yarn.social pods and Twtxt feeds.
- feeds.twtxt.net: This is an instance of rss2twtxt and is used as the primary “feed source” for all Yarn.social pods (by default)
and supports RSS/Atom and Twitterβ’. This allows users to “subscribe” to and “follow” websites, blogs or Twitterβ’ accounts.
πΎ Sources
The project is managed by a self-hosted Gitea instance
at: https://git.mills.io/yarnsocial
- yarn
π§Ά Theyarnd
self-hosted Yarn.social Pod server itself as well as theyarnc
command-line client for posting and interacting with theyarnd
API. - search
π The Yarn.social search engine that crawls the network of pods and twtxt feeds, scrapes and indexes every twt. - feeds
π an RSS/Atom and Twitterβ’ feed aggregator that consumes RSS/Atom and Twitterβ’ feeds and produces twtxt feeds for consumption by Yarn.social pods as well as twtxt clients in general. - app
π¦ A Flutter iOS and Android app for the Yarn.socialyarnd
API to provide a native mobile experience for users (which is in the process of being rebuilt).
π¨βπ»π©βπ» Contributing
Please contribute to our collective, every donation helps us continue to improve the software, ecosystem, mobile app(s) and supporting services that make up Yarn.social π
Otherwise you can help the project by contributing ideas, bug fixes, improvements, etc, we’re always looking for new contributors and we still have loads of things to do!
Please reach out to @prologic or join our Gitea instance at https://git.mills.io/ and start filing issues and pull requests to the main project.
π¬ Collaboration
We have an IRC channel #Yarn.social
on the Libera.Chat
IRC network. You are welcome to come chat with us and hang out.
For your convenience, you may wish to use the Web Chat client.
π΅οΈββοΈ Privacy and Abuse Policy
Yarn.social is a decentralised social media platform that supports micro-blogging (Twts) and full blogging. Pods (or individual instances) are owned and operators by “Pod Owners” or “Pod Operators”. Pods can either be configured as single-user or multi-user (the default).
As such all Yarn.social pods share the following default Abuse and Privacy policies:
Note: The privacy policy applies to ALL Yarn.social pods as the software yarnd
DOES NOT collect any personally identifiable information from users (i.e., no PII), or any metadata or analytics of any kind, nor does it send, sell or transfer any data from pods to any third parties.
πββοΈ πββοΈ FAQ
Q: Is Yarn.social a “social media” alternative?
A: Yes and no.
Yarn.social is really an ecosystem, a collection of specifications, clients and tools that users can use to interact with one another
“socially”, in the open and transparently.
Q: Does Yarn.social use Twtxt?
A: Yes. And it also extends the Twtxt specification with Extensions.
Q: Are any of these extensions required or mandatory?
A: Absolutely not!
You are free to use Twtxt however you wish.
You are also free to use all, some or none of the Extensions.
The choice is yours! However most (if not all) of the extensions were a formalization
of what was already being actively used by the Twtxt community. See below for more details.
Q: Which are the most important Extensions?
A: Of course any ranking is debatable, but since all extensions have
the goal to improve interaction and some of them are the result of what
a lot of feeds settled on anyways, this might help you:
- Twt Hash Extension
in combination with
Twt Subject Extension
for forming conversation trees - Multiline Extension
for writing longer twts with paragraphs - User-Agent Extension
for discovering feeds with multi-user clients - Metadata Extension
for additional feed metadata like description - Archive Feeds Extension
for archiving and rotating long feeds
See FAQ for more frequently asked questions.
π¨ββοΈ Licenses
Most of the software components here are licensed under the terms of the
AGPL-3.0 License with the exception of the hosting platform.