@zvava@twtxt.net I reckon there’s currently nobody working on v2. Which timezone are you in? Just post your questions here or head over to #yarn.social at libera.chat for a more realtime conversation via IRC.
@zvava@twtxt.net Hey 👋 Welcome to Yarn.social 🤗
@dce@hashnix.club these are some of the same reasons that I enjoy Yarn.social/Twtxt 🙌
@Yarn@yarn.social yo, what’s up? I am busy running my business here!
Hello @Yarn.social@yarn.social 👋 (testing something)
Finally I propose that we increase the Twt Hash length from 7
to 12
and use the first 12
characters of the base32 encoded blake2b hash. This will solve two problems, the fact that all hashes today either end in q
or a
(oops) 😅 And increasing the Twt Hash size will ensure that we never run into the chance of collision for ions to come. Chances of a 50% collision with 64 bits / 12 characters is roughly ~12.44B Twts. That ought to be enough! – I also propose that we modify all our clients and make this change from the 1st July 2025, which will be Yarn.social’s 5th birthday and 5 years since I started this whole project and endeavour! 😱 #Twtxt #Update
@twtxtory@twtxtory.adn.org.es Hello 👋 Welcome to Yarn.social / Twtxt 😅
I’m thinking of building a hardened peering protocol for Yarn.social’s yarnd
: pods establish cryptographic identities, exchange signed /info
and /twt
payloads with signature verification, ensuring authenticity, integrity, and spoof-proof identity validation across the distributed network.
@andros@twtxt.andros.dev Zulu said:
what is twtxt for you?
For me Twtxt is just the underlying format that Yarn.social builds upon 😅
yarnd
UI/UX experience (for those that use it) and as "client" features (not spec changes). The two ideas are quite simple:
@kate@yarn.girlonthemoon.xyz (as I was trying to say…), Glad you think so👌 My goal with Yarn.social has always been to provide the best (best that I can anyway) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
Holy hell?! When I post this:
@<kate https://yarn.girlonthemoon.xyz/user/kat/twtxt.txt> Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood 😅
Something is swallowing it.
@kate@yarn.girlonthemoon.xyz Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (best that I can anyway!) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
yarnd
UI/UX experience (for those that use it) and as "client" features (not spec changes). The two ideas are quite simple:
Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (best that I can anyway!) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
yarnd
UI/UX experience (for those that use it) and as "client" features (not spec changes). The two ideas are quite simple:
@kate@yarn.girlonthemoon.xyz Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (best that I can anyway!) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
yarnd
UI/UX experience (for those that use it) and as "client" features (not spec changes). The two ideas are quite simple:
@kate@yarn.girlonthemoon.xyz Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (best that I can anyway!) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
yarnd
UI/UX experience (for those that use it) and as "client" features (not spec changes). The two ideas are quite simple:
This expands the usefulness of Twtxt / Yarn.social to:
- Sharing small posts
- Sharing links
- Sharing media
- Having long conversations
- Voting on topics, opinions or decisions
- RSVPing to virtual or physical events
💡 I had this crazy idea (or is it?) last night while thinking about Twtxt and Yarn.social 😅 There are two things I think that could be really useful additions to the yarnd
UI/UX experience (for those that use it) and as “client” features (not spec changes). The two ideas are quite simple:
- Voting – a way to cast, collect a vote on a decision, topic or opinion.
- RSVP – a way to “rsvp” to a virtual (pr physical) event.
Both would use “plain text” on top of the way we already use Twtxt today and clients would render an appropriate UI/UX.
Timeline of Evolution of Twtxt/Yarn.social:
- 2016 – Twtxt created by John Downey: plain text + HTTP = minimalist microblogging
- 2017–2019 – Community builds CLI tools, but adoption remains niche
- 2020 – Yarn.social launched by @prologic@twtxt.net with federation, threading, UI
- 2021–2023 – Pods sync, user mentions, blocking, search, and media support added
- 2024+ – Yarn.social becomes the reference Twtxt platform, with active federated pods
I asked ChatGPT what it knows about Twtxt 😂 And surprisingly it’s rather accurate:
Twtxt is a minimalist, decentralized microblogging format introduced by John Downey in 2016. It uses plain text files served over HTTP—no accounts, databases, or APIs.
In 2020, James Mills (@prologic@twtxt.net) launched Yarn.social, an extended, federated implementation with user discovery, threads, mentions, and a full web UI.
Both share the same .twtxt.txt format but differ in complexity and social features.
@doesnm.p.psf.lt@doesnm.p.psf.lt It was always intended to have both Yarn.social and Salty.im integrate together. Yes. This includes having a set of specifications that anyone can write clients to.
@andros@twtxt.andros.dev I don’t see any “fighting” here. This is just good experimentation. Unfortunately there hasn’t really been enough time or effort by other “client authors” yet, me especially as I’ve been super busy with ya’ know my “day job” that pays the bills and refactoring yarnd
to use a new and shiny and much better SqliteCache
🤣 – I certainly don’t think your efforts are wasted at all. I would however like @doesnm.p.psf.lt@doesnm.p.psf.lt encourage you to look at the work we’ve done as a community (which was also driven out of the Yarn.social / Twtxt community years back).
👋 Hello @emily0824@txt.sour.is, welcome to txt.sour.is, a Yarn.social Pod! To get started you may want to check out the pod’s Discover feed to find users to follow and interact with. To follow new users, use the ⨁ Follow
button on their profile page or use the Follow form and enter a Twtxt URL. You may also find other feeds of interest via Feeds. Welcome! 🤗
👋 Hello @empockelimi@txt.sour.is, welcome to txt.sour.is, a Yarn.social Pod! To get started you may want to check out the pod’s Discover feed to find users to follow and interact with. To follow new users, use the ⨁ Follow
button on their profile page or use the Follow form and enter a Twtxt URL. You may also find other feeds of interest via Feeds. Welcome! 🤗
👋👋 Reminders that this weekend our monthly Yarn.social online meetup. Who’s coming? 🤔 Some possible topics:
- Direct Messaging for Twtxt
- @prologic@twtxt.net ’s new EdgeGuard services 🤣
- What’s the weather like? 👍
Details:
- When: 25th Jan 2025 at 12:00PM UTC (midday)
- Where: https://meet.mills.io/call/Yarn.social
Would anyone object to the feeds.twtxt.net service having auth soon™ ? 🤔 I’m tired of the garbage feeds that it has accumulated over tie (spammers) and I want to a) clean it up b) lock it down somewhat.
The idea would be that you’d login with your Yarn.social account on some pod you control/operate or share with a nice person 🤣 – For those unfamiliar, this is called IndieAuth or IndieLogin. ALL Yarn.social pods are in fact valid (have been for years now) IndieAuth Providers. So I can just ust that. This also technically means you could login with your own domain too (more on that later…)
Hmm, I just noticed that the feed template seems to be broken on your yarnd instance, @kat@yarn.girlonthemoon.xyz. Looking at your raw feed file (and your mates as well), line 6 reads:
# This is hosted by a Yarn.social pod yarn running yarnd ERSION@OMMIT go1.23.4
^^^^^^^^^^^^
Looks like the first letters of the version and commit got somehow chopped off. I’ve no idea what happened here, maybe @prologic@twtxt.net knows something. :-? I’m not familiar with the templating, I just recall @xuu@txt.sour.is reporting in IRC the other day that he’s also having great fun with his custom preamble from time to time.
That “broken” comment doesn’t hurt anything, it’s still a proper comment and hence ignored by clients. It’s just odd, that’s all.
@gretahayes@yarn.girlonthemoon.xyz 👋 Welcome to Yarn.social 🙌
👋 Hello @test@yarn.girlonthemoon.xyz, welcome to yarn, a Yarn.social Pod! To get started you may want to check out the pod’s Discover feed to find users to follow and interact with. To follow new users, use the ⨁ Follow
button on their profile page or use the Follow form and enter a Twtxt URL. You may also find other feeds of interest via Feeds. Welcome! 🤗
yarnc
the command-line client uses.
Yes, ik. But i can’t use this api without yarn.social (feed is just file)
@andros@twtxt.andros.dev What do you mean by API? yarnd
(which powers Yarn.social pods like twtxt.net) does have an API, however that API is designed for clients to interact with the pod and the user’s account and feed. e.g: there is a command-line client called yarnc
and I used to maintain a mobile native app (using Flutter).
What use-case did you have in mind?
good morning new yarn social/twtxt friends (it is literally 5:30pm where i am i woke up at 3pm and i am still drinking coffee)
tried building the yarn social app for android but wahhh android studio and flutter scare me… big ass IDEs and SDKs and shit not worth it
Test Mention for Goryon! @doesnm@demo.yarn.social
I’m gonna upload my part of the video to youtube and the slides to my website within a day or two. Then you can add it to yarn.social etc.
Starting the call: https://meet.mills.io/call/Yarn.social
Come join us!
@bender@twtxt.net The tagline of Timeline is “a single user twtxt/yarn pod” not just a yarn pod. Similar to GNU/Linux. When we came up with the concept of Yarn Social it was a way to rebrand twtxt with the extensions that makes conversations like this possible.
👋 Reminder folks of the upcoming Yarn.social monthly online meetup:
- Event: Yarn.social Online Meetup
- When: 23rd November 2024 at 12:00PM UTC (midday)
- Where: Mills Meet : Yarn.social
👋 Thanks for joining us on our Sept monthly Yarn.social meetup today y’all 🙇♂️ We had @david@collantes.us @sorenpeter@darch.dk @doesnm@doesnm.p.psf.lt @falsifian@www.falsifian.org and @xuu@txt.sour.is 💪 Nice turn out! (not all at once of course, as we normally run this over 4 hours as we span many time zones!)
Things we talked about:
- Decentralised vs. Distributed
- Use of SHA256 for Twt Hash(es)
- We solved Edits! 🥳
- UUID(s) probably won’t work! (susceptible to sppofing)
- Helped @sorenpeter@darch.dk write some PHP to process/parse
User-Agent
and service his feed via a custom PHP script 😅
- @falsifian@www.falsifian.org introduced himself 👌
- Talked about Merkle Trees 🌳
Did I miss anything? 🤔
Yes, that is exactly what I meant. I like that collection and “twtxt v2” feels like a departure.
Maybe there’s an advantage to grouping it into one spec, but IMO that shouldn’t be done at the same time as introducing new untested ideas.
See https://yarn.social (especially this section: https://yarn.social/#self-host) – It really doesn’t get much simpler than this 🤣
Again, I like this existing simplicity. (I would even argue you don’t need the metadata.)
That page says “For the best experience your client should also support some of the Twtxt Extensions…” but it is clear you don’t need to. I would like it to stay that way, and publishing a big long spec and calling it “twtxt v2” feels like a departure from that. (I think the content of the document is valuable; I’m just carping about how it’s being presented.)
Official yarn.social tool: git.mills.io/yarnsocial/useragent
👋 Reminder folks of the upcoming Yarn.social monthly online meetup:
I hope to see @david@collantes.us @movq@www.uninformativ.de @lyse@lyse.isobeef.org @xuu@txt.sour.is @sorenpeter@darch.dk and hopefully others too @aelaraji@aelaraji.com @falsifian@www.falsifian.org and anyone else that sees this! 🙏 We’re hopefully going to primarily discuss the future of Twtxt and the last few weeks of discussions 🤣
- Event: Yarn.social Online Meetup
- When: 28th September 2024 at 12:00pm UTC (midday)
- Where: Mills Meet : Yarn.social
- Cadence: 4th Saturday of every Month
Agenda:
- Let’s talk about the upcoming changes to the Twtxt spec(s)
- See #xgghhnq
- See #xgghhnq
On the Subject of Feed Identities; I propose the following:
- Generate a Private/Public ED25519 key pair
- Use this key pair to sign your Twtxt feed
- Use it as your feed’s identity in place of
# url =
as# key = ...
For example:
$ ssh-keygen -f prologic@twtxt.net
$ ssh-keygen -Y sign -n prologic@twtxt.net -f prologic@twtxt.net twtxt.txt
And your feed would looke like:
# nick = prologic
# key = SHA256:23OiSfuPC4zT0lVh1Y+XKh+KjP59brhZfxFHIYZkbZs
# sig = twtxt.txt.sig
# prev = j6bmlgq twtxt.txt/1
# avatar = https://twtxt.net/user/prologic/avatar#gdoicerjkh3nynyxnxawwwkearr4qllkoevtwb3req4hojx5z43q
# description = "Problems are Solved by Method" 🇦🇺👨💻👨🦯🏹♔ 🏓⚯ 👨👩👧👧🛥 -- James Mills (operator of twtxt.net / creator of Yarn.social 🧶)
2024-06-14T18:22:17Z (#nef6byq) @<bender https://twtxt.net/user/bender/twtxt.txt> Hehe thanks! 😅 Still gotta sort out some other bugs, but that's tomorrows job 🤞
...
Twt Hash extension would change of course to use a feed’s ED25519 public key fingerprint.
@prologic@twtxt.net One of your twts begins with (#st3wsda): https://twtxt.net/twt/bot5z4q
Based on the twtxt.net web UI, it seems to be in reply to a twt by @cuaxolotl@sunshinegardens.org which begins “I’ve been sketching out…”.
But jenny thinks the hash of that twt is 6mdqxrq. At least, there’s a very twt in their feed with that hash that has the same text as appears on yarn.social (except with ‘ instead of ’).
Based on this, it appears jenny and yarnd disagree about the hash of the twt, or perhaps the twt was edited (though I can’t see any difference, assuming ’ vs ’ is just a rendering choice).
@prologic@twtxt.net I guess I thought they were search engines. Anyway, the registry API looks like a decent one for searching for tweets. Could/should yarn.social pods implement the same API?
I just manually followed the steps at https://dev.twtxt.net/doc/twthashextension.html and got 6mdqxrq. I wonder what happened. Did @cuaxolo@sunshinegardens.org edit the twt in some subtle way after twtxt.net downloaded it? I couldn’t spot a diff, other than ‘ appearing as ’ on yarn.social, which I assume is a transformation done by twtxt.net.
@prologic@twtxt.net How does yarn.social’s API fix the problem of centralization? I still need to know whose API to use.
Say I see a twt beginning (#hash) and I want to look up the start of the thread. Is the idea that if that twt is hosted by a a yarn.social pod, it is likely to know the thread start, so I should query that particular pod for the hash? But what if no yarn.social pods are involved?
The community seems small enough that a registry server should be able to keep up, and I can have a couple of others as backups. Or I could crawl the list of feeds followed by whoever emitted the twt that prompted my query.
I have successfully used registry servers a little bit, e.g. to find a feed that mentioned a tag I was interested in. Was even thinking of making my own, if I get bored of my too many other projects :-)
@movq@www.uninformativ.de Thanks, it works!
But when I tried it out on a twt from @prologic@twtxt.net, I discovered jenny and yarn.social seem to disagree about the hash of this twt: https://twtxt.net/twt/st3wsda . jenny assigned it a hash of 6mdqxrq but the URL and prologic’s reply suggest yarn.social thinks the hash is st3wsda. (And as a result, jenny –fetch-context didn’t work on prologic’s twt.)
👋 Hello @nigergibe@anthony.buc.ci, welcome to Buccipod, a Yarn.social Pod! To get started you may want to check out the pod’s Discover feed to find users to follow and interact with. To follow new users, use the ⨁ Follow
button on their profile page or use the Follow form and enter a Twtxt URL. You may also find other feeds of interest via Feeds. Welcome! 🤗
Thanks @prologic@twtxt.net! I like the way Yarn.social is making all of twtxt stronger, not just Yarn.social pods.
👋 Okay folks, let’s startup the Yarn.social calls again.
- Event: Yarn.social Online Meetup
- When: 25th May 2024 at 12:00pm UTC (midday)
- Where: Mills Meet : Yarn.social
- Cadence: 4th Saturday of every Month
Agenda:
Anything we want to talk about. Twtxt, Yarn, self hosting, cool stuff you’ve been working on. chit-chat, whatever 😅
I’ve been thinking of how to notify someone else that you’ve replied to their twts.
Is there something already developed, for example on yarn.social?
Let’s say I want to notify https://sour.is/tiktok/America/Denver.txt that I’ve replied to some twt. They don’t follow me back, so they won’t see my reply.
I would send my URL to, could be, https://sour.is/tiktok/replies?url=MY_URL and they’ll check that I have a reply to some of their twts, and could decide to follow me back (after seeing my twtxt profile to avoid spam)
Another option could be having a metadata like
follow-request=https://sour.is/tiktok/America/Denver.txt TIMESTAMP_IN_SECONDS
that the other client has to look for, to ensure that the request comes from that URL (again, to avoid spam)
This could be deleted after the other .txt has your URL in the follow list, or auto-expire after X days to clean-up old requests.
What do you think?
I mean I could run my own yarn.social pod and of course achieve that
@xuu@txt.sour.is @prologic@twtxt.net Yarn.social without threading (as it would be the case in a “truncated” feed) does not make sense to me.
Put another way: Yarn.social is not twtxt. The content that we all have in our feeds really is much closer to a web forum or usenet or whatever. It’s threaded conversations. twtxt, as I believe it was originally intended, are short little status updates – that’s it. The formats of Yarn.social and twtxt might be very similar, but the content is vastly different and, in a way, incompatible. (As such, I think I understand very well that the original twtxt crowd is disgruntled.)
That proposed truncated feed doesn’t really provide any value, if you ask me. 🤔 It’d just be chaotic.
💡 Quick ‘n Dirty prototype Yarn.social protocol/spec:
If we were to decide to write a new spec/protocol, what would it look like?
Here’s my rough draft (back of paper napkin idea):
- Feeds are JSON file(s) fetchable by standard HTTP clients over TLS
- WebFinger is used at the root of a user’s domain (or multi-user) lookup. e.g:
prologic@mills.io
->https://yarn.mills.io/~prologic.json
- Feeds contain similar metadata that we’re familiar with: Nick, Avatar, Description, etc
- Feed items are signed with a ED25519 private key. That is all “posts” are cryptographically signed.
- Feed items continue to use content-addressing, but use the full Blake2b Base64 encoded hash.
- Edited feed items produce an “Edited” item so that clients can easily follow Edits.
- Deleted feed items produced a “Deleted” item so that clients can easily delete cached items.
@prologic@twtxt.net On the one hand, twtxt has become more popular thanks to Yarn.social. On the other hand, subject and hashtag extensions took away the simplicity of the protocol. For example, it is impossible to understand which conversation (#base32hash) a tweet refers to or to reply to a tweet without going to a yarn.social pod. Compare with re: in this tweet which can be written without using any client at all
@tkanos@twtxt.net user in question had posted information about someones employment in what appeared to be a threat to contact their boss. Maybe it was in jest.. but we felt it was a form of doxing that we do not wish to see within our community. Yarn.Social is first and foremost a town square of ideas and should be viewed as a safe place for all.
@jlj@twt.nfld.uk @xuu@txt.sour.is hello! @prologic@twtxt.net and I were chatting about the question of globally deleting twts from the yarn.social network. @prologic@twtxt.net noted that he could build the tools and endpoints to delete twts, but some amount of cooperation from pod operators would be necessary to make it all work together. He asked me to spawn a discussion of the subject here, so here we are!
I don’t have enough technical knowledge of yarn.social to say with any credibility how it all should work, but I can say that I think it ought to be possible and it’d be good to do for those rare times when it’s needed.
@abucci@anthony.buc.ci Do you happen to use Signal btw? 🤔 If you do, it would be great if you could join the Yarn.social Signal Group (_at least until we have Group support and better apps for Salty.im 😅)
Huh… Nope.
HTTP/1.1 200 OK
Content-Length: 407
Content-Type: text/calendar
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag
Permissions-Policy: interest-cohort=()
Content-Security-Policy: default-src 'none'; sandbox
Referrer-Policy: same-origin
Vary: Authorization
BEGIN:VCALENDAR
VERSION:2.0;2.0
PRODID:SandCal
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20220822T180903Z
UID:bb63bfbd-623e-4805-b11b-3181d96375e6
DTSTART;TZID=America/Chicago:20220827T000000
CREATED:20220822T180903Z
LAST-MODIFIED:20220822T180903Z
LOCATION:https://meet.jit.si/Yarn.social
SUMMARY:Yarn Call
RRULE:FREQ=WEEKLY
DTEND;TZID=America/Chicago:20220827T010000
END:VEVENT
END:VCALENDAR
👋 Hello @burglar@txt.sour.is, welcome to txt.sour.is, a Yarn.social Pod! To get started you may want to check out the pod’s Discover feed to find users to follow and interact with. To follow new users, use the ⨁ Follow
button on their profile page or use the Follow form and enter a Twtxt URL. You may also find other feeds of interest via Feeds. Welcome! 🤗
@chronolink@chrono.tilde.cafe Replies are not part of the original twtxt format. They were added later as an extension by Yarn.social: https://dev.twtxt.net/doc/twtsubjectextension.html (only the section “Machine-Parsable Conversation Grouping” is used these days)
@tamer@twtxt.net We’re not trying to compete with anything… If you’ve read About Yarn.social – In a nutshell I want to create an open, transparent social platform that respect’s folks privacy and freedoms. It must also be easy to use and down-to-earth where human interactions actually matter. None of this rubbish of manipulating what you see, driving up engagement numbers to serve your advertisers and all that garbage
JavaScript : web apps
wut?! 😳 seriously?! 🤦♂️
Python : small tools
Okay 👌
Go: micro services
Umm bad generalization 🤣 – Example yarnd
that powers most of Yarn.social 😂
Java: enterprise software
Yes! Oh gawd yes! 🤣 And Java™ needs to die a swift death!
C: crimes
Hmmm? 🤔 I feel this one is going to have some backslash and/or go the way of “Hacker” being misconstrued to mean entirely different/incorrect things as is what’s happening in the media (for various definitions of “media”).
🤔 👋 Reconsidering moving Yarn.social’s development back to Github: Speaking of which (I do not forget); @fastidious@arrakis.netbros.com and I were discussing over a video call two nights ago, as well as @lyse@lyse.isobeef.org who joined a bit later, about the the whole moved of all of my projects and their source code off of Github. Whilst some folks do understand and appreciate my utter disgust over what Microsoft and Copilot did by blatantly scraping open source software’s codebases without even so much as any attempt at attribution or respecting the licenes of many (if not all?) open source projects.
That being said however, @fastidious@arrakis.netbros.com makes a very good and valid argument for putting Yarn.social’s codebases, repositories and issues back on Github for reasons that make me “torn” over my own sense of morality and ethics.
But I can live with this as long as I continue to run and operate my new (yet to be off the ground) company “Self Hosted Pty Ltd” and where it operates it’s own code hosting, servicesa, tools, etc.
Plese comment here on your thoughts. Let us decide togetehr 🤗
Btw… You guys have gotta start posting more pictures/videos a bit more regularly 😂 Every time I show Yarn.social off to a friend to “sell” them the platform and get them off their privacy eroding garbage Facebook/Twitter/etc) The no. #1 question I get asked is:
Oh is this only comments/text
🤣 Let’s show off the platform as a whole a bit eh? 😅
Hmmm so… We seem to have a few pods offline in the network 😂 Also 😢
- @jlj@twt.nfld.uk’s twt.nfld.uk => 504 Gateway Time-out
- @adi@f.adi.onl’s f.adi.onl => 200 OK but doens’t appear to be a pod anymore?! 🤔
- @eldersnake@yarn.andrewjvpowell.com’s personal pod => offline due to lack of Solar/Battery power? 😅
- @lohn@tw.lohn.in’s personal pod => 503 Service Unavailable
It’s a bad day for Yarn.social 🤣
Good thing it’s all decentralised 😉
I keep going back ‘n’ forth on whether to experiment with Pleroma on my Pi. :-) A Tildes post on the sad news that Feneas is struggling has rekindled the fire, oddly. I just like knowing, first-hand, what’s involved in running these services; I feel it makes me a better yarn.social advocate. ^⨰^