@bender@twtxt.net both, but neither directly. I know every workaround there is, including those used by developers, to test apps, while working on them. However if “sideloading” becomes so tedious, even the more technical users, cannot be bothered to do it, competing appstores and independent developers, not wanting to send their money and ID to Google, loose users at such rate, they likely won’t be able to justify continuing to maintain their projects, people like me rely on.
@prologic@twtxt.net @bender@twtxt.net That sounds great! I, too, have taken Friday off work. But I’m slaving away again at the move of one of my best mates.
@prologic@twtxt.net must be nice. Congrats! I am happy for you! 😂 Off jesting, enjoy mate! The rest of us will continue slaving ourvselves. 😅
@thecanine@twtxt.net congrats on the win! Hopefully it will not turn sour with the next “enter period of time here”. It seems flip-flopping is the law of the land around here.
I never got to ask you, are you affected by this as a developer, or end user, or both?
@movq@www.uninformativ.de Thank you! I uploaded the full resolutions with uppercase extensions.
@movq@www.uninformativ.de I like the new one!
@lyse@lyse.isobeef.org Thank you for the suggestions. I will probably do some of that when I have time. For the thumbnails, I’m also thinking about trying the loading=“lazy” img attribute. Top on my mind is actually understanding why the big images don’t load. Maybe my VPS’s network connection is saturated, for example. I’ve never needed to worry about such things until now. I’m looking forward to spending some time on it.
In the interest of fairness and hopefully for the last time, I ever have to address this, Google has flip-flopped again and promised “sideloading” will not be removed from their version of Android, but instead have to be enabled in the developer settings, using the following “advanced flow”:

To be perfectly clear, this still falls short of what I wanted, but at this point, it is a compromise I’m willing to take, over further pursuing this, through the various available European courts, myself.
Here is their full statement:
https://android-developers.googleblog.com/2026/03/android-developer-verification.html
@movq@www.uninformativ.de Yeah well I’ve put in an order for a much better quality Ocarina 😅 The one I originally started with was a bit on the “cheap” side. It’s been okay, but the high notes are a bit “meh” (airy).
@lyse@lyse.isobeef.org 22 thru 25 are wallpaper-worthy. 👌👍
@prologic@twtxt.net Nice. 😊 That’s the beauty of a small instrument like that: You can just pick it up, play a little bit, put it back. 👌 (Can’t do that with my stuff. 🤣)
@prologic@twtxt.net don’t! You might be into troubles. Just record something small, and masterful, for us to listen, forget the costume. 😅
@bender@twtxt.net Haha 🤣 Not sure where I’ll find such a costume from, but I’ll ask my girls 🧒
@prologic@twtxt.net show a video of you playing it while wearing a medieval joker costume, or it didn’t happen! :-D
express-twtkpr: an ExpressJS library that enables hosting (and directly posting to) a twtxt.txt file. It works great (otherwise you wouldn't be able to read this), but it's still in alpha and lacks documentation, examples, tests, installation flexibility, or polish, so please use it at your own risk. Enjoy! https://www.npmjs.com/package/express-twtkpr
@prologic@twtxt.net Thanks! 👍
@bender@twtxt.net Thanks for that as well, I’ve removed the extraneous letter and it now (correctly) points to https://www.itsericwoodward.com (I am a developer of webs, so I tend to have many webs in development at any given moment).
express-twtkpr: an ExpressJS library that enables hosting (and directly posting to) a twtxt.txt file. It works great (otherwise you wouldn't be able to read this), but it's still in alpha and lacks documentation, examples, tests, installation flexibility, or polish, so please use it at your own risk. Enjoy! https://www.npmjs.com/package/express-twtkpr
@bender@twtxt.net Thanks for the tip-off, fixed!
I hope to have some time this weekend to tease apart my current setup and build a couple of example sites with it (while also writing some docs along the way). But given the rate I’ve been going, it’ll probably be another month. 😢
@iolfree@tilde.club The motto every reckless person has internalized.
@iolfree@tilde.club Will do. 🫡
@itsericwoodward@itsericwoodward.com your site link on your profile is broken. It goes to https://www.itsericcwoodward.com/, but it should be https://itsericwoodward.com/ (works).
express-twtkpr: an ExpressJS library that enables hosting (and directly posting to) a twtxt.txt file. It works great (otherwise you wouldn't be able to read this), but it's still in alpha and lacks documentation, examples, tests, installation flexibility, or polish, so please use it at your own risk. Enjoy! https://www.npmjs.com/package/express-twtkpr
@itsericwoodward@itsericwoodward.com hey, link to repository on https://www.npmjs.com/package/express-twtkpr is broken. It points to https://git.itsericwoodward.com/eric/express-twtkp. Looking forward to see more documentation!
@kiwu@twtxt.net That’s not bad 👌
yey! I remembered how to prune my Jenny/Neomutt Twtxt feed! (I only keep 6 months worth of Twts) Now, I need to figure out how to set up a macro for that.
express-twtkpr: an ExpressJS library that enables hosting (and directly posting to) a twtxt.txt file. It works great (otherwise you wouldn't be able to read this), but it's still in alpha and lacks documentation, examples, tests, installation flexibility, or polish, so please use it at your own risk. Enjoy! https://www.npmjs.com/package/express-twtkpr
@itsericwoodward@itsericwoodward.com Nice one 👌
I’m happy to report that, earlier today, I published an early version of express-twtkpr: an ExpressJS library that enables hosting (and directly posting to) a twtxt.txt file. It works great (otherwise you wouldn’t be able to read this), but it’s still in alpha and lacks documentation, examples, tests, installation flexibility, or polish, so please use it at your own risk. Enjoy! https://www.npmjs.com/package/express-twtkpr
@movq@www.uninformativ.de Sure, I quit on my own!
@lyse@lyse.isobeef.org A-ha! That means you haven’t spent enough time with these tools! Go on, try it! (If you don’t, we’ll fire you.) I’m sure you’ll like it!

@movq@www.uninformativ.de Schlimmer geht immer.
@movq@www.uninformativ.de No idea why this didn’t occur to me. But you’re absolutely right.
@lyse@lyse.isobeef.org I bet that their AI agent handles that as well, so … 🤷♀️
@rrraksamam@twtxt.net is that what Kendall is asking? 😂
@movq@www.uninformativ.de I would have done the same. ;-) My only hope with an abuse report is that the hoster would give this fuckwit a proper dressing-down.
@rrraksamam@twtxt.net They won’t.
@lyse@lyse.isobeef.org That would have been the noble thing to do. It’s more work for me, though. I blocked that idiot and moved on with my life. 🫤
@movq@www.uninformativ.de For sure. Time for an absue report.
@lyse@lyse.isobeef.org Thanks! 🙌
@prologic@twtxt.net Welcome back to your main home! :-)
@rdlmda@rdlmda.me In case you’re into terminal clients, you might like tt. We finally managed to abolished our GitLab instance, so I would need to make the code available to the public differently.
@rdlmda@rdlmda.me Oh boy, what a story! The infrastructure is indeed in need of overhaul. I’m glad you were so lucky in these circumstances.
(Btw. you posted the same message twice with just five seconds apart. I’m replying to the later one. Not sure if this is a client bug (like attempting to edit) or just operator error. ;-))
@rdlmda@rdlmda.me I am reasonably happy with jenny. If I find time for a twtxt project, I would like to make a web page that works as follows: you point it to your own twtxt feed (as a URL parameter), and then it shows you all the feeds referenced by your “# follow =” lines. So, if I put this up, anyone could use it to view their own feed, with no login required. (Probably a difficult project. For example, I’d want to make sure the backend couldn’t be tricked into helping ddos a web server by trying to fetch lots of “feeds” from it. Anyway, I have too many other projects.)
@thecanine@twtxt.net Hahaha, nice! :-D
To whoever is operating this “xt” client, there might be a misconfiguration. My feed is often, but not always, pulled twice within a few seconds:
2026-03-14T15:31:02+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T15:31:31+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T15:41:19+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T15:41:31+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T15:51:04+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:01:25+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:01:27+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:11:51+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:11:54+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:21:53+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:32:19+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:32:22+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:52:28+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:52:31+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
Maybe this is caused by a development and a production setup, no idea. Since this client is sending the If-Modified-Since or If-None-Match request header, I’m good with that, though. Looking forward to discover a new feed hopefully soon. :-)
@lyse@lyse.isobeef.org sounds like a plan, it’d be the second biggest version, in Australia.

Number one is on the rplace.live map canvas, where the previous one is in America and the one from today here - no reason other than the fact those countries had a good empty spot, to put them in, at the time I drew them.
@thecanine@twtxt.net Haha, I just realized you could stick that on the side of @prologic@twtxt.net’s caravan to accompany these large pixels there. Secret mission in Down Under. :-D
@prologic@twtxt.net Oh yeah, this looks like a nice spot with these gums in the background. :-)
Our first test over night trip 🤞
Back to the regular scheduled dogpostin and back to something very low resolution.

Also new stuff on my website, won’t list it all here, you’ll just have to check.
@falsifian@www.falsifian.org Correct, the two smaller versions are loading perfectly fine. The hickup is only for the originals. But in all reality, the middle ones are sufficient for me personally. Please don’t get me wrong, at least for the people photos, the subjects are large enough. The Japanese landscapes, however, would definitely benefit from a bit more detail. ;-)
I just tried it once more, and now, the tree with the sign (/photo/5Zy4pqVIt0oP/IMG_20251106_035048_448.jpg) fully loaded very quickly. Same with the Japanese dish (/photo/tJbmg8oleYbh/IMG_20251030_091719_086.jpg) and shopping center (/photo/qXG5ucIjpPju/IMG_20251029_045002_778.jpg). But the previous and next ones all ran into the same problems again. When I’m very lucky, I eventually get the upper half. Typically not even that much, a third, a fifth, or even less.
Waiting a bit before making an attempt, the wooden walkway through the forest or park (/photo/ojQpDLfBoGN4/IMG_20251023_043829_011.jpg) eventually also made it. But unlike the other successful attempts, it took a long time.
The more photos you add, the more beneficial it might be to separate the index into several different albums. I didn’t measure it, but it felt like 10 to 20 seconds for all the thumbnails to load. That traffic adds up.
Another idea would be to strip the EXIF data from the thumbnails and reducing quality to 90% or even 80%. Using the famous tree with the sign, I cannot tell the difference between the original thumbnail and the 80% quality one. I’m sure it depends on the subject. Here are the numbers:
$ convert -strip IMG_20251106_035048_448_size_400.jpg stripped.jpg
$ convert -quality 90 IMG_20251106_035048_448_size_400.jpg 90.jpg
$ convert -quality 80 IMG_20251106_035048_448_size_400.jpg 80.jpg
$ convert -strip -quality 90 IMG_20251106_035048_448_size_400.jpg 90-stripped.jpg
$ convert -strip -quality 80 IMG_20251106_035048_448_size_400.jpg 80-stripped.jpg
$ ls -lh *jpg | awk '{print $5 " " $9}'
46K 80.jpg
45K 80-stripped.jpg
64K 90.jpg
63K 90-stripped.jpg
132K IMG_20251106_035048_448_size_400.jpg
127K stripped.jpg
$ ls -l *jpg | awk '{print $5 " " $9}'
46160 80.jpg
45064 80-stripped.jpg
65012 90.jpg
63916 90-stripped.jpg
135070 IMG_20251106_035048_448_size_400.jpg
129647 stripped.jpg