# Twtxt is an open, distributed microblogging platform that # uses human-readable text files, common transport protocols, # and free software. # # Learn more about twtxt at https://github.com/buckket/twtxt # # This is hosted by a Yarn.social pod twtxt.net running yarnd 0.15.1@7fd3daed 2023-11-26T10:40:12+10:00 go1.21.4 # Learn more about Yarn.social at https://yarn.social # # nick = caesar # url = https://twtxt.net/user/caesar/twtxt.txt # avatar = https://twtxt.net/user/caesar/avatar # description = # # following = 8 ## # follow = caesar https://twtxt.net/user/caesar/twtxt.txt # follow = darch https://twtxt.net/user/darch/twtxt.txt # follow = mutefall https://twtxt.net/user/mutefall/twtxt.txt # follow = news https://twtxt.net/user/news/twtxt.txt # follow = prologic https://twtxt.net/user/prologic/twtxt.txt # follow = screem https://yarn.yarnpods.com/user/screem/twtxt.txt # follow = support https://twtxt.net/user/support/twtxt.txt # follow = ~duriny https://envs.net/~duriny/twtxt.txt 2022-02-27T00:11:10Z Hello twtxt! 2022-02-27T00:14:39Z (#qmz4wva) @ Thanks! 🤗 I'm new to twtxt and Yarn.social, but I love the idea of it! 2022-02-27T21:05:15Z (#qmz4wva) @ Haha thanks. I'm not normally big on microblogging but thought I'd give it a try. If I get into it I'd hope to end up running my own instance / something else compatible (probably single-user so maybe my own instance of Yarn.social itself is overkill??) 2022-02-27T21:07:07Z (#nhis6jq) @ Hey there! 👋 2022-02-27T21:21:23Z (#m7zqvdq) @ Roughly speaking… western Europe 😉 But I'm all over the place 😆 2022-02-27T21:54:05Z (#bcqpeuq) @ Ah that's good to know. I have to look more into how discovery works etc, but is there any issue with using a root domain for my username (handle / whatever you call it here?) but hosting Yarn.social on a subdomain?
So my username might be `@caesar@example.com` but Yarn.social would be at something like `yarn.example.com` so that I could host a normal website at `example.com`. Does that make sense? 2022-02-27T21:56:32Z (#bcqpeuq) Maybe something as simple as an HTTP redirect from `example.com/twtxt.txt` to `yarn.example.com/users/caesar/twtxt.txt`? 🤔 But I'm sure I'm not the first to want to do this so is there a 'canonical way' to do it? 2022-02-27T22:01:31Z (#wnb24da) Very sad (though obviously nothing compared to the tragedy of the war itself). 2022-02-27T22:44:34Z (#bcqpeuq) Hmm that's a good point about potentially wanting to customise the preamble. Does Yarn work as a frontend to a static `twtxt.txt` file or is it keeping everything in the DB (I see it uses one) and generating the twtxt files on-the-fly? In the former case, I imagine it wouldn't be hard to add a config option to use a different path? Or maybe I'm talking nonsense because I haven't looked into how this all works yet... 2022-02-27T22:46:46Z (#bcqpeuq) Yes I'd be happy to help build it out, I have next to no experience with Go, but that's a plus for me because it's an excuse to learn it ;-) Would you rather we discussed over on Gitea? 2022-02-27T22:51:27Z (#jsnsqbq) @ send some of that my way, we've got a drought over here 😬 2022-02-28T22:58:28Z (#bcqpeuq) @ I'll put some thought into what I think would be ideal for my use case (I'm not totally sure yet) and open an issue on Gitea. 2022-03-01T10:11:36Z What's the closest alternative to "retweeting" something on twtxt? Simply "replying" to a post? 2022-03-03T22:51:57Z (#a4eab3q) @ Matrix whenever possible (ie, close friends and family who are willing to set up an account just to talk to me… I host my own instance for my family), Signal as a second choice, but unfortunately WhatsApp is the de-facto way to communicate where I live. Still, could be worse, at least it's e2ee (in theory / if you believe them). The one I absolutely refuse to use is FB Messenger… 2022-03-03T22:58:01Z (#a4eab3q) @ @ Any experience with Mailbox or Mailfence (or anything else good) with a custom domain? I'm looking to move my family's email away from Google Apps. Was quite excited about Mailbox but then I discovered it seems to be infeasible to have multiple accounts with them using your own domain, since they require each account to individually verify domain ownership through DNS… Considering Mailfence now. 2022-03-03T23:09:43Z (#a4eab3q) @ Not true, they use the Signal protocol (well, admittedly you have to take their word for that, since the app is closed source…). But FB does indeed have access to the metadata – who you're talking to and when – which is why I do my best to avoid it. (Signal have access to the same metadata if you use Signal, but I trust them better with it… I'd still rather nobody had it, which is why I prefer Matrix.)

More info [here](https://techcrunch.com/2017/01/22/whatsapp-signal-and-dangerously-ignorant-journalism/) and [here](https://technosociology.org/?page_id=1687). 2022-03-03T23:27:31Z (#wwxk3qa) @ True, Signal LLC claim not to store metadata (and I believe them), but the protocol _requires_ that metadata to pass through their servers, and as a US-based company they could _theoretically_ be forced to store that metadata without being allowed to inform their users.

As for WhatsApp, much as I loathe Facebook and everything they touch, I do believe the Signal Protocol is correctly implemented (it's been audited by security professionals).

(This feels weird, normally I'm trying to persuade people not to use WhatsApp 😅 but accuracy is important here.) 2022-03-03T23:31:22Z (#wwxk3qa) @ Basically, my position is that of the security professionals cited in the articles I linked: yes, there are much, _much_ better choices than WhatsApp, but it's _actively harmful_ to overstate its flaws / tell people it's insecure without giving full context, because for the vast majority of cases (even for journalists in repressive regimes) it's _secure enough_, whereas often the alternatives people switch to are far _less_ secure.

Not to say that's the case here, obviously this community understands the context and alternatives in much more detail than most. 2022-03-03T23:37:26Z (#wwxk3qa) @ That's very interesting that you were able to see the acquisition from the inside! And yes, I know WhatsApp now runs on the same infrastructure as the rest of Meta's properties. But then that's the whole thing about e2ee – so long as you can trust the encryption, you don't need to trust the servers / network. (Metadata being the obvious exception).

But again, despite what I'm saying here, I am no WhatsApp fan. I avoid it as much as I can, and try to encourage my friends and family to switch to better alternatives. 2022-03-04T21:00:48Z (#a4eab3q) @ The problem is this bit:

> All mailbox.org accounts have their own, individual security key. This makes it possible to associate external domains to several mailbox.org accounts, if desired, simply by adding their different security keys to the DNS configuration.

Meaning I can't just create accounts for each of my family at my domain from an admin panel; rather, they have to create their own accounts, find their "individual security key", give it to me, and I have to add a new TXT record to the DNS for every account. Way too much hassle 😆 2022-03-04T21:04:03Z (#a4eab3q) @ Cheers, that's good to know. Both of them do look like good options; I would have gone with Mailbox were it not for the hassle with multiple accounts at the same domain (they seem to be trying to force users who want multiple accounts onto their enterprise pricing). I've played with a free Mailfence account and it seems pretty good (better than Proton as it has real PGP support including automatic WKD lookups). 2022-03-08T14:10:34Z (#mcoz7za) I wonder how niche the market would actually be? I feel like half the people I know would love a phone that didn't mean either selling your soul to the world's biggest advertising company or being locked into an expensive walled garden by the world's most profitable brand.

@ I'm not so sure there'd be a lack of good apps, I don't think the situation on the desktop translates well to mobile. Google is pushing flutter pretty hard for mobile and it's getting pretty good adoption, and it's inherently cross-platform - Canonical are even using it for desktop apps. 2022-03-08T14:19:10Z (#7la3hna) @ 
> decentralised and distributed (we likely are here now)

Nah. Unless by *we* you mean us here on Yarn. But as a society, I reckon we're *at least* one or two steps before that – I'd go with your "netizens asking why?" at best. Much of society still hasn't even got to that point honestly. 2022-03-08T14:22:17Z (#7la3hna) @ 
> Decentralisation starts with decentering yourself.

💯 Great quote. There's a chicken and egg problem, and those of us who understand the problem and are happy to be early adopters need to be the ones pushing forward hatching more and more eggs until that chicken appears (umm ok idk if that analogy makes sense but you get my drift 😆) 2022-03-08T15:38:21Z (#mcoz7za) @ Wow haha I'd never thought of Android as having much in the way of customisation options – though I guess some vendors add a lot of that sort of stuff. I'm not one to customise my operating systems much – I like good clean defaults and I don't really like to change them. I love macOS because I feel it hits the sweet spot there, but I loathe iOS because it's just too locked down. I don't care for UI customisation, but how can you forbid me to install my own choice of *web browser* FFS. Or anything else not blessed by the gods at Apple. 2022-03-08T15:44:59Z (#7etv6uq) @ I am on Matrix, `@caesar:schinas.net`.
I'm running Synapse; I'd be very interested to hear your experience with Dendrite as I've been considering switching over as soon as push notifications make it to a published release. 2022-03-08T15:48:13Z @ have you considered adding [`rel="me"`](http://microformats.org/wiki/rel-me) to "User Links"? 2022-03-08T17:15:05Z (#7etv6uq) @ Hmm I don't recall any trouble getting federation working (with Synapse), what issue are you having? The federation tester is failing on your domain for me; it's getting a timeout:
> `Get "https://104.21.85.152:8448/_matrix/key/v2/server": context deadline exceeded` 2022-03-08T17:22:06Z (#t47rjwa) @ Maybe it's harder to get Dendrite working properly (it's pre-release software after all I guess) but I never had any issue with Synapse, I had it up and running in ~15 minutes. The issue I did have was that it's a resource hog (mainly because of backfilling large federated rooms) but a few tweaks to caching settings improved that and I've been running for over a year with no issues at all.
I do agree it seems over-engineered in many ways, I must say. But overall I've been really happy with it and it's now one of my primary communication platforms. 2022-03-08T17:23:25Z (#xe3yjxq) @ Oh 🤔🤭 2022-03-08T17:41:39Z (#knoga2q) @ [The `me` value of the HTML `rel` attribute](http://microformats.org/wiki/rel-me) indicates that the linked page is the same user's profile on another site. It's useful for identity consolidation, enabling things like [RelMeAuth](https://indieweb.org/RelMeAuth) on the IndieWeb. So it would be nice to be able to have that attribute on links to one's own website (and to one's profiles on other sites) from the "User Links" section of our profiles here. 2022-03-08T17:43:31Z (#knoga2q) @ If you check out someone's GitHub profile that has a link to that person's own website, for example you'll find `rel="me"` on the link. 2022-03-08T17:47:20Z (#knoga2q) @ another nice example is how Mastodon show's a user's external link to their own website as "verified" if the target site includes a `rel="me"` link back to their Mastodon profile, since this "proves" that the person has control of the linked site. I think I've seen other sites use it for verification in the same way. 2022-03-08T18:05:50Z (#35kn2ia) @ 
> > People don’t want to run their own servers, and never will.
>
> 👎 👎 👎

On the face of it it's a generalisation, but `s/People/99.99% of people/` and the statement becomes objectively true.
My opinion on decentralised communications protocols is basically: Being *able* to run your own instance - *easily* - is very, very important. But being *required* to run your own instance dooms the system to failure / being very niche at best. Mastodon is a great example which fails at both; it's hard to self-host and there's no obvious canonical instance to sign up to if you don't want to host your own. 2022-03-09T01:24:52Z (#knoga2q) @ Ah sorry, gotcha. 😀
Hmm, you make an interesting point. I would assume that *most* links a user would add would be to their own profiles, but maybe not all?
The [Metadata spec says](https://dev.twtxt.net/doc/metadataextension.html#link) "A link to some other resource which is often connected to the feed or author".
I think my inclination would be yes, add it to all of them, but I can also see that a user *could* put links there that aren't their own. 🤔 2022-03-09T01:38:27Z (#35kn2ia) @ I think in those days "everyone" on the internet was a geek who loved doing things themselves. Now the internet is used by *literally* everyone, and most of them don't understand how it works any better than how their car works. It has to Just Work.

I guess what’s needed is for self-hosting to *be* one of those things that Just Works, without the average person having to know how. (In addition to educating the public better about what the internet is, of course.) 2022-03-09T01:46:44Z (#knoga2q) @ Hmm, short of "clarifying" the spec to specifically state that `link`s *must* be to the user's own sites, it's hard to think of a universal solution. I think I'd still err towards *assuming* that links are to the user's own pages, since I think they will be in almost all cases, but obviously there's an argument to be made against making that assumption, too… 2022-03-09T10:26:01Z (#7boroia) @ I'm not sure what you mean. `rel="me"` is just an html attribute which makes a *claim* that the target of the link belongs to the same person. It doesn't *prove* it; unless it's reciprocal. 2022-03-09T10:33:23Z (#7boroia) @ I *think* the "worst that could happen" is "it would be semantically wrong". I don't think it could ever be actively harmful, since it is correctly treated as a *claim*, not proof of ownership of the target – it can be used to prove ownership of the *origin* page, but not of the *destination*.

That said, I would be in favour of making it explicit (ideally in the Metadata spec) that "User Links" SHOULD be "connected to the feed or author", not just "usually". This would make the `link` metadata more semantically useful. 2022-03-09T10:48:54Z (#knoga2q) @ Ugh, please no! 😫 As a user I hate those interstitial pages, because they add an unwanted step between me and the page I'm trying to get to, and they obscure the real target of the link (also they're often used for user tracking). And as a web geek I hate the fact that they break the semantic model of a link pointing to its real target, turning external links into faux internal ones. 2022-03-09T11:52:35Z (#35kn2ia) @
> you’ll love what my company is trying to do here

I'm intrigued… look forward to hearing more! 2022-03-09T11:58:35Z (#35kn2ia) @ I was lucky in a way: I was homeshooled and my studies were very much self-directed. My parents encouraged my interest in tech though they are complete muggles themselves and couldn't teach me anything about it, so I was entirely self-taught – like many geeks, it seems. As for schools, I do think the situation is improving, at least from what I've heard from friends with school-age kids. @'s experience is reassuring. I'm sure it varies hugely from area to area though; it definitely needs to be a part of national curricula. 2022-03-09T12:00:12Z (#35kn2ia) @ Huh, supply chain problems, who'd'a thunk it 😆😫 Definitely not going to get better in the short (medium?🤔) term… 2022-03-09T12:02:22Z @ how do newlines in twts work? I see they don't show up in the raw twtxt.txt (in my browser at least). The twtxt spec seems (?) to forbid actual newlines, so I'm guessing you are using some sort of workaround specific to Yarn? 2022-03-09T12:08:23Z (#pv7ouaq) @ I love most of the modern Javascript syntax, including arrow functions (this doesn't include JSX, which *is not Javascript* and I *hate* it 🙈) but I do agree that terseness can go too far to the point of getting in the way of readability – definitely an issue with Python IMO. Honestly the only good thing about Python in my opinion is the ecosystem, particularly for data science.
I do like Go from my very limited experience with it; I will definitely be using it more. 2022-03-09T12:13:46Z (#rm3puaa) @ Ah cheers. Pity the original spec doesn't allow real newlines, maybe with indentation or escaping a-la-Markdown to indicate continuation lines… but using `\u2028` is a clever solution to working around that limitation. 2022-03-09T15:32:06Z (#rm3puaa) @ Oh for sure. I just would prefer if the twtxt file could be consumed raw inasmuch as possible; that seems to me to be one of the main points of a raw text-based format vs something more structured. But as you say, this doesn't really break that. As I say, a clever workaround to an annoying flaw in the original spec. 😉 2022-03-09T16:18:57Z (#5pe3caq) Fascinating reading: [Death by PowerPoint: the slide that killed seven people (Columbia Shuttle)](https://mcdreeamiemusings.com/blog/2019/4/13/gsux1h6bnt8lqjd7w2t2mtvfg81uhx) 2022-03-09T20:23:32Z (#t47rjwa) @ that's exactly what it means 👍
As for clients, I prefer [SchildiChat](schildi.chat) myself, it's an Element fork with a few improvements. I find FluffyChat too basic, but then I never liked WhatsApp either, which I guess it what it's trying to imitate UI-wise. 2022-03-09T21:28:44Z (#i6mikka) @ sometimes I seriously wonder whether the cons of the Internet outweigh the pros 😣 2022-03-10T10:37:26Z (#hoydxeq) @ that's definitely a feature I'd be interested in. Bookmarking to read the RFC later! 2022-03-10T10:58:52Z (#4n4ppya) @ I'm curious about this. Surely the implication of a twtxt file being self-hosted (unless you're using someone else's pod...) is that I control its content; I can delete/edit what I want. Sure, someone else might have saved/cached it, but the same would apply to any web page: if it's on my server, I can delete the canonical version. Doesn't mean every trace is immediately/permanently gone from the web, but any remaining cached versions are just outdated cache artifacts. Am I wrong? 2022-03-10T11:09:13Z (#4uape5q) @ I think that's approximately what happens behind the scenes, it shouldn't be visible on that easy to the end user, so I guess something else is going wrong... (or bad UI in the client you're using?) 🤔 2022-03-10T11:09:41Z (#qqfi5za) @ what's that client? I don't recognise it 2022-03-10T11:12:24Z (#4uape5q) @ this is what it should look like (in Element / SchidliChat) ![](https://twtxt.net/media/RE4JoGM7FiZgBpTeQCmhYE.png) 2022-03-10T11:18:37Z (#5pe3caq) @ for real. Sounds like the whole meeting should have just consisted of them sharing that one piece of information, instead of buying it in vaguely reassuring filler text on a screen. 2022-03-10T11:22:06Z (#qqfi5za) @ oh it looks quite different on Android 😆 2022-03-10T11:51:53Z (#ooxps7q) @ I mean, sure, so long as it's fully e2ee and private (Yarn and feeds in general tend to be public...) 😄 2022-03-10T19:14:25Z (#ooxps7q) @ That's my approach, yep 👍 – but I can also see @'s argument that Matrix is over-engineered and current servers are resource hogs and (arguably) hard to get set up... 2022-03-11T09:51:33Z (#x6zqkha) @ but if you used those external services directly without bridging, you'd still have to trust all those things, right? Take, say, FB Messenger. Whether I 'bridge' it to Matrix or use Messenger directly, I have to 'trust' Facebook (ha ha, as if! 😆) Same for Signal, WhatsApp, IRC, or anything else you bridge to.
That said, I don't really use bridging much; for the services I tried it for it was too much hassle making the bridge work for it to be worthwhile. 2022-03-11T10:37:33Z (#tuizh4q) @ @ I don't understand this answer at all from a technical perspective (leaving any philosophical arguments aside). A twtxt file is *literally* a flat file containing a list of all of a person's posts. Surely simply displaying all of that person's posts in Yarn should be the *easiest possible* thing to do, way easier than threading etc. Why would it require "investing heavily in infrastructure" or for the protocol to be "redesigned from the ground up"?

I'm guessing I've misunderstood what you're saying; can you help me understand? 2022-03-11T10:58:53Z (#x6zqkha) @ Hmm but if you're self-hosting the bridges (the only option I think since they generally have to run on the same machine as the Matrix server) that man in the middle is yourself 😉

Of course you do have to trust the code, but it's all open source. 2022-03-11T11:02:41Z @ so far as I can see both your and my most recent replies to # just disappeared - a bug? 2022-03-11T11:07:39Z (#tuizh4q) @ 
> How do you display this in any reasonable way?

Pagination? Like Yarn uses elsewhere. Or infinite scroll, but from the server side that's still pagination.

> Which is what? To view the entire contents one someone’s feed? 😅

Exactly. Every other social network has that feature; I've missed it here serveral times already and it looks like I'm not the only one.

I still don't get the difficulty from a technical point of view I'm afraid. 🤔 2022-03-11T13:16:00Z (#tuizh4q) @ 
> philosophical reasons [...] design decision

That I can understand (though to the extent that I understand it, I think I disagree with it 😄). I was asking more about the technical barriers @ mentioned.

> responses are provided from the cache

I see, so we're taking about an architectural limitation in Yarn, rather than twtxt. Still, I know cache invalidation is famously hard, but surely an intentional page load from a user trying to view a feed that isn't (fully) cached is about the best signal you could get to fetch that data from the origin? 🤔 2022-03-11T21:01:07Z (#tuizh4q) I'm clearly going to have to take a proper look at the code and get a feeling for the data architecture to understand this! From the outside I have to say if something as simple as "display all of a user's posts" is impossible – especially when a twtxt file *is* literally a list of all of a user's posts – it feels like some *very* strange architectural choices must have been made… but I am also well aware that a lot of painstaking thought by very clever people has gone into this, and I haven't even looked at the code, so don't mind me 😆 2022-03-11T21:02:28Z (#tuizh4q) I also totally get whet you're saying about a twtxt file *potentially* growing to be huge. I guess that, and the fact that it's necessary to work around it with a significant caching architecture, is a major downside to the model of twtxt itself which I hadn't considered. 2022-03-11T21:07:52Z (#tuizh4q) I guess I should go read the code before asking too many questions, but I'm a little puzzled why the same issues with a feed being huge don't present an issue *every time* you want to poll for updates? Particularly with the apparent convention of the newest posts being at the bottom of the file.

As for pagination, sure, it can be hard, but why would it be harder in this case than in the cases where Yarn already does it?

(As for infinite scroll, if you have pagination on the server side already, it's trivial on the client side. Yes you need JS of course, but not a lot) 2022-03-11T21:14:34Z (#vbpdcvq) @ Hmm, if I post a message and then it's gone when I reload the page, or if the message I replied to has gone, that's definitely a bug *from the UX point of view* 😆 … but perhaps unavoidable in a distributed system. But since we're both on the same pod, I don't see why that's an issue? Or is this pod itself running on some kind of distributed architecture?