@prologic@twtxt.net good to see you are warming up to our overā¦, err, AI. š
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.
@bender@twtxt.net LOL š¤£
@prologic@twtxt.net class action! Class action! š¤š
@kat@yarn.girlonthemoon.xyz ngircd is nice: https://ngircd.barton.de/ You can absolutely host this on your server for you and your friends (Iāve been doing that for a very long time). Actually peering with something like libera is hard, though, because they have strict requirements and a lot of traffic. Then again, thereās no real benefit in peering, actually. IRC is pretty ādecentralizedā anyway and people are usually used to connecting to several networks, so joining another one isnāt a big deal, imho. š
@kat@yarn.girlonthemoon.xyz is there anything i can even run or is this like email where you should just use libera and shut up
@kat@yarn.girlonthemoon.xyz well gamja works fine and all with other peopleās networks but I WANT MY OWN LITTLE NETWORK. FOR FUN
@aelaraji@aelaraji.com THANK YOU :D
@movq@www.uninformativ.de no clue! iāve never had issues setting up websockets and the gamja client itself seems to work fine when connecting to other servers, but my bouncer doesnāt work right so itās soju T__T i THINK thereās a problem with the websockets but it seems to be working right so iām just confused
@gallowsgryph@prismdragon.net Welcome back. š
@kat@yarn.girlonthemoon.xyz I skimmed through the gamja docs and they say you need an āIRC WebSocket serverā ā no idea what that is. Does gamja not speak IRC directly but essentially āIRC over HTTPā? Curious. š¤
@prologic@twtxt.net @bmallred@staystrong.run Ah, I just found this, didnāt see it before:
https://restic.net/#compatibility
So, yeah, they do use semver and, yes, theyāre not at 1.0.0 yet, so things might break on the next restic update ⦠but they āpromiseā to not break things too lightheartedly. Hm, well. š Probably doesnāt make a big difference (they donāt say ādonāt use this software until we reach 1.0.0ā).
@kat@yarn.girlonthemoon.xyz Sounds like a lot of fun ! š GOOD LUCK!
AS136907 HWCLOUDS-AS-AP HUAWEI CLOUDS
@prologic@twtxt.net This shi_ is as fun as it is frustrating! š the bot is poking at me from a different ASN now, Alibabaās.
- Short term solution: Iāve geo-locked my Timeline instance since Iām the only one using it (and I only do so for reading twts when Iām away from terminal).
- Long term: I took a look at your Caddy WAF but couldnāt figure things out on my own; until then, Iāll be poking at Caddy-Defender, maybe throw in a Crowdsec for lols⦠#FUN
Oh hey @rrraksamam@twtxt.net š Welcome back! š Sorry about the data loss š¤Æ
@movq@www.uninformativ.de From what I can tell, they use strict semantic versioning and backwards compatibility. There are two versions of the storage, v1 and v2, but it doesnāt look like v2 is enabled yet.
@movq@www.uninformativ.de LOL š
@prologic@twtxt.net @bmallred@staystrong.run So is restic considered stable by now? āStableā as in āstable data formatā, like a future version will still be able to retrieve my current backups. I mean, itās at version ā0.18ā, but they donāt specify which versioning scheme they use.
AS136907 HWCLOUDS-AS-AP HUAWEI CLOUDS
@aelaraji@aelaraji.com Haha 𤣠Iād say itās just yet-another-bad-bot š¤ Iāve blocked a lot of such bots and often their entire networks (ASN) š¤¦āāļø
Some A hole has been trying to pull every single Twtxt feed that existed/still exists since forever. How do I know? Welpā Theyāve been querying my Timeline⢠instance for all of it, every single twtxt file and twt Hash they can find. šš¤¦ It must have been going on for days and I have just noticed⦠+ itās all coming from the same ASN AS136907 HWCLOUDS-AS-AP HUAWEI CLOUDS
Thank you Huawei for the DDos you sons of Glitches!!!
@kat@yarn.girlonthemoon.xyz oh and the logs say āfailed to write msg: use of closed network connectionā WHAT DOES THAT MEAN
@kat@yarn.girlonthemoon.xyz i canāt send any messages it complains about the server buffer I DONāT KNOW WHAT THAT MEANS
@kat@yarn.girlonthemoon.xyz i JUST want my own IRC server for fun. that is all i want
@bender@twtxt.net REALLLLL
@bender@twtxt.net super old ass CPU lol itās probably ancient in computer years! GTS needs a CPU thing that came after 2010 so that explains it (2008 machine) lmao
@kat@yarn.girlonthemoon.xyz lack of RAM, or weak CPU? I run GoToSocial too, on a 1GiB RAM VPS. š
@thecanine@twtxt.net I signed, reluctantly. Not because I donāt care about The Internet Archive, but because Change pesters quite a bit for a while afterwards asking, of course, for money.
@kat@yarn.girlonthemoon.xyz pandoc is a joy! I havenāt used any Microsoft word processing tools since forever. They want a Word document? Pandoc to the rescue!
@movq@www.uninformativ.de it seems you got plenty of choices. Thatās the cheapest of their products, and you are quite right, amazing pricing! I pay Apple $10/month for a shared-amongst-family 2TiB storage space.
@bender@twtxt.net My choices might be a bit limited, at least going by this list: https://www.hetzner.com/storage/storage-box (That would be some incredibly cheap storage.) Iāll probably have to order such a box and then play with it a little bit to see whatās possible.
@movq@www.uninformativ.de there are many other similar backup tools. I would love to hear what will make you pick Borg above the rest.
@bender@twtxt.net Exactly. I suspect it was because of sqlitebrowser
also accessing the database in parallel to debug the original issue.
So far, I have not found the exact reason why some replies donāt show up. When I do not filter for unread messages and show all, though, I actually see them. So, thereās that.
@lyse@lyse.isobeef.org š±š±š± I am assuming thatās happening with tt2, right?
@javivf@adn.org.es having the extension listed means that it has been discussed and, usually implemented. Now, number 6 and 7 on the list as its stands today are not supported by any of the known clients. I believe their (again, 6 and 7) inclusion on the list has been precipitated, and lax.
@javivf@adn.org.es merged in to the repo of specs:
@kat@yarn.girlonthemoon.xyz Itās more like a cache, it stores things like ātimestamp of the most recent twt weāve seen per feedā or ālast modification dateā (to be used with HTTPās if-modified-since
header). You can nuke these files at any time, it might just result in more traffic (e.g., always getting a full response instead of just āHTTP 304 nope, didnāt changeā).
@quark@ferengi.one Yes, I often write a couple of twts, donāt publish them, then sometimes notice a mistake and want to edit it. Youāre right, as soon as stuff is published, threads are going to break/fork by edits.
SqliteCache
backend I'm working on here, what are your thoughts regarding mgirations from old MemoryCache
(which is now gone in the codebase in this branch). Do you care to migrate at all, or just let the pod re-fetch all feeds? š¤
@prologic@twtxt.net best of luck!!! discover view having no limit sounds scary oh god lol
SqliteCache
backend I'm working on here, what are your thoughts regarding mgirations from old MemoryCache
(which is now gone in the codebase in this branch). Do you care to migrate at all, or just let the pod re-fetch all feeds? š¤
@kate@yarn.girlonthemoon.xyz Iāll cut a release soonā¢, but still a few more things to iron out 𤣠One of the new challenges is figuring out what to do with the āDiscoverā view now that is has an unconfined limit, on my pod (at least) itās now basically just ānoiseā š¤¦āāļø
SqliteCache
backend I'm working on here, what are your thoughts regarding mgirations from old MemoryCache
(which is now gone in the codebase in this branch). Do you care to migrate at all, or just let the pod re-fetch all feeds? š¤
@prologic@twtxt.net alright! i can try that⦠whenever i am capable of upgrading and figure out how to lol
@kate@yarn.girlonthemoon.xyz Been missing your jovial posts too and your friends š¤£
@quark@ferengi.one No editing old Twts that are the root of a thread with replies in the ecosystem. Just results in a fork. Unless the client has an implementation that does not store Twts keyed by Hash.
@movq@www.uninformativ.de Oh dear š
SqliteCache
backend I'm working on here, what are your thoughts regarding mgirations from old MemoryCache
(which is now gone in the codebase in this branch). Do you care to migrate at all, or just let the pod re-fetch all feeds? š¤
@kate@yarn.girlonthemoon.xyz The re-fetch should work just fine š¤
@david@collantes.us Thanks Iāll fix.
@movq@www.uninformativ.de wouldnāt editing your own twtxts cause the same issue Yarnd (or any other client) has, which is breaking any replies to it? Under which conditions would this work the best? When copying the twtxt.txt file asynchronously? In my case I copy the twtxt.txt file to its web root right away, but I figure I could not do that, which would give me a set period of time to edit without worries.
@movq@www.uninformativ.de json and database put together sounds terrifying. i must try jenny
@bender@twtxt.net very true in both regards!!! <333 happy to see you too, i missed your silly bender icon hahha. my times could be better but things will improve i am sure of it
@bender@twtxt.net awww thank you :ā))) you all are too nice!!! i really wanted to share how i did this because i think iām the first person to publicly attempt a production instance of dreamwidth code in docker, so iām glad i did a good job at documenting it!!!!!!!
@kat@yarn.girlonthemoon.xyz woah! Thatās something else, kat! Heck, I document pretty much everything (more at work than anywhere else), and I have got to tell you, you put my ādocumentationā to shame. LOL. Very well done!
@kat@yarn.girlonthemoon.xyz hard times are best shared! Of course, I understand there are times they are best not shared. Either way, I wish the hard time you have been having fades away! And, of course, happy to āseeā you! š„°
@lyse@lyse.isobeef.org It wasnāt our building, yeah, luckily. But Iām pretty scared it might happen some day. I think Iāll put more effort into preparing for that. But whatever I do, it would be horrific to lose all your stuff and the memories attached to it ā¦
@kat@yarn.girlonthemoon.xyz Youāre welcome. š (From a hiring perspective, itās not even important if every detail/step is correct or not. We all make mistakes, all the time; we donāt/canāt know everything.)
@movq@www.uninformativ.de HELP THIS IS GENUINELY SO SWEET THANK YOU ;_; omg i felt so nervous posting this because i was like what if i get something wrong but then i did it anyway and i felt so free⦠like woah i did all of this
@kat@yarn.girlonthemoon.xyz As someone who has a say in hiring decisions (every now and then ā Iām not an executive nor an HR person š): This is gold. Writeups like these tell me/us so much about job applicants. Itās much more valuable than āa CV without gapsā or āknow your algorithmsā or whatever. Instead, it shows how you work and that you understand what youāre doing, and thatās the most important part. š„
@bender@twtxt.net NOOOO i self host an XMPP server and also revolt but as much as i love XMPP (gajim client reminds me of using skype as a kid highkey) i donāt use it much and revolt is a bitch to maintain. like i broke revolt file uploads and it stayed that way for months until literally last week lmao. i never bothered with matrix tbh maybe i shouldāve but it seems not worth it
SqliteCache
backend I'm working on here, what are your thoughts regarding mgirations from old MemoryCache
(which is now gone in the codebase in this branch). Do you care to migrate at all, or just let the pod re-fetch all feeds? š¤
@prologic@twtxt.net hm would there be any loss with the re-fetch option? i wouldnāt mind either but iād like to hold onto what i got if possible! but if it IS possible but also really annoying to do iāll just do the re-fetch of feeds because iām lazy af LMAO
@bender@twtxt.net been having a hard time! but i am trying to be more active <3
@movq@www.uninformativ.de that is a great quote god damn
@kat@yarn.girlonthemoon.xyz i did this in september but it took me this long to do the write up part lmfao
@movq@www.uninformativ.de Hopefully at your neighbors and not your building. :-S Keep your pecker up!
I just heard the fire brigade respond here with their compressed air sirens, too.
If you let fire take effect properly, it helps to reduce density.
dm-only.txt
feeds. š
@andros@twtxt.andros.dev I give you not creating another file, but then Iād vote for commenting out DMs. See https://eapl.me/timeline/post/z5e2bna
Itās easier to find the DM in comments from your side, than asking all the client maintainers to add the regex =P
You can even use a Modified comment, such as
#! <DM content>
Or something like that
This approach is retro-compatible with current and older clients.
si4er3q
. See https://twtxt.dev/exts/twt-hash.html, a timezone offset of +00:00
or -00:00
must be replaced by Z
.
just a note that we are doing that on PHP: https://github.com/eapl-gemugami/twtxt-php/blob/master/docs/03-hash-extension.md#php-72
That PHP snippet could be merged into https://twtxt.dev/exts/twt-hash.html
@hacker-news@feeds.twtxt.net this is the 4th one in the row - I think. Loosing count of them.
@klaxzy@klaxzy.net Jellyfin FTW ⦠I guess!
@david@collantes.us @andros@twtxt.andros.dev The correct hash would be si4er3q
. See https://twtxt.dev/exts/twt-hash.html, a timezone offset of +00:00
or -00:00
must be replaced by Z
.
(That said, thereās a bug in jenny as well. It only replaces +00:00
, not -00:00
. š¤”)
@movq@www.uninformativ.de Lol! Yeah, nobody wants to see you bring your coal-powered forklift into the gym. :-D
@david@collantes.us If I run
printf '%s\n%s\n%s' 'https://aelaraji.com/twtxt.txt' '2025-04-16T22:49:11+00:00' "Am I tripping or `rsync` is actually THIS effing faster than `scp`!!? š«Ø" | b2sum -l 256 | awk '{ print $1 }' | xxd -r -p | base32 | tr -d '=' | tr 'A-Z' 'a-z' | tail -c 8
I have xqfsv6a
. It is raw text
But⦠If I change de date to 2025-04-16T22:49:11Z
I have si4er3q
.
@prologic@twtxt.net @bender@twtxt.net
What is the hash of the last message from?: https://aelaraji.com/twtxt.txt
dm-only.txt
feeds. š
@bender@twtxt.net For example:
If you can see this twt in any feedā¦
xxxx-xx-xxTxx:xx:xxZ !<bender https://twtxt.net/user/bender/twtxt.txt> U2FsdGVkX1+QmwBNmk9Yu9jvazVRFPS2TGJRGle/BDDzFult6zCtxNhJrV0g+sx0EIKbjL2a9QpCT5C0Z2qWvw==
It is for you. Any other possibility must be ignore (hidden in your timeline).
If your client doesnāt have the posibility to decrypt the twt, hide all direct message. It is all :)
I miss @kat@yarn.girlonthemoon.xyz. Just sayinā.
dm-only.txt
feeds. š
@andros@twtxt.andros.dev define ācompatibleā š . On the ānot addressed to meā, if I follow you, I will see your twtxts, whether they are addressed to me, or not.
@bender@twtxt.net Sure š»š»š»
@prologic@twtxt.net please reply to this one. I want to make sure I am not seeing a ghost here. š
@bender@twtxt.net Thatās what Iām trying to figure out š¤
@prologic@twtxt.net what did you replied to? I am seeing disconnected twtxts, specifically from and/or replies to, Andros.
@andros@twtxt.andros.dev Curious where this root twt is?! 𤣠Apparently my pod doesnāt have it and I canāt find it anywhere. Itās suppose to be #l4doaxa
dm-only.txt
feeds. š
@bender@twtxt.net @aelaraji@aelaraji.com The client should ignore twts if itās not compatible or not addressed to me. itās a simple regex to add! Itās similar to Twt Hash Extension, should they be in another file? They are child messages, not flat twt. Not of course!
@prologic@twtxt.net @aelaraji@aelaraji.com It depends! If you are working with rsync and scp with the same protocol⦠I want to know! š
@andros@twtxt.andros.dev For what purpose? š¤
@aelaraji@aelaraji.com What protocol do you use?
@xuu@txt.sour.is Yeah @-mentioning@twtxt.net someone you donāt have a local alias for is broken somehow :( I havenāt looked into it yetā¦
@xuu@txt.sour.is Seems to be fine here?
$ bat https://twtxt.net/twt/yfv5kfq | jq '.text'
"!<dm-echo https://dm-echo.andros.dev/twtxt.txt> U2FsdGVkX1+QmwBNmk9Yu9jvazVRFPS2TGJRGle/BDDzFult6zCtxNhJrV0g+sx0EIKbjL2a9QpCT5C0Z2qWvw=="
@fastidious@tilde.town Haha š¤£
@bender@twtxt.net Oooofff, Iām panting for breath when just thinking about that! Iāll immediately stop complaining. :-) I already forgot that a jacket over my jumper would have been nice. Iām happy to be cold.
@lyse@lyse.isobeef.org I walked under 25°C during my lunch hour today, but with a sunshine that could fry an egg if dropped on the asphalt. I told a friend in Manila about it, and she told me that 25°C is Winter/Christmas temperatures for them. I felt cooler right away. :-)
@xuu@txt.sour.is like, badly broken. I mean, the guy doesnāt even use twtxt (it is more like an RSS feed for him). So, yeah, even if it was the correct mention it would never reach the intended ears. š
@fastidious@tilde.town I see you, and your useless twtxt. :-P
@<@marado@ciberlandia.pt https://tilde.pt/~marado/twtxt.txt> Hey! do you see this? š§
@prologic@twtxt.net yes, same here.
@bender@twtxt.net I donāt no. I mostly just use whole themes. And my facourite it AMOLED
@prologic@twtxt.net I am just going over things. I donāt use it, do you?
@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.
@javivf@adn.org.es Generally speaking if it has been reviewed, discussed and merged, then we accept it as a standard to the set of specs we support. However we might want to document this process and set some guidelines about this to be clear 𤣠Weāve been fairly lax/lose here and I think thatās okay given teh size of our community š
@andros@twtxt.andros.dev @bender@twtxt.net @prologic@twtxt.net @eapl.me@eapl.me btw does twtxt dm and salty can be bridged together? iirc you planned this
New version release of twtxt-el!
- Fixed many bugs.
- New back buttons.
- Updated documentation.
I am currently fixing an important bug that break the timeline in some cases and I am working around direct messages.
@bender@twtxt.net Ahhh ha!!! 𤣠Iām too dumb to have thought of that š¤£
@bender@twtxt.net Do we still want this feature? š§
@bender@twtxt.net Would they even accept a server from me? š§š