long month 
@prologic@twtxt.net welcome back! đ„łđ„łđ„ł
@movq@www.uninformativ.de Thatâs transparency hardware support!
nicks? i remember reading somewhere whitespace should not be allowed, but i don't see it in the spec on twtxt.dev â in fact, are there any other resources on twtxt extensions outside of twtxt.dev?
@zvava@twtxt.net In tt, I recognize umlauts in nicks, but they cannot include whitespace, @, !, #, (, ), [, ], <, >, " (but ' is okay). Whitespace also acts as a separator between nick and URL. @<Hello World http://example.com> ends up exactly like that and is not a mention.
@zvava@twtxt.net @lyse@lyse.isobeef.org I also think a location based reference might be better.
A thread is a single post of a single feed as a root, but the hash has the drawback of not referencing the source, in a distributed network like twtxt it might leave some people out of the whole conversation.
I suggest a simpler format, something like: (#<TIMESTAMP URL>)
This solves three issues:
- Easier referencing: no need to generate a hash, just copy the timestamp and url, itâs also simpler to implement in a client without the rish of collisions when putting things together
- Fetchable source: you can find the source within the reference and construct the thread from there
- Allow editing: If a post is modified the hash becomes invalid since it depends on
[ timestamp, url, content ]
Hello everyone! đ
After a long while away, Iâm back on twtxt with this new feed.
Some of you might remember me as justamoment@twtxt.net, that was a test account I made for trying things out, but I ended up keeping it more than planned.
I also tried other social platforms in search of a place that felt right for me.
In the end twtxt was the one that ticked all of my boxes:
- Slow social: it act more like a feed reader and I really appreciate that thereâs no flood of content that I canât keep up with.
- No server needed: I absolutely love to have total control over my content, I tend to avoid having moving parts that might break, plus you can put your feed under version control and itâs all backed up.
- Ownership: I can put my feed anywhere I want and nobody can decide if I can access it or not.
- For hackers: a single .txt file allows me to join a community, how cool is that!
This is why I decided to build my own twtxt client, one that allows you to decide how the feed is presented on your âinstanceâ.
Itâs still in the making but Iâll try to share a bit of it once I defined how things should work.
Coincidentally, I discovered that @itsericwoodward@itsericwoodward.com and @zvava@twtxt.net were also building a twtxt client, seems like twtxt is set to grow!
@bender@twtxt.net Soon soonđ€Ł
@prologic@twtxt.net ah! Well, keeping fingers crossed for you and family on that RV, for sure! đ€đ»
@bender@twtxt.net I wish đ€Ł Nah work on-site thingyđ
@prologic@twtxt.net ah, I was wondering! Hoping you are having a good time, mate! Christening the new RV? :-)
@movq@www.uninformativ.de Mit Code. Aber ich habe da echt so einen knoten im Kopf. Die Beispiele in meiner Filterblase helfen mir auch nicht.
Dann kommt das eben in die Kiste mit den unfertigen Dingen.
https://andros.dev/texudus.txt, its url doesn't correspond to the feed either
I know it doesnât need to be said, but âTexudusâ is not twtxt. It is an attempt to create a, arguably, âbetter wayâąïžâ. đ€
https://andros.dev/texudus.txt, its url doesn't correspond to the feed either
@zvava@twtxt.net ah, yes, thatâs the only Texudus feed. It also seems it is a one way only feed.
@bender@twtxt.net https://andros.dev/texudus.txt, its url doesnât correspond to the feed either
/^([-_\p{N}\p{L}])+$/iu because i don't like how english-centric only allowing ascii letters/numbers is though this only applies to local users as of now, currently all nicknames are tolerated when parsing remote feeds and i just do mentions how yarn does (just the feed url)
@zvava@twtxt.net which Texodus feed? That I know of, there is only one, or am I wrong?
nicks? i remember reading somewhere whitespace should not be allowed, but i don't see it in the spec on twtxt.dev â in fact, are there any other resources on twtxt extensions outside of twtxt.dev?
@lyse@lyse.isobeef.org @movq@www.uninformativ.de bbycllâs nickname regex is /^([-_\p{N}\p{L}])+$/iu because i donât like how english-centric only allowing ascii letters/numbers is though this only applies to local users as of now, currently all nicknames are tolerated when parsing remote feeds and i just do mentions how yarn does (just the feed url)
in the wild, iâve noticed a texedus feed with spaces in the nick (where its spec explicitly disallows whitespace in the nick) and feeds with other symbols in the nick too. honestly, i think we should just tolerate arbitrary nicknames for sake of user expression (while stripping or converting unreasonable characters) and just leave them out of mentions
nicks? i remember reading somewhere whitespace should not be allowed, but i don't see it in the spec on twtxt.dev â in fact, are there any other resources on twtxt extensions outside of twtxt.dev?
@zvava@twtxt.net @movq@www.uninformativ.de Iâm not entirely sure about the spaces, but maybe they were omitted to simplify parsing of mentions in the form of @<nick url>. If the next token after the @<nick does not look like a URL, itâs not a mention but regular text. This is just wild guessing, though.
Looking at the regex and tests in the original twtxt reference implementation seems to confirm that theory in the sense as it relies on whitespace as the delimiter:
https://lyse.isobeef.org/tmp/screenshot-2025-09-17-21-30-25.png
Another thing about nicks is that the original twtxt reference implementation converts nicks to all lowercase:
https://lyse.isobeef.org/tmp/screenshot-2025-09-17-21-20-39.png
You probably know this already, the original twtxt file format specification can be found here: https://twtxt.readthedocs.io/en/latest/user/twtxtfile.html
As for extensions, I donât know of anything outside of twtxt.dev that has actually been (partially) implemented. However, there is also the issue tracker of the official reference implementation. You might wanna dig through that. For example, there is an alternative suggestions of multiline messages: https://github.com/buckket/twtxt/issues/157
@arne@uplegger.eu Hm, noch nie gemacht. đ€ Machst du das von Hand oder mit Code?
nicks? i remember reading somewhere whitespace should not be allowed, but i don't see it in the spec on twtxt.dev â in fact, are there any other resources on twtxt extensions outside of twtxt.dev?
@zvava@twtxt.net Good question. This is the spec, I think:
https://twtxt.dev/exts/metadata.html#nick
It doesnât say much. đ€
In the wild, Iâve only seen âtraditionalâ nick names, i.e. ASCII 0x21 thru 0x7E.
My client removes anything but r'[a-zA-Z0-9]' from nick names.
is there consensus on what characters should(nât) be allowed in nicks? i remember reading somewhere whitespace should not be allowed, but i donât see it in the spec on twtxt.dev â in fact, are there any other resources on twtxt extensions outside of twtxt.dev?
@kat@yarn.girlonthemoon.xyz, this one, regarding âAnubisâ (which I believe you use, right?): https://github.com/eternal-flame-AD/pow-buster
@kat@yarn.girlonthemoon.xyz, see this one, regarding âAnubisâ (which I believe you use, right?): https://github.com/eternal-flame-AD/pow-buster
@lyse@lyse.isobeef.org Omg, that is great. đ
@zvava@twtxt.net There would be only one hash for a message. Some to be defined magic date selects which hash to use. If the message creation timestamp is before this epoch, hash it with v1, otherwise hammer it through v2. Eventually, support for v1 could be dropped as nobody interacts with the old stuff anymore. But Iâd keep it around in my client, because why not.
If users choose a client which supports the extensions, they donât have to mess around with v1 and v2 hashing, just like today.
As for the school of thought, personally, Iâd prefer something else, too. Iâm in camp location-based addressing, or whatever it is called. There more I think about it, a complete redesign of twtxt and its extensions would be necessary in my opinion. Retrofitting has its limits. Of course, this is much more work, though.
@thecanine@twtxt.net Id like that too, it just canât come from me, because native mobile dev just isnât my thing đą
@zvava@twtxt.net And yes yarnd does have a well documented API and two clients (CLI and unmaintained Flutter App)
@zvava@twtxt.net We can do that đ
@zvava@twtxt.net Not much of a known fact these days, but thereused to be a Yarn phone app (https://git.mills.io/yarnsocial/app), last version released 5 or so years ago, but it still suggests, it has to be somewhat feasable, to make another one. I donât think anyone tried since, because the web version works well on phones, but Iâm still hoping, we get a more native phone experience, one day.
@lyse@lyse.isobeef.org i dont mind if the hash is not backward compatible but im not sure if this is the right way to proceed because the added complexity dealing with two hash versions isnt justified
regular end users wont care to understand how twt hashes are formed, they just want to use twtxt! so i guess i could work in protecting users from themselves by disallowing post edits on old posts or posts with replies, but iâm not fond of this either really. if they want to break a thread, they can just delete the post (though iâve noticed yarn handling post deletes dubiouslyâŠ)
on activitypub i do genuinely find myself looking through several month or even year old posts sometimes and deciding to edit/reword them a little to be slightly less confusing, this should be trivial to handle on twtxt which is an infinitely simpler specification
@bender@twtxt.net @thecanine@twtxt.net well now this has me thinking abt the feasibility of making an android twtxt app for pods, the actual apis of pods would have to be standardized (or the fucked up way that activitypub does it, where the âmastodon apiâ is the defacto client api (does yarn even have an api reference?)) or the client is just simply..a client..but editing feeds via PUT, PATCH, DELETE etc. is standardized!âŠ? (not to mention i dont even know where to begin making an android app lmao)
Wanting to add, this isnât a twtxt client. It is Yarnd on steroids! đ
@thecanine@twtxt.net it should work everywhere. It is a web application.
@zvava@twtxt.net love the direction this is heading, hope this soon evolves into a basic Android app, usable with any instance.
@lyse@lyse.isobeef.org I didnât know they had a name, to be honest. When I/we last had a dot matrix printer, I just sat alone in the basement and made these. đ
@bender@twtxt.net Sigh. So itâs just me. Again. đ
[2025/09/11 12:56:01.816] â please set config.host when trying to run "bbycll". How to bypass that tiny hurdle?
Adding too this. The configuration example at the repository reads:
{
"nick": "Example",
"description": "alice's twtxt instance!",
"host": "twtxt.example.com",
"admin": "alice"
}
Would it make more sense changing nick to instance_name or similar? Usually nick is reserved for users, like here, quark. Right? Also, is host the same FQDN to be used while proxying traffic to the application? That is, using the above configuration, itâs Caddy configuration would be:
twtxt.example.com {
encode
reverse_proxy :31212
}
Is that correct?
[2025/09/11 12:56:01.816] â please set config.host when trying to run "bbycll". How to bypass that tiny hurdle?
Hmm, twtxt Yarn is misbehaving. Canât even edit, nor delete. Oh well.
@movq@www.uninformativ.de Luckily, I had a grep -v git at the end, so my repo is still in working order. Phew. I wish find had grep-like --exclude-dir and --exclude options (or the include variants) instead of its own weird options that I never can remember and combine properly.
@movq@www.uninformativ.de Nice Jacobâs ladder. ;-) I had to look up this term, I also found Zig Zag. What do you folks call this in your languages? In German, itâs Hexentreppe (lit. Witchâs Staircase).
@zvava@twtxt.net It is just completely impossible to make v2 backwards-compatible with v1.
Well, breaking threads on edits is considered a feature by some people. I reckon the only approach to reasonably deal with that property is to carefully review messages before publishing them, thus delaying feed updates. Any typos etc., that have been discovered afterwards, are just left alone. Thatâs what I and some others do. I only risk editing if the feed has been published very few seconds earlier. More than 20 seconds and I just ignore it. Works alright for the most part.
mobile navigation bar :3

sed -i s/⊠$(find âŠ). Clearly, I found too many files. That's the signal to go to bed.
@lyse@lyse.isobeef.org Yeah, Iâve corrupted a Git repo or two doing that ⊠đ„Ž
@zvava@twtxt.net I was about to suggest that you post some examples. By now, weâre pretty good at debugging hashing issues, because that happens so often. đ But it looks like you figured it out on your own. âïž
@lyse@lyse.isobeef.org đđ
@prologic@twtxt.net im unsure how i feel about the hash v2 proposal, given it is completely backward incompatible with hash v1 it doesnât really solve any of the problems with it. it only delays collisions, and still fragments threads on post edits
i skimmed through discussions under other the proposals â i agree humans are very bad at keeping the integrity of the web in tact, but hashes in done in this way make it impossible even for systems to rebuild threads if any post edits have occurred prior to their deployment
@zvava@twtxt.net that makes it even more so exciting! đ
@prologic@twtxt.net I completely forgot about that topic ⊠đđ„Ž
@zvava@twtxt.net oh?! I shall play more âseriouslyâ with it soon then. Yay!
@zvava@twtxt.net The first version of what is now yarnd was built over a weekend đ
@zvava@twtxt.net Herw you go: https://git.mills.io/yarnsocial/twtxt.dev/pulls/28
@zvava@twtxt.net For the time being, just show both.
@zvava@twtxt.net we have to amend the spec and increase the hash length. We just havenât done so yet đ
ok so i have found a genuine twt hash collision. what do i do.
internally, bbycll relies on a post lookup table with post hashes as keys, this is really fast but i knew iâd inevitably run into this issue (just not so soon) so now i have to either:
  1) pick the newer post over the other
  2) break from specification and not lowercase hashes
  3) secretly associate canonical urls or additional entropy with post hashes in the backend without a sizeable performance impact somehow

@prologic@twtxt.net excellent, mate, thatâs what we like to read! Enjoy the weekend!
Thanks, @thecanine@twtxt.net. Itâs completely horizontal, I donât see any diagonals. Anyway, itâs great art, happy drawing!
@kat@yarn.girlonthemoon.xyz @kat@yarn.girlonthemoon.xyz Pretty sure I have many more mentions in the database than the one and only one I see hmmm đ€ â Iâll have a look at the code when I can and the SQL query itâs using
@bender@twtxt.net interesting đ€đ€
@bender@twtxt.net yayyyy!!!
@lyse@lyse.isobeef.org no, as mentioned this âdiagonal arrowâ eye shape, is usually used for a smug expression. The optional white part, is in this case, where the dogs sclera would be visible, while they have their eyes, like this.
Here is a comparison between a real dog, making the face it is based on, and the exaggerated drawn version.

Hahaha, @bender@twtxt.net, youâre just the best with the words! :-D I love it.
@thecanine@twtxt.net Yeah, what @bender@twtxt.net said. That tail is sick. Is this dog crying, though? The vertically elongated eye looks a bit like a tear running down.
@thecanine@twtxt.net super well done! I especially love that tail. I can almost see it moving!
Drawn based on a quick doodle, the canine returns victorious, from the battle of Hot Topic bargain bin, as smug as can be.
Whoever will be the first to inform him, the spikes arenât real gold and itâs most likely not even leather, meaning itâs not what heâs really been searching the universe for, better prepare themselves, to be jumped on, bitten and shredded by claws.

@bender@twtxt.net Absolutely. My computer science teacher was really great and in a lot of aspects very similar. Especially combining the theoretical and practical parts. Heâs also the main reason I ended up where I am today. Iâm very grateful to him. Mr. Burger, however, takes this on a whole new level.
@kat@yarn.girlonthemoon.xyz hey, hey, good afternoon, happy Friday! Fandom site tag pages count. Word!
@kat@yarn.girlonthemoon.xyz nope, not normal. Something birdy (because why to use fishy all the time?!) is going on.
@zvava@twtxt.net this is so coolâŠ
@zvava@twtxt.net please be sure to get enough rest!!! youâll be able to make something even better if youâre well rested :)
@lyse@lyse.isobeef.org thatâs an amazing way to teach, and one many old school (I remember my father telling me âschools need to teach both theoretical and practical skills!â) people will agree with. The fact that graduates need to learn on the job after they graduate exemplifies the importance of hands on.
@kat@yarn.girlonthemoon.xyz The duck was in a darker spot, so my camera wasnât all that happy with the lighting. Upon further inspection, youâre right, now that you pointed it out, I can see it too! The feathers do look like an oil painting. ;-)
@bender@twtxt.net Sadly, itâs super relevant. Itâs a really good sketch. Iâm actually surprised you know this German series. :-)
@zvava@twtxt.net Yeah, mentions are a great way to discover other feeds.
Regarding the âlook at this, but I donât want to add anything at allâ, this never happened to me. Apparently, it seems to be a thing for others.
@zvava@twtxt.net it is amazing how much you have accomplished in such a short time. Take time to sleep, though! :-)
@lyse@lyse.isobeef.org omg this looks like a painting!
@bender@twtxt.net Believe me, Iâve never been more tempted to switch, than now, as Google is one by one, removing (or at last trying to remove) all the reasons why I chose Android, over iOS. In fact, many friends who were fellow âAndroid diehardsâ, ended up switching recently.
Sadly what I need is a headphone jack, ability to modify apps on device (decompile, change file, recompile), many specific mods, strong XMPP support, Pixel Station,⊠nothing switching to iOS, would give me.
@zvava@twtxt.net I am getting [2025/09/11 12:56:01.816] â please set config.host when trying to run âbbycllâ. How to bypass that tiny hurdle?
@zvava@twtxt.net I gave this, in my mind, a like/star/love.
Yes, I know, this is a âbad tasteâ joke. I appreciate you, @thecanine@twtxt.net!
@thecanine@twtxt.net or, you know, you could get an iPhone. đđđ
@lyse@lyse.isobeef.org retwts are a discovery feature! on federated platforms with no algorithm where you only ever see posts from accounts you explicitly follow, the element of âhey look at this!â helps users to find other accounts they might like organically
i agree quoting and replying forum-style is generally a much better way of doing things even though im a heathen and i revel in the dark patterns inspired by quote posts but when you have nothing to add and you just want to share a twt with your followers itâd be good to have a standardized way of linking to twt
@movq@www.uninformativ.de Haha, that girl is good! :-D
<details> tag in HTML; it lets you write a sentence or so that someone can then click to expand to see the actual post. it's called a CW because most people use it to warn for potentially triggering/harmful subjects, but you can really use it for anything, like spoilers in a TV show or even for joke punchlines
@kat@yarn.girlonthemoon.xyz I reckon the original <details> need to have the open attribute set in order to expand it, so I cannot just define some custom CSS rules to do that in my browser.
But in regards to twtxt, my client wonât hide anything in that realm anyway. :-) Itâs just more noise.
<details> tag in HTML; it lets you write a sentence or so that someone can then click to expand to see the actual post. it's called a CW because most people use it to warn for potentially triggering/harmful subjects, but you can really use it for anything, like spoilers in a TV show or even for joke punchlines
@lyse@lyse.isobeef.org i think if thereâs an option to expand them by default (which can be done with <details> even) then i think it should be good!
@bender@twtxt.net ohhh oops! i will work harder then đ«Ąđ«Ą
@kat@yarn.girlonthemoon.xyz it is not showing for me, on a validator. Missing something?
@lyse@lyse.isobeef.org Ouch đČ
@dce@hashnix.club Nope. đ Whatâs that genre called? Sounds like old horror movies from the 70âies (or it could be a soundtrack to Salad Fingers, if anyone remembers that).
@kat@yarn.girlonthemoon.xyz I hope so đ
<details> tag in HTML; it lets you write a sentence or so that someone can then click to expand to see the actual post. it's called a CW because most people use it to warn for potentially triggering/harmful subjects, but you can really use it for anything, like spoilers in a TV show or even for joke punchlines
@kat@yarn.girlonthemoon.xyz Ta. The only good use for <details> is to collapse long logs in bug analysis reports. Other than that, I find it rather annoying to expand sections manually.
As for spoilers, personally, I donât care at all. Not the slightest bit. If there is something that I donât wanna read, I just stop reading. ÂŻ_(ă)_/ÂŻ
But Iâve got the feeling that Iâve got an unpopular opinion on that matter. ;-)
@bender@twtxt.net I see, thanks. Well, I never found these warnings useful. To hide answers to conundrums or the like, ROT13ing or base64-encoding them is plenty sufficient.
Hahaha, I never heard of Poopgate before. :-D Poor passengers.
@kat@yarn.girlonthemoon.xyz all @prologic@twtxt.net has to do is to allow <details> and the subset under it. Granted, it could be implemented on the formatting toolbar tooâŠ
@lyse@lyse.isobeef.org a content warning is kind of like a forum spoiler cut, or like the <details> tag in HTML; it lets you write a sentence or so that someone can then click to expand to see the actual post. itâs called a CW because most people use it to warn for potentially triggering/harmful subjects, but you can really use it for anything, like spoilers in a TV show or even for joke punchlines
@lyse@lyse.isobeef.org a content warning is a way to tell the audience the content they are about to see is (or might be) shocking, or unsuitable, or unlikable. The audience can then chose to see it, or not. You know, akin of movies stating:
âWarning: The following film contains scenes that some viewers may find disturbing. Viewer discretion is advised.â
@zvava@twtxt.net i think CWs would be very cool here!
@lyse@lyse.isobeef.org yeah itâs not all that tall hahah! but yeah i am totally blinded to any sense of tall/short buildings lmao
@zvava@twtxt.net I never used any of the social media platforms, thatâs why Iâm probably ignorant.
I donât understand the concept of a retwt. Just quote the (relevant) parts from whereever and comment on that. Or post a link instead of a quote. Sounds simple enough. :-) Thatâs also has the benefit that it works with every source, no matter what. Since itâs called retwt, Iâd imagine this to only work (well) with whatever messages the system itself offers. But I could be wrong. What would be the benefit of having a dedicated message type or structure for âhey, look at thatâ messages in your opinion?
Hmm, whatâs a content warning?
@movq@www.uninformativ.de Fun fact, inhabitants of this town are nicknamed âBrandstifterâ (arsonists). In the 19th century, a firebug caused a number of big fires here.
@kat@yarn.girlonthemoon.xyz Ten stories or more are already very tall in my books. Not sure at which height I would start calling high rise buildings sky scrapers, but Wikipedia suggests around 150 meters, depending on region.
Oh, I just found https://upload.wikimedia.org/wikipedia/commons/f/f1/Pier_17_2018-03_jeh.jpg and this really does not look all that high. I thought that this would be at least 50 or 100 meters up. I was completely wrong. :-D