Hmmm the Twtxt App isn't grouping threads correctly π§
Problems are Solved by Method\" π¦πΊπ¨βπ»π¨βπ¦―πΉβ πβ― π¨βπ©βπ§βπ§π₯ -- James Mills (operator of twtxt.net / creator of Yarn.social π§Ά)
@itsericwoodward Haha! I'm glad you like it! π€£ I ummed and arrred over the set of publishing backends it should support, and in the end decided to support Yarn, Github/Gitea and twtd. I hope that's enough and flexible enough for most folks π€
@itsericwoodward Ahh you're welcome bud! π
Adding support for forking, forked conversations and navigating back to the root of a thread for the Twtxt App π€
Oh if we're talking about the twtxt.app client, that's a different story. I still consider that alpha/beta quality. Lemme look into that. It has it's own cache of course (using IndexDB) and it's entirely possible some behaviours are still not quite right yet...
@GabesArcade Yes, because if you edit/delete a Twt after the ecosystem has ingested it, well there then are two versions π Just be aware of edits/deletes, especially if someone has already replied to said Twt π€£
@GabesArcade Did you by change edit or otherwise delete the Twt you replied to (2nd last in your feed) with the reply/thread id lleeypvkzbw2? That Twt was never ingested by twtxt.net (and likely the search engine) so umm hmmm threading breaks π€£
@javivf Heh! π I don't get it haha, but I just saw your post about supporting the v2 Hash ext, nice! π
@GabesArcade LOL All god! I just announced it just now π€£
Hello everyone ! π Behold I bring you (after many years) the launch of the Twtxt App π -- Ye, this is a Desktop and Mobile app built as a Progressive Web App (PWA) using a little framework (Swag) I put together iafter some experiments @xuu and I did in Go and HTMX and Service Workers.
The App is offline-first and supports installing to Desktop and Mobile (add to Home screen) and supports a number of publishing backends, including Yarn.social's yarnd Pod, Github, Codeberg/Gitea, and a little tiny twtd Twtxt server (See: https://git.mills.io/yarnsocial/twtd).
Please try it out, no need for any account(s) or such, works with your existing feed(s) (as long as the publishing backends work well enough for you!). Please give me feedback! π
Also, did you know the Twtxt Search Engine is back? π
@GabesArcade You mean the one I haven't quite announced yet? https://twtxt.app ? π€£
@GabesArcade I'm obviously Aussie, but happy 4th July to you too! π
@GabesArcade LOL You can Email me, hit me up on Signal, orc IRC. Take ya pick I'm around π
@fastidious Done and done β Should get an "Upgrade" banner and button soonβ’
@lyse Found it and fixed it! π The crawler's discovery spider was fetching every feed a second time, without any conditional headers (plus a couple of other politeness bugs: redirected feed URLs never stored their cache validators, and there was no floor between re-fetches). Now every feed is fetched at most once per crawl, always with If-Modified-Since / If-None-Match, and never more than once per 15m no matter what. Just deployed β please keep an eye on your access logs and let me know if you still see anything impolite from the crawler π
@lyse Thanks! I'll look into that! Could be a bug in the crawler.
@balloonfu-sen Do you mind git pull && make build and updating your yarnd instance so it's in-line with the new Hash v2 spec π
@GabesArcade by asking me nicely π€£ Which you just did! If you either provide me a desired username and password and secure medium to give this to you I can do that easily, or alternative a desired username and email address (never stored, only hashed), after which you can "Reset password".
Hey folks π Today I announce the re-release of the Twtxt Search Engine now live and running and actively re-crawling and re-indexing. π Please report bugs or any useability issues to me! π #Twtxt #Search
@GabesArcade's Arcade@gabesarcade.com You will want to either build a client or use one of the ones listed here -- Either way you choose! π I just noticed as well in this Twt I'm replying to (threading is a thingβ’) that you @-mentioned @bender incorrectly π
@Gabe's's Arcade@gabesarcade.com Welcome to Twtxt / Yarn.social π
@arne if you see this reply threaded nicely then yes you did! π
@balloonfu-sen Oh! You're running Yarn.social's yarnd? π
That's why I was able to see your reply so quickly/easily ! Nice! And welcome! π
On the weekend just gone we also visited Twin Falls, which was absolutely magnificent!

495 turns and about ~4hrs alter I won! π Small map, 2-players, myself and an AI player. π
-- It took forever to beach the island the AI player was on and get enough Galley's and Swordsmen just to push back and eventually slowly destroy all enemy units and capture all cities! π€£
Just a couple of shots from our trip to Bald Rockβfinally got reception so I can share them!

π Looking for other interested folks to continue to evolve the development of Salty.im π I've been hardβ’ at work on the v2 branch and @doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:
- Double Ratchet by default.
- Group Chat (sender/client fan-out for now)
- Much better TUI with background agent.
- Mobile App coming soonβ’ (iOS in progress, Android next, same codebase)
Well it's ~2am and I finally defeated the AI player in a game of Frontier Crown π
-- On that note I'm now going to bed, I've made so many improvements to the aesthetics (UX) of the game, the mechanics, and it's now quite nicely playable π G'night! π΄
I spent the day today integrating @xuu's double ratcheting work and [ratchet](Blank front page) library back into the reference client/broker implementation saltyim as a v2 branch. I completely redesigned and rewrite the salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all "just works"β’ and I'm quite happy with the outcome! π€© #saltyim #revamp
Btw @movq you've inspired me to try and have a good 'ol crack at writing a bootloader, stage1 and customer microkernel (Β΅Kernel) that will eventually load up a Mu (Β΅) program and run it! π€£ I will teach Mu (Β΅) to have a ./bin/mu -B -o ... -p muos/amd64 ... target.
Mu (Β΅) is coming along really nicely π€£ Few things left to do (in order):
- Finish the concurrency support.
- Add support for sockets
- Add support for
linux/amd64 - Rewrite the heap allocator
- Rewrite Mu (Β΅) in well umm Mu (Β΅) π
Here's a screenshot showing off the builtin help(): 
We'll all my posts are making it to the "Fediverse" https://bridge.twtxt.net/users/c350a5e5fb9d9457
I don't know what this fruit is called! The waiter at breakfast told me the Vietnamese name but I've since forgotten π 
Found this place in Hanoi in Vietnam π₯³ Amazinf beer!!! πΊ 
Hmmmm the AoC site is not mobile friendly π’
Can someone post the puzzles as Twts? π€£
this is apparently a famous lake in Hanoi city in Vietnam. Don't know what it's called though. 
We have arrived at our first hotel. but check-in isn't till 2PM π€£ We arrived at 12:45PM π 
One of the advantages of being vegetarian. you get served your in-flight meal first. before everyone else π€£ 
fark'n hell! why are there so many actors on the bridge?! π€― (shadow twtxt feeds)
@aelaraji Thanks for the account! I figured out one thing at least so far, my WAF was blocking some of the AP requests. Fixed that. Anyway, holiday time π€£ Back in ~2 weeks.
Good to see so many folks starting to come back to our little non-social social ecosystem π Good to also see twtxt.net starting to peer with 7 other pods in the greater network too! π₯³
Speaking of WAF(s) / Web Applicaiton Firewalls -- I actually had forgotten that not only have I designed a new WAF from scratch, but I've actually implemented it already, and done some local testing. I just haven't put it into production yet... What od you think @aelaraji ? π€ https://git.mills.io/prologic/caddy-waf
Sometimes, (just sometimes) my ability to pattern match and remember how to play perfect games of chess is awesome π 
Anyone on my pod (twtxt.net) finding the new Filter(s) useful at all? π€ 
Tired to re-enable the Ege route to git.mills.io today (after finishing work) and this is what I found π€― Tehse asshole/cunts are still at it !!! π€¬ -- So let's instead see if this works:
$ host git.mills.io 1.1.1.1
Using domain server:
Name: 1.1.1.1
Address: 1.1.1.1#53
Aliases:
git.mills.io is an alias for fuckoff.mills.io.
fuckoff.mills.io has address 127.0.0.1
PS: Would anyone be interested if I started a massive global class action suit against companies that do this kind of abusive web crawling behavior, violate/disregards robots.txt and whatever else standards that are set in stone by the W3C? π€
Oh fuck me! I had basically turned off the route to git.mills.io last night and went ot bed at ~2AM after unsuccessfully trying to control the attacks (bad bots) that were behaving like a DDoS attack. Tried to re-enable the route this monring and *BOOM, they're back! As-if they never stopped?! what da actual fuq?!
Anyone have any clever ideas of what I can do here to allows normal users, like you nice folk and block ths obnoxious traffic?!
Fark me again with the bots. This time DDoS-style crawling from hundreds of IPs and dozens of ASN(s) wtf?!
I've had to disale the Ingress to my Git instance for the time being,
i need to sleep and I can't fight this :/
Fark me π€¦ββοΈ I woke up quite late today (after a long night helping/assisting with a Mainframe migration last night fork work) to abusive traffic and my alerts going off. The impact? My pod (twtxt.net) was being hammered by something at a request rate of 30 req/s (there are global rate limits in place, but still...). The culprit? Turned out to be a particular IP 43.134.51.191 and after looking into who own s that IP I discovered it was yet-another-bad-customer-or-whatever from Tencent, so that entire network (ASN) is now blocked from my Edge:
+# Who: Tentcent
+# Why: Bad Bots
+132203
Total damage?
$ caddy-log-formatter twtxt.net.log | cut -f 1 -d ' ' | sort | uniq -c | sort -r -n -k 1 | head -n 5
61371 43.134.51.191
402 159.196.9.199
121 45.77.238.240
8 106.200.1.116
6 104.250.53.138
61k reqs over an hour or so (before I noticed), bunch of CPU time burned, and useless waste of my fucking time.
Test (_did I fix this shitβ’-)?
Hey @manton π Why yes I believe I did!
Anyone run a Mastodon serve rI can have an account on to help test the Twtxt <-> Activity Pub bridge? π
Test @-mentioning an AP actor via the Bridge. Hey @manton π
For those curious, the new Twtxt <-> ActivityPub bridge I'm building (bidirectional) simply requires three things:
- You register your Twtxt feed to the bridge: https://bridge.twtxt.net
- You verify that you in fact own/control the feed by putting the verification code somewhere on/in your feed (doesn't matter where or how)
- You proxy/forward requests for
/.well-known/webfingerto the Bridgebridge.twtxt.net.
I'm still testing through and ironing out bugs π Please be patient! π
Testing new design, architecture and implementation of a Twtxt bridge I'm working on...
verification-token: ee9bc4da3356f4990671
Please ignore.
Thank you for the encouragement and love and kind words, @lyse @movq @bender @doesnm and others along the way I'm not sure of their feed uris π I'll keep at it, but for the time being I will keep my distance, mostly off IRC, because I don't have the energy to spare in that kind of engagement (what//if the worst happens, it's so draining). I need to remember what I ever did any of this for, it was back in ~2020 and I wanted really to build small interconnected communities that any non "tech savvy" person (more or less) could also benefit from ane enjoy. Even if there are aspects of the specs we've built/extended over time that aren't "perfect"β’, they're "good enough"β’ that they've last 5+ years (I believe this is 6 years running now). I want to spend a bit of time going back to why I did any of this in the the first place, and get a little micro-SaaS offering going (barely covering running costs) so encourage more folks to run pods, and thus twtxt feeds and grow the community ever so slightly. Other than that, I plan to get the specs "in order" to a point (with @movq and @lyse's help) where I hope they'll stand the test of time -- like SMTP.
Thank you all ! π
PR to clean up some unwanted specs and cleanup some invalid/bad references. π
I'm building a service that lets you:
create and manage disposable, brandable email aliases so you can track leaks, forward important messages, and keep your real inbox clean.
I've just finishing building it for the most part, and have cut a v0.1.0 release. It's currently closed source (to be decided later) and now open to beta testers. cc @bender π I fully intend to monetize and offer this as a paid service in teh coming weeks/months, but beta/invite-only testers and early adopters/users first π€
Wow! π€© Are folks actually using Gatherly already? π€ 
Fixed following page template bug so cached feed counts render without errors. cc @bender
@ionores Love the new Avatar dude π Very nice! π
@itsericwoodward Also just a heads up, GIF(s) aren't supproted as an Avatar type on yarnd (what runs twtxt.net). I'd change this to something that's more supproted like PNG, JPEG, etc.
Been mucking around with designing my own camper (floor plan). 
Feeling a bit bad for the folks and Coffs Harbor and on the coast of Sydney right now π€― 
As promised, here's some photos of love you!! camping trip to Canarcon George in QLD, Australia.

I'm finding this very interesting... An evolved neural network that plays the game of tic-tac-toe and so far is a pretty decent player. Here is a visualization of it's evolved "brain" that underwent GA (genetic algorithm) training with classification learning + self-play. 
@kat / @xuu Recommend you git checkout main && git pull, rebuild and redeploy: make build, and however you deploy. π Lots of fixes (no more stalling) and optimizations to the feed fetcher, smoother cpu usage, better internal metrics.
Hey @kat If you see this, I'm aware of a bug. I'm trying to figure it out and fix it. bare with me π€ It is what's causing things to "stall" and to have to "restart". Sorry π
After yarnd v0.16 is released and the next round of specification updates are done and dusted, who wants me to have another crack at building Twtxt and activity pub integration support?
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
And speaking of Twtxt (See: #xushlda, feeds should be treated as append-only. Your client(s) should be appending Twts to the bottom of the file. Edits should never modify the timestamp of the Twt being edited, nor should a Twt that was edited by deleted, unless you actually intended to delete it (but that's more complicated as it's very hard to control or tell clients what to do in a truely decentralised ecosystem for the deletion case). #Twtxt #Client #Recommendations
Just like we don't write emails by hand anymore (See: #a3adoka), we donβt manually write Twts or update our twtxt.txt feeds. Instead, we use modern Twtxt clients that conform to the specifications at Twtxt.dev for a seamless, automated experience. #Twtxt #Twt #UserExperience
I have a great idea for fixing the US economy. Get rid of all the nuclear weapons π€£
Today I added support for Let's Encrypt to eris via DNS-01 challenge. Updated the gcore libdns package I wrote for Caddy, Maddy and now Eris. Add support for yarn's cache to support # type = bot and optionally # retention = N so that feeds like @tiktok work like they did before, and... Updated some internal metrics in yarnd to be IMO "better", with queue depth, queue time and last processing time for feeds.
$ bat https://twtxt.net/twt/edgwjcq | jq '.subject'
""
hahahahaha π€£ Does your client allow you to do this or what? π€
A visual flow chart diagram that illustrates how two different but very related concepts can lead to system accidents π 
- asynchronous evolution
- drift into failure
@andros One thing I really liked about the hacker news rss feeds is the link to the comments. Reckon you can add that to the feed? π€
@xuu or @kat Do either of you have time this weekend to test upgrading your pod to the new cacher branch? π€ It is recommended you take a full backup of you pod beforehand, just in case. Keen to get this branch merged and to cut a new release finally after >2 years π€£
My pod twtxt.net feels very clear of late hmmm π§ This is good right? π
Responded to a bunch of Twtxt open issues across multiple repositories today π
π‘ 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.
@bender I noticed that although the Discover view (and your own Timeline) is much improved with a MaxAgeDays configuration at the pod level, that now some profiles are rather empty. This is only because well, they're a bit "inactive" so to speak π£οΈ Not sure what to do about this at the moment... Open to ideas? π‘
Hmmm there's a bug somewhere in the way I'm ingesting archived feeds π€
sqlite> select * from twts where content like 'The web is such garbage these days%';
hash = 37sjhla
feed_url = https://twtxt.net/user/prologic/twtxt.txt/1
content = The web is such garbage these days π Or is it the garbage search engines? π€
created = 2024-11-14T01:53:46Z
created_dt = 2024-11-14 01:53:46
subject = <a href="?search=37sjhla" class="tag">#37sjhla</a>
mentions = []
tags = []
links = []
sqlite> Btw @andros ; The automated feed you put together for Hacker News... Does it at any point rewrite parts of the feed as it goes along? π€ I've had to unfollow it because I've found in practise it makes a twt, then seems to modify that same twt (observed by content manually) at least twice. This ends up becoming effectively an "Edit" and essentially duplicate (looking) posts π’
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) 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.
Oh hey @rrraksamam π Welcome back! π Sorry about the data loss π€―
@bender You will be pleased to know that yarnd now only consumes ~60-80MB of memory depending on load π€£ And bugger all CPU π
@kate @eldersnake @abucci -- I've already spoken to @xuu on IRC about this, but the new 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? π€
FYI: I've re-opened up search for anonymous use. So things like this now work without having to have an account on this pod or login. π #search #twtxt
Timeline Sandbox 

Our first test over night trip π€








