Also a āPublish who I followā toggle: writes # follow = + # following = N into your feed like yarnd does. Off by default (it is your social graph š¤), and only on the GitHub/Gitea backends for now where the app owns the feed file. twtd next š¤
@prologic@twtxt.net Even without the gamification and AI, I donāt host anything on GitHub. Just the fact that itās owned by Microsoft spells trouble, in my opinion.
I still have an account, for occasionally contributing to a few specific projects, since a lot of developers wouldnāt know what to do with a patchset, and since many users of GitHub/Lab and Codeberg use send-only email aliases, so git send-email probably wouldnāt work.
jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
@prologic@twtxt.net Oh, yes, just for clarity: This wasnāt a āpro GitHubā argument. š I wonāt go back there (or to another āforgeā).
I think weāre totally on the same page: Decentralized Git hosting is good, but we havenāt solved the ācollaborationā part yet. Or rather: We have to modernize it. The tools are already there, but (many) people donāt want to use them and think theyāre clunky.
jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
And @lyse@lyse.isobeef.org is right. Not being on Github is a good thing IMO. Even when I was there with all my many projects, I basically got the same amount of āattentionā as I do now. The only real way to gain more āattentionā is to artificially play the āgameā. You know. The stupid āStargazerā one, and whatever you can to get into the āTop 10 Xā charts. ā But ultimately that doesnāt buy you āqualityā contributors or users or whatever. So itās all pointless.
jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
@movq@www.uninformativ.de So I see it slightly differently⦠Over the years I have recieved great contributions from the likes of yourself and @lyse@lyse.isobeef.org and the many forms of @bender@twtxt.net and his friends š Hell even others along the way that have come and gone. Likewise I also think you have recieved many contributions to Jenny over the yeras in much the same way, perhaps not in patches, but user reports, feedback, etc.
So I think what Iām saying here is this⦠Ever since leaving Github (like you), I find that my desire to continue to build up the community weāve built here and to contribute to grow and cultivate it is important to me. My desire to thwart and eliminate useless traffic like bots and ai even strongers.
I want to find a good balance.
jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
How many tickets and merge requests did you get before moving to your own server?
Hm, these were probably some of the more active projects:
- https://github.com/vain/lariza/issues?q=is%3Aissue%20state%3Aclosed
- https://github.com/vain/pdfPres/issues?q=is%3Aissue%20state%3Aclosed
- https://github.com/vain/xiate/issues?q=is%3Aissue%20state%3Aclosed
So itās not a ton of stuff and there are many āissuesā I opened myself, but itās certainly more than these days.
Havenāt used
git send-emaileven once. I definitely have to look into that soon. Wanted to do that for several years. I typically upload the patch to my server and send a link via IRC.
git send-email is good for sending patches to a mailing list (because then the individual patches can be discussed easily), but since those are dying out as well, it loses its appeal. If you want to send patches to a single person, just sending the link to your repo is far easier. š¤
@prologic@twtxt.net Hmmm, I have no idea how to solve that problem. š
Some jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
I thought I had made that super easy, because you can just send me an email ā no sign-up process, nothing. But thatās way too old-school, people donāt know how to use git format-patch (let alone git send-email) and they also donāt understand that they can just send me a link to their forked Git repo (which can be hosted anywhere). Git is super flexible and powerful, but those features are hardly ever used.
Maybe people even need some kind ārewardā, or āfameā. Like those āachievementsā that you can unlock on GitHub. (Something to put in their CV ⦠?)
š£ ACTION REQUIRED: Hey folks š For those of you whom are using the Twtxt App either via the Hosted option or on your own twtd instnace or via Github/Gitea or any other publishing backend (doesnāt amtter). Please read.
Please open the app and you should be prompted to save your recovery code for your device. This basically is all of your settings, follows, etc in the app itself. This is synced to the Origin everytime you make a change, and also stored on-device. This is what makes it possible to sync your setting across services, move to another device, etc.
Please save a copy of the recovery code somewhere. This is only your only way to recover your settings.
Thank you š
@prologic@twtxt.net twet 1.3.0 built from v1.3.0-21-gff43ee0 at 2025-08-25T23:27:41Z, from https://github.com/quite/twet. Unmaintained since 2020. To be honest, I was considering writing a basic client of my ownā¦
also, just to clarify, we built the hosted Service as the last lowest rung ladder for non-technical people. I fully expect most technical people will spin up their own publishing backend or use Github or similar so that long-term the ecosystem still remains very much decentralized.
@balloonfu-sen@yarn.girlonthemoon.xyz I could in toehry publish a specification for what twtd implements, which forms the basis of the API between twtxt.app <-> twtd, if you wanted to write your own twtd / twtxt.app compatible publishing backend (assuming you didnāt want to use Github/Gitea, etc).
@balloonfu-sen@yarn.girlonthemoon.xyz Unfortunately I tried to support SFTP but ripped this out as Browsers (which the Swag framework uses under the hood as a framework to build PWA(s)) doesnāt support raw TCP connections. So FTP / SFTP is not possible without hacks like a proxy. Which I donāt really want to support. So only things that have some kind of HTTP API are possible viable publihsing backends right now. That is Github/Gitea, twtd, Yarn, etc.
@bender@twtxt.net Ah, the first twts were from https://raw.githubusercontent.com/Fastidious/fastidious.github.com/master/twtxt.txt, not https://daiwei.me/twtxt.txt. Fetching the GitHub feed completes the thread. š
Fixed the broken hashes in the Twtxt App (https://twtxt.app) š„³ It was hashing your twts with a client-side timestamp the server never used š¤¦āāļø Now it keeps the canonical created/hash the pod (or twtd) returns, and the GitHub/Gitea backends write a # url = preamble so every client hashes your feed the same way. Thanks @fastidious@tilde.town for the report š
@prologic@twtxt.net I linked you some of my findings on the twtxt.app on IRC. The main problem is the hashing. Totally broken. But you have got to give it some thought, because GitHub hosting of the feed is tricky (even more so if they are CNAMEing their domain to it). It is also finicky because Pages is auto-enabled on username.github.io, so actions must run each time you twt.
@david@raw.githubusercontent.com your fork worked, and this is a fork, of your fork. Letās forkāem!
@itsericwoodward@itsericwoodward.com 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 š¤
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@txt.sour.is 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? š
So I decided to change tact a bit with GoNIX and instead of trying to build apure Go browser from scratch (which I kinda of half succeeded, in at least it was able to render most static ssr sites), Iāve instead decided to write a new browsered using the Chromium Embedded Framework, otherwise known as CEF. So now I have a fully working browser in GoNIX š ā However since my goal is to keep GoNIX pretty lcean and mostly written in Go, I delegated the cef part(s) to an OCI container image and run that with GoNIXās box (command-line container runtime). It works great š
Okay, Iām using the āofficialā validator now:
https://github.com/w3c/feedvalidator
That repo is supposed to be a website/webservice, though. The feedvalidator directory contains the actual validator. Iām using this wrapper on top: https://movq.de/v/94b5b8978c/
Damn, I broke my Atom feed (and a reader let me know, thatās cool!).
I run vnu on all HTML and CSS files after each build of the website, but I donāt run a feed validator. š¬ Time to change that.
@lyse@lyse.isobeef.org Besides, have a look at
again: When it goes from item 9 to item 10, the indentation of the text (after the number) changes. Pretty ugly. In other words, a table of contents should be a table, not a list like it is at the moment. And that would require me to write my own extension for python-markdown ⦠Probably not worth it.
@prologic@twtxt.net The only image viewer I like in general is this one:
https://codeberg.org/nsxiv/nsxiv
Itās for X11, though.
Allegedly, this Wayland image viewer is somewhat similar to nsxiv, maybe youāll like that? š¤
@movq@www.uninformativ.de Yeah, the damn message to urge me into updating for no reason. It still works fine, why update then!? Leave me alone. If downloading fails, thereās already a hint that updating might fix it. The introduction of this banner in https://github.com/yt-dlp/yt-dlp/pull/13937 doesnāt give any reason for that change either.
I noticed that there are quite a few UI glitches in vim-classic ā and quickly found the cause: It comes with outdated Unicode tables.
I have to admit that I wasnāt aware that thereās a new Unicode release every year:
https://en.wikipedia.org/wiki/Unicode#Versions
Look at this huge number of changes. Every program has to keep track of that, often through libraries but sometimes not (like in Vimās case).
I use Unicode extensively, but this shit is extremely expensive ā¦
My TUI framework is having the same problem. At the moment, this is all offloaded to wcwidth, but if that library was to become unmaintained, Iād have to track Unicode myself.
Gah!
The DOS days were simpler. CP437, end of story. (Yes, I know thatās a lie.)
Alright. I found a way to avoid errors and install twtxt (original) https://github.com/buckket/twtxt/issues/194
I didnāt try it, but this looks like something for real sysadmins: https://github.com/dimonomid/nerdlog The UI looks very usable and the README is also promising.
These commit messages⦠https://github.com/vergonha/garden-tui
There: https://github.com/rivo/tview/issues/442#issuecomment-641898039
@movq@www.uninformativ.de Yes. The author tries hard not to break existing code, but apparently he did this time. In his defense, itās not an official release, I just updated to master. Which is exactly what I always did in the past as there are no real versions (I even think that in one ticket he wrote years ago that master is always stable). That has finally changed a year ago, though: https://github.com/rivo/tview/releases/tag/v0.42.0
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
@lyse@lyse.isobeef.org Is it this one? https://github.com/rivo/tview Itās almost 10 years old but hasnāt seen a 1.0.0 release yet? š¤
Haha, GitHub. I āunlockedā the āachievementā called āQuickdrawā:

Itās for closing an issue very soon after it was opened.
Only problem: I was the one who opened it and it was a mistake, so I quickly closed it again. š¤¦āāļø https://github.com/bundlewrap/bundlewrap/issues/892
@movq@www.uninformativ.de I just ran across another thing. At least I personally couldnāt care less about CI infrastructure changes. Whether theyāre using github action a or b or c or version v or w, it is not of my interest. At all. (It might be useful to estimate the supply chain attack risk, though.) If the maintainers want to include them in the changelog ā and there are probably people to whom this information is crucial ā itās probably best to document CI infrastructure changes in their own section.
@lyse@lyse.isobeef.org Thanks!
On the AI changelog part, though, Iād rather recommend to just not have a changelog at all.
Iām afraid that ship has sailed. You can rest assured that someone who uses AI/LLMs for their code (which is almost everybody at this point) will most certainly also use it for changelogs.
I actually considered not mentioning AI output at all, because this just opens a huge can of worms ⦠š
While going through these terrible GitHub release pages, I also found these āNew Project Contributorsā sections
Yeah, they play on a nerdās pride.
Now, itās just the same auto shitshow with MR titles in a rolling date-versioned release scheme. Itās just our team who has to deal with that, though. I think Iām the only one who is not a fan of it.
Iāve found that this whole situation is much worse at work than it is in the Free Software world. At work, itās literally work and hardly anybody actually cares. We still donāt have all people convinced that writing good commit messages or using good branch names is worth the time. Itās ⦠oh god, no, Iām going to stop here, this is bad for my mental health. š
Suffice it to say, all release notes at work are now AI-generated. Nobody gives a fuck.
@movq@www.uninformativ.de Hahaha, great timing! :-D I love your article and agree with almost all your points.
On the AI changelog part, though, Iād rather recommend to just not have a changelog at all.
Another important thing for me is the deprecation notice section. What do I need to look out for in the future? Should I start to migrate to another API soon? Even right now? Or does it have time?
While going through these terrible GitHub release pages, I also found these āNew Project Contributorsā sections (yeah, for that, they found the time to make a section) annoying. Donāt get me wrong, sure, credit where credit is due. But come on. Soooooo much space for an inefficiently formatted (and also unsorted) list. At least it was easy enough to skip over it.
And then, there are also these changelogs or rather notice documents in general that are infested with multicolored emojis all over the place. My brainās spam filter kicks in and shoves everything to /dev/null immediately. Itās especially a thing at work.
In my previous work project, we also used the Keep A Changelog Format. That was great. You wouldnāt believe how often I resorted back to that document. At least twice a week, often several times a day. I was very glad that we put in this effort. Of course, writing the changelog took its time, but it was worth every minute and more. Reading a many months old item, it was immediately clear. I was our best customer in that regard.
Now, itās just the same auto shitshow with MR titles in a rolling date-versioned release scheme. Itās just our team who has to deal with that, though. I think Iām the only one who is not a fan of it.
Oh boy, I absolutely hate this stupid trend of not writing changelogs anymore! Why the fuck would one seriously consider it to be a viable option to just let some shitty bot spew all merge requests on a goddamn GitHub release?! First of all, these merge request titles suck balls. The order of the changes in this āchangelogā is completely random (well, probably merge time, which is as useless as the dick on the Pope). They are not grouped by anything at all. Additions, changes, removals, deprecations, etc. randomly mixed up in one giant list. And then āAdd feature Xā, seventeen kilometers further down āRevert āAdd feature Xāā. Fuck you! Donāt include this shit in the first place!
Fits absolutely perfect in the pattern of rapid decline.
I must rip out all dependencies as soon as possible whose maintainers just donāt give a shit.
@itsericwoodward@itsericwoodward.com Oh donāt get my wrong, I totally empathize, but yeah š
@movq@www.uninformativ.de Wow, Iām sorry to hear about that. Permanent emergency mode sucks, Iāve been there, and it always felt like drowning.
Fortunately, at my current job, weāve been given time to keep our technical debt from overtaking the project. Unfortunately, weāve been forced to use AI (mostly in the form of GitHub Copilot). Of course, now that the tokens cost more than a developerās salary, theyāve been rethinking that position somewhat. š
In my experience, you are 100% correct - even in the best case, AI is a force multiplier. If the code is clean, it can speed you up. But if the code is a mess, itāll just multiply the mess.
@prologic@twtxt.net As have I. š¤ I mean, since I left GitHub, I got basically 0 pull requests anyway.
Even during my time using GitHub, I noticed that ādrive-by PRsā are rarely a good idea. People donāt really know/understand the code or the design principles/goals, so I often turned down PRs. Or I accepted them and was grumpy afterwards. š
What does work is having a team of maintainers/devs. The only question is: How do you build such a team if you donāt accept PRs? Thatās going to be the interesting part.
A la recherche de secrets https://github.com/trufflesecurity/trufflehog
I like the new GitHub:

@klaxzy@klaxzy.net twtstrm/0.4.0 is from Eric. The getwtxt-ng/dev seems to be this.
Addeleg Ć tester https://github.com/mtth-bfft/adeleg
Just cancelled my sponsorship of two developers on Github, sorry š ā Iām not going to sponsor going forward if no-one else can be bothered to. It seems silly to be the sole sponsor of anotherās work or project š¤¦āāļø
Via https://github.com/newsboat/newsboat/issues/3220#issuecomment-4198066671 I came across this nice selection on why not to use AI: https://github.com/Vxrpenter/AIMania/blob/main/WHY.md#why
This then lead me to the slopware list: https://codeberg.org/small-hack/open-slopware
Holy shit, thereās even more than I thought. :-O In addition to Vim, the following affects me more or less daily (but hopefully not my ancient versions): curl, VLC, ImageMagick, rsync, Python, systemd and even the Linux Kernel itself. Oh fuck me dead. :ā-(
My first pull request to Perl has been merged! https://github.com/Perl/perl5/commit/2aea97bf3f5c2ea62cf5e701858694b7378ed58c
@bender@twtxt.net @thecanine@twtxt.net hoping for this to backfire and have shizuku or something like it to become way more popular, as it utilizes adb which is excluded from this āadvanced workflowā
@movq@www.uninformativ.de oh god, make it stop!
Recently the guy maintaining chardet changed its GPL license to MIT because āit is a complete re-writeā (by AI, of course). It was called out by the original author. Changing the license is something the current maintainer wanted to do for long time, getting nos, and nos then. That didnāt stop him 12 years later.
Can anyone recommend a command-line SQL query formatter? Unfortunately, sqlparse is also unsuitable for me: https://github.com/andialbrecht/sqlparse/issues/688