tilde.club feeds have no # nick and is messing with yarnd's behavior š
@bender@twtxt.net Just wrote better code with tests š¤£
Thank you for the encouragement and love and kind words, @lyse@lyse.isobeef.org @movq@www.uninformativ.de @bender@twtxt.net @doesnm@doesnm.p.psf.lt 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@www.uninformativ.de and @lyse@lyse.isobeef.orgās help) where I hope theyāll stand the test of time ā like SMTP.
Thank you all ! š
@prologic@twtxt.net a good DR plan must be tested at least once a year. āŗļø
Just testing out twtxt!
I had a looksie (just to be sure) at the database, and they were thankfully legit test events. But this did spark/trigger me to make sure I have some form of anti-spam measures in place. So I added some per-event / per-rsvp rate-limiting and honeypot(s).
Laut āGlücksatlasā ist in Mecklenburg-Vorpommern die Lebenszufriedenheit bundesweit am geringsten. Aber mich hat gar keiner gefragt. š¤
Wie damals beim PISA-Test, als sie bei uns im Jahrgang fast ausschlieĆlich die Doofen beprobt haben und sich dann wunderten.
Alle Bevƶlkerungsgruppen sind betroffen, besonders Ƥltere alleinlebende MƤnner.
Die sollten sich mal fragen, warum sie alleinlebend sind, die ollen Borche! Dann lƶst sich der Rest von selbst. š
Recived a non-twtxt webmention from https://brid.gy/like/mastodon/@sorenpeter@norrebro.space/115298639056870144/114150575899436374
mentioning http://darch.dk/testing-syndication-via-rss-to-social-media-via-bufffer
(IP: 34.96.47.28)
Recived a non-twtxt webmention from https://brid.gy/like/mastodon/@sorenpeter@norrebro.space/115298639056870144/109396780231570936
mentioning http://darch.dk/testing-syndication-via-rss-to-social-media-via-bufffer
(IP: 34.96.45.23)
Recived a non-twtxt webmention from https://brid.gy/like/mastodon/@sorenpeter@norrebro.space/115298639056870144/108271170472562001
mentioning http://darch.dk/testing-syndication-via-rss-to-social-media-via-bufffer
(IP: 34.96.45.23)
@zvava@twtxt.net CORS is our worst enemy. š„·
I too had the same issue being a browser-based request, so the only solution is using a proxy.
For testing (and real personal use) I rely on this one https://corsproxy.io/.
In my client, I first check if the source allows me to fetch it without issues first and fallback to prefixing with a proxy if it gives an error.
For security reasons the client donāt give you a readable error for CORS, so you must use a catch-all for that, if it fails again with the proxy you can deal with any other errors it throws as you normally would (preferably outside of the fetch function).
After the fetching responded, I store the response.url value to fetch it again for updates without having to do extra calls (you can store it verbatim or as a flag to be able to change the proxy later).
Here an extract of my code:
export async function fetchWithProxy(url, proxy=null) {
return await fetch(url).catch(err => {
if (!proxy) throw err;
return fetch(`${proxy}${encodeURIComponent(url)}`);
});
}
// Using it with
const res = await fetchWithProxy('https://twtxt.net/user/zvava/twtxt.txt', 'https://corsproxy.io/?');
// Get the working url (direct or through proxy)
const fetchingURL = res.url;
// Get the twtxt feed content (or handle errors)
const text = await res.text();
I also plan to allow the user to define a custom proxy field, I like the solution used by Delta.chat in their android app, where you can define the URL format with a variable https://my-proxy?$TWTXT_URL since it allows you to define with more freedom any proxy without a prefix format.
If the idea of using a third-party proxy is not to the user liking they can use a self-hosted solution like cors-anywhere or build their own (with twtxt it should just be a GET).
@alexonit@twtxt.alessandrocutolo.it i tried making a webapp initially but i didnāt even get into the initial stages of testing because no one sets the Access-Control-Allow-Origin header, so i just jumped into building a backend instead. did you find away around this limitation? :o
@bender@twtxt.net Well see thatās just what the freakān tests say about me haha š¤£
immigration and multiculturalism
What about it? I grew up in a multicultural country.
Test.

And I need to make something absolutely clear as well here. Twtxt was completely and utterly dead back in {Aug 2020](https://yarn.social/about.html) when I came across the spec and its simplicity and realised the lost opportunity. Since then weāve continued to grow a small but thriving community. The extensions weāve built over time have stood and lasted the test of time for the past ~5 years. We need not break things too badly, because what we have today and was designed years ago actually works quite well⢠(despite some flaws).
@bender@twtxt.net A renewed vision test might be a good idea for some people. š I mean, it is kind of curious that you get this license as a young person and then it lasts a lifetime, without any further tests. As long as you donāt screw up really bad, it remains valid ā¦
@bender@twtxt.net Thanks for asking!
So, Iāve been working on 2 main twtxt-related projects.
The first is small Node / express application that serves up a twtxt file while allowing its owner to add twts to it (or edit it outright), and Iāve been testing it on my site since the night I made that post. Itās still very much an MVP, and Iāve been intermittently adding features, improving security, and streamlining the code, with an eye to release it after I get an MVP done of project #2 (the reader).
But thatās where Iāve been struggling. The idea seems simple enough - another Node / express app (this one with a Vite-powered front-end) that reads a public twtxt file, parses the āfollowā list, grabs (and parses) those twtxt files, and then creates a river of twts out of the result. The pieces work fine in seclusion (and with dummy data), but I keep running into weird issues when reading real-live twtxt files, so some twts come through, while others get lost in the ether. Iāll figure it out eventually, but for now, Iāve been spending far more time than I anticipated just trying to get it to work end-to-end.
On top of it, the 2 projects wound up turning into 4 (so far), as Iāve been spinning out little libraries to use across both apps (like https://jsr.io/@itsericwoodward/fluent-dom-esm, and a forthcoming twtxt helper library).
In the end, Iām hoping to have project 1 (the editor) into beta by the end of October, and project 2 (the reader) into beta sometime after that, but weāll see.
I hope this has satisfied your curiosity, but if youād like to know more, please reach out!
@bender@twtxt.net Thanks for asking!
So, Iāve been working on 2 main twtxt-related projects.
The first is small Node / express application that serves up a twtxt file while allowing its owner to add twts to it (or edit it outright), and Iāve been testing it on my site since the night I made that post. Itās still very much an MVP, and Iāve been intermittently adding features, improving security, and streamlining the code, with an eye to release it after I get an MVP done of project #2 (the reader).
But thatās where Iāve been struggling. The idea seems simple enough - another Node / express app (this one with a Vite-powered front-end) that reads a public twtxt file, parses the āfollowā list, grabs (and parses) those twtxt files, and then creates a river of twts out of the result. The pieces work fine in seclusion (and with dummy data), but I keep running into weird issues when reading real-live twtxt files, so some twts come through, while others get lost in the ether. Iāll figure it out eventually, but for now, Iāve been spending far more time than I anticipated just trying to get it to work end-to-end.
On top of it, the 2 projects wound up turning into 4 (so far), as Iāve been spinning out little libraries to use across both apps (like https://jsr.io/@itsericwoodward/fluent-dom-esm, and a forthcoming twtxt helper library).
In the end, Iām hoping to have project 1 (the editor) into beta by the end of October, and project 2 (the reader) into beta sometime after that, but weāll see.
I hope this has satisfied your curiosity, but if youād like to know more, please reach out!
@movq@www.uninformativ.de better than in the US. Our lasts only 10 years, and you need to go through the vision test, and, of course, pay). Recently they added a little gold star denoting āreal IDā compliance, and we had to pay $10 to get the old one replacedāout of the regular renew āscheduleā.
In here it is all about control, and money.
I am back to my bash scripting! This is in fact a test.
Yesterday i tried to test carddav but i gave up.
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!
testing testing
testing testing
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
I corrupted my SQLite test database with sed -i s/⦠$(find ā¦). Clearly, I found too many files. Thatās the signal to go to bed.
remote.json | 3.4MiB
i hope testing this doesnāt get me ip banned from Everything
[2025/09/11 12:56:01.816] ā please set config.host when trying to run "bbycll". How to bypass that tiny hurdle?
@bender@twtxt.net ty for attempting to test, though, it means a lot! lmk if u find any more silly things i need to clarify or fix :> be prepared for everything breaking during beta :p
[2025/09/11 12:56:01.816] ā please set config.host when trying to run "bbycll". How to bypass that tiny hurdle?
@bender@twtxt.net as the host (eg twtxt.net) determines the canonical url of the instance in generated feed url metadata as well as every hash of every post made on the instance internally, i added this error message to make sure people donāt accidentally set up their instance on localhost :p for testing i set it to localhost:31212 and protocols to ["http"], itās a recent addition that could definitely do with documenting in the getting started section
@zvava@twtxt.net wow, this is a full change, and looking very, very, very good! I am ready to test it. š
test post
test reply please ignore
test edit please ignore
test post please ignore
@lyse@lyse.isobeef.org Didnāt know that, either. š The one guy even tried to test this theory with a Polaroid? And āconfirmedā it? What the heck. š„“
Iāve got a prototype of my hardcopy simulator going. Iām typing on the keyboard and the ādisplayā goes to the printer:
https://movq.de/v/56feb53912/s.png
https://movq.de/v/235c1eabac/MVI_8810.MOV.mp4
The biiiiiiiiiig problem is that the print head and plastic cover make it impossible to see whatās currently being printed, because this is not a typewriter. This means: In order to see what I just entered, I have to feed the paper back and forth and back and forth ⦠itās not ideal.
I got that idea of moving back/forth from Drew DeVault, who ā as it turned out ā did something similar a few years back. (I tried hard to read as little as possible of his blog post, because figuring things out myself is more fun. But that could mean I missed a great idea here or there.)
But hey, at least this is running on my Pentium 133 on SuSE Linux 6.4, printer connected with a parallel cable. š
(Also, yes, you can see the printouts of earlier tests and, yes, I used ed(1) wrong at one point. 𤪠And ls insisted on using colors ā¦)
Back to Win16 8-) New arrivals of fixed programs for Win31. A big collection of tested network software for Win31. gopher://shibboleths.org/1/win31
test
@bender@twtxt.net I think itās actually a new XEP proposal ( https://xmpp.org/extensions/xep-0084.html#proto-info ), but itās still a bit unclear. Sorry for the late and vague response, Iām still trying to test it and see what itās even about, didnāt yet find a server, that supports it.
Theyāre waiting for you Gordon⦠in the test chamberrrrr
@aelaraji@aelaraji.com I use Alt+. all the time, itās great. š
FWIW, another thing I often use is !! to recall the entire previous command line:
$ find -iname '*foo*'
./This is a foo file.txt
$ cat "$(!!)"
cat "$(find -iname '*foo*')"
This is just a test.
Yep!
Or:
$ ls -al subdir
ls: cannot open directory 'subdir': Permission denied
$ sudo !!
sudo ls -al subdir
total 0
drwx------ 2 root root 60 Jun 20 19:39 .
drwx------ 7 jess jess 360 Jun 20 19:39 ..
-rw-r--r-- 1 root root 0 Jun 20 19:39 nothing-to-see
testing with a new meme 
yo letās test this shit, looks promising
@prologic@twtxt.net Mosaic (2.7) works fine, I maintain that package in the AUR and test my website regularly. š
@movq@www.uninformativ.de yes, I think:
<!--[if !IE]><!-->
<link rel="stylesheet" href="../simplicity.cssā>
<!--<![endif]-->
Should work, but I havenāt tested it.
@bender@twtxt.net Hereās a short-list:
- Simple, minimal syntaxāmaster the core in hours, not months.
- CSP-style concurrency (goroutines & channels)āsafe, scalable parallelism.
- Blazing-fast compiler & single-binary deploysāzero runtime dependencies.
- Rich stdlib & built-in tooling (gofmt, go test, modules).
- No heavy frameworks or hidden magicāunlike Java/C++/Python overhead.
Anyone want to help me alpha/beta test the new WAF Iām building? Itās a Caddy module. š¤
Z for UTC +00:00- is that allowed in your specs?
Regarding url = I would suggest to only allow one and the maybe add url_old = or url_alt = !?
I'm still not a fan of a DM feature, even thou it helps that i have now been split out into a separate feed file. Instead if would suggest a contact = field for where people can put an email or other id/link for an established chat protocol like signal or matrix.
Why are we testing, or playing with, an alternate non-fully-compatible feed format within the same feed that we use daily?
yarnd.
Hopefully I havenāt missed or messed anything upu š
* 101f3eb0 - (HEAD -> main) Fix a bunch of UX to do with following/unfollowing, bookmarking and unbookmarking (3 seconds ago) <James Mills>
Testing UI/UX is hard⢠š
@lyse@lyse.isobeef.org You are of course right! 𤣠There are some low level components that can and should be unit tested for sure! š
@prologic@twtxt.net To clarify, from my observations on how the system behaves, it feels like that. This doesnāt make it any better, I know. Sorry mate! I never claimed that testing is always easy, but in my experience it sure does help cutting down regressions. But to each their own, no worries. The diagram is all Greek to me. Anyway.
@bender@twtxt.net True.