# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 60780
# self = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60380
# next = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60480
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60280
@bender Lemme look at the old backup...
@bender

> I am up to increase the length of a twtxt, though.

Recall what we had this set to for this pod? 🧐
@bender Really? Wow! πŸ˜‚
@bender Hah 🀣
Just had a freak storm β›ˆοΈ with lots of horizontal rain β˜”οΈ that took out and tripped our internal RCD (_again_) 😱 Took out our Fibre too (_servers were fine, good 'ol UPS_). Need to get a UPS for the Fibre box πŸ“¦ Haha 🀣
@movq So cool! 😎 Where's the time lapse video you used to have of this tree? 🌳 Hmm 🧐
@movq Yeah I know 🀣 I found another bug in lextwt πŸ€¦β€β™‚οΈ This whole DM / bang-mention thingy has thrown a spanner in the works πŸ”§ -- Even if I wanted to implement it, I'm not even ready to try at the moment 😒
@kate (_as I was trying to say..._), Glad you think soπŸ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood πŸ˜…
@xuu As I also mentioend on IRC I _think_ this is a. bug?
Holy hell?! When I post this:


@<kate https://yarn.girlonthemoon.xyz/user/kat/twtxt.txt> Glad you think so! πŸ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood πŸ˜…


Something is swallowing it.
@kate Glad you think so! πŸ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood πŸ˜…
What if I do this...
Nope hmmm
What about here?
Okay they're not here...
Why are my replies getting swallowed?! πŸ€”
Glad you think so! πŸ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood πŸ˜…
@kate Glad you think so! πŸ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood πŸ˜…
Hmmm?
Hmmm?
@kate Glad you think so! πŸ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood πŸ˜…
This expands the usefulness of Twtxt / Yarn.social to:

- Sharing small posts
- Sharing links
- Sharing media
- Having long conversations
- Voting on topics, opinions or decisions
- RSVPing to virtual or physical events
The nice thing here is that any Ui/UX rendering for a "good user experience" is similar to what yarnd does for Youtube/Spotify/whatever embedding. Plus anyone can participate, even if they don't really have a client that understand it, it's just text with some "syntax" afterall.
#event:abc123 RSVP: yes +1
#event:abc123 Go Meetup – Sat Apr 27, 3pm @ Darling Harbour
#poll:xyz123 Vote: None
#poll:xyz123 Favorite Go framework?
- Gin
- Echo
- Chi
I'd have to write i up in full, but essentially looks a bit like this (_contribived examples follow_)...
πŸ’‘ 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 _think_ I could, but I haven't bothered to do so yet... I'll try that out later...
@kate You're welcome πŸ˜‡
@bender Hehe, thanks for fixing this (_was_) broken thread 🧡 Haha 🀣
@sorenpeter I really think you should fix the # url in your feed to be https:// πŸ˜…
@bender Sure! πŸ‘


{
    ...
   # Layer 4 Reverse Proxy
   layer4 {
      # Gopher
      0.0.0.0:70 {
         route {
            proxy <internal_ip>:70
         }
      }

      # IRC (TLS)
      0.0.0.0:6697 {
         route {
            proxy <internal_ip>:6697
         }
      }
   }
}
Am I the only one that's confused by the discussions, and then the voting we had on the whole threading model? πŸ€” I'm not even sure what I voted for, but I know it wasn't the one that won haha 🀣 (_which I'm still very much against for based on an intuition, experience and lots of code writing lately_).
@xuu Good point! 🀣
OH nevermind. Ignore me. I _think_ @sorenpeter's feed is a bit weird. Because his url is http:// but he actually hosts a https:// feed with redirects. so things get a bit weird 😒
e.g: @sorenpeter
@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? πŸ’‘
@bender According to his @buckket Github profile, I _belive_ so.
There are other tasks LLM(s) are _far_ better suited for, which are also its downsides, and gawd so expensive and unrealistic to run yourself πŸ€¦β€β™‚οΈ Do you know what one of these NVIDIA H100's cost? πŸ’² That's right! 🀣 > $50k USD 😱 And many of the models out there require 8 of these suckers 🀣 Each one consumes around ~400W of power each (_not including the machine that houses them!_)~
@movq Yeah I couldn't agree more. The utility of using it in any way to form "truths" or to do anything that require a high degree of "accuracy" is utterly pointless.
@lyse Very nice! 😊 You must love those yellow dandelions? πŸ€”
But it is still a giant inefficient use of resources and energy 🀣
AI isn’t a shortcut for thinking. In her guide for skeptics, Hilary Gridley reframes AI as a collaboratorβ€”not a replacement. Use it like spellcheck for your thoughts. Don’t fear itβ€”iterate with it. Insight improves, speed follows. Full post: https://hils.substack.com/p/the-ai-skeptics-guide-to-ai-collaboration
@movq Haha 🀣 Figures πŸ€¦β€β™‚οΈ Also no need to be concerned with that here, I've personally blocked the ASN(s) of Microsoft, OpenAI, Claude and Google πŸ˜‚
@movq Yeah πŸ‘ Haha 🀣 Does your own cache go back this far? πŸ€”
Ahh so I was _partially_ right 🀣
@movq Apparently that is @buckket's name? πŸ€”
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 = #37sjhla
  mentions = []
      tags = []
     links = []
sqlite>
@movq It's nice to see shit like this still works 🀣 Even years later πŸ˜‚
@bender Yup πŸ‘
I do want to improve the feeds.twtxt.net service one day (_soonβ„’_) with features like this. But first I'll have to prevent spammers from abusing it by introducing IndieAuth as an authentication layer._
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 😒
@bender Shall we remove this primary/secondary color sttting? 🧐
@bender Btw, do we want to nuke this compact feature? 🧐
@bender How do you mean? 🧐 Caddy doesn't do L4 by default.
@kate I _think_ it's totally fine. I mean self-hosting costs money too. Power, Hardware, Time/effort, etc.
@bender I recommend this also πŸ‘Œ My eris was based off of a much much older version of ergo.
@kate I already have my IRC server irc.mills.io running behind Caddy Layer 4. However I don't terminate TLS at the edge in this case.
it is infininately simpler to run/operate 🀣
@kate @movq You could also have a play with eris which I use to power my little tiny server (_that almost no-one uses 🀣_)_
@bender Ahh okay, I must have misread the website πŸ€”
Seem like it's a server-client thingy? πŸ€” I much prefer tools in this case and defer the responsibility of storage to something else. I really like restic for that reason and the fact that it's pretty rock solid. I have zero complaints πŸ˜…
@bender Hahahahaha 🀣🀣🀣
Timeline of Evolution of Twtxt/Yarn.social**:

- 2016 – Twtxt created by John Downey: plain text + HTTP = minimalist microblogging
- 2017–2019 – Community builds CLI tools, but adoption remains niche
- 2020 – Yarn.social launched by @prologic with federation, threading, UI
- 2021–2023 – Pods sync, user mentions, blocking, search, and media support added
- 2024+ – Yarn.social becomes the reference Twtxt platform, with active federated pods
=
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.
@bender LOL 🀣
Oh hey @rrraksamam πŸ‘‹ Welcome back! πŸ™Œ Sorry about the data loss 🀯
@movq From what I can tell, they use strict semantic versioning and backwards compatibility. There are two versions of the storage, v1 and v2, but it doesn't look like v2 is enabled yet.
@movq LOL πŸ˜‚
B
A
@aelaraji Haha 🀣 I'd say it's just yet-another-bad-bot πŸ€– I've blocked a lot of such bots and often their entire networks (ASN) πŸ€¦β€β™‚οΈ
I use restic and Backblaze B2 for offline backup storage at a cost of $6/TB/month. I don't backup my entire ~20TB NAS and its datasets however, so I'm only paying about ~$2/month right now. I only backup the most important things I cannot afford to lose or annot re-created.
Yes
@javivf merged in to the repo of specs:
@kate I'll cut a release soonβ„’, but still a few more things to iron out 🀣 One of the new challenges is figuring out what to do with the "Discover" view now that is has an unconfined limit, on my pod (_at least_) it's now basically just "noise" πŸ€¦β€β™‚οΈ
@kate Been missing your jovial posts too and your friends 🀣
@quark No editing old Twts that are the root of a thread with replies in the ecosystem. Just results in a fork. Unless the client has an implementation that does not store Twts keyed by Hash.
@movq Oh dear πŸ˜‚
@kate The re-fetch should work just fine 🀞
@david Thanks I'll fix.
@bender Sure πŸ‘»πŸ‘»πŸ‘»
@bender That's what I'm trying to figure out πŸ€”
@andros Curious where this root twt is?! 🀣 Apparently my pod doesn't have it and I can't find it anywhere. It's suppose to be #l4doaxa
@andros For what purpose? πŸ€”
@xuu Yeah @-mentioning someone you don't have a local alias for is broken somehow :( I haven't looked into it yet...
@xuu Seems to be fine here?


$ bat https://twtxt.net/twt/yfv5kfq | jq '.text'
"!<dm-echo https://dm-echo.andros.dev/twtxt.txt> U2FsdGVkX1+QmwBNmk9Yu9jvazVRFPS2TGJRGle/BDDzFult6zCtxNhJrV0g+sx0EIKbjL2a9QpCT5C0Z2qWvw=="
@fastidious Haha 🀣
@<@marado@ciberlandia.pt https://tilde.pt/~marado/twtxt.txt> Hey! do you see this? 🧐
@bender I don't no. I mostly just use whole themes. And my facourite it AMOLED
@doesnm.p.psf.lt It was always intended to have both Yarn.social and Salty.im integrate together. Yes. This includes having a set of specifications that anyone can write clients to.
@javivf Generally speaking if it has been reviewed, discussed and merged, then we accept it as a standard to the set of specs we support. However we _might_ want to document this process and set some guidelines about this to be clear 🀣 We've been fairly lax/lose here and I _think_ that's okay given teh size of our community πŸ‘Œ
@bender Ahhh ha!!! 🀣 I'm too dumb to have thought of that 🀣
@bender Do we still want this feature? 🧐
@bender Would they even accept a server from me? πŸ§πŸ˜‚
@eapl.me This is one of my concerns too. The moment you post publicly ciphertext, you open yourself up for future attacks on the ciphertext, which you really want to avoid if you can. If you have a read of the Salty.im Spec you'll note we went to great lengths to protect the user's privacy as well as their identity and make it incredibly hard to guess at inboxes. It's still a WIP, but I'd love to see it progressed even further -- I truly feel strongly about a purely decentralised messaging ecosystem πŸ‘Œ
@bender ping! πŸ“
@hacker-news I like this πŸ‘Œ