# 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 195807
# self = https://watcher.sour.is?offset=195502
# next = https://watcher.sour.is?offset=195602
# prev = https://watcher.sour.is?offset=195402
@prologic Well, personally I would, as I already do for user feeds in my client.

That's why part of my proposal was to allow custom strings and be free from a specific format that need periodical upgrades, but it's not much of a problem in the end.

I'll adapt to what we can get out of this.
@zvava I axtually latest did and I wasn't the only one 🤣
@zvava That's what I'm leaning towards yeah🤞
A análise do PCP* está um bocadinho melhor articulada que a minha:

* https://www.pcp.pt/insistencia-do-governo-em-medidas-fiscais-agrava-injusticas-promove-precariedade-na-habitacao

"Até agora, a redução da taxa para 10% estava condicionada à celebração de contratos com a duração mínima de dez anos, com esta alteração, passa a ser aplicada a taxa de 10% mesmo a contratos de apenas um ano (com rendas até 2300 euros). Na verdade, o Governo incentiva a conversão de contratos de longa duração em contratos de curta duração, desprotegendo os inquilinos e contribuindo para uma nova espiral de aumento das rendas."

"quer o alargamento das deduções com as despesas de arrendamento por parte dos inquilinos em sede de IRS – medida que deixa de fora mais de 40% dos inquilinos, pois não pagam IRS – , quer em particular a descida do IVA na construção para imóveis até 648 mil euros inserem-se numa orientação que privilegia e favorece um tipo de construção cujos valores não respondem às necessidades de quem procura arrendar ou comprar habitação"

"O País precisa [...] da regulação do mercado de arrendamento que coloque limites ao valor das rendas e force a sua descida. Precisa da promoção da estabilidade dos contratos de arrendamento assumindo os dez anos como referência."
plus, if hashv2 was implemented in combination with text fragments the way you proposed that would solve both scripting and human readability woes!!

...though, the presence of the text fragments then makes reversing the replied-to twt (and therefore its hash) trivial, which could allow clients to tolerate the omission of the hash — and while it would be 'non-standard' this would be the best of both worlds; potential to *tolerate* (or pave a glacial path toward? :o) human writable twts whilst keeping a unique id for twts that is universal across all pods
plus, if hashv2 was implemented in combination with text fragments the way you proposed that would solve both scripting and human readability woes!!

...though, the presence of the text fragments then makes reversing the replied-to twt (and therefore its hash) trivial, which could allow clients to tolerate the omission of the hash — and while it would be 'non-standard' this would be the best of both worlds; potential to *tolerate* (or pave a glacial path toward? :o) human writable replies whilst keeping a unique id for twts that is universal across all pods
@prologic to clarify the i meant the ability to parse feeds using unix command line utilities, as a prinicpal of twtxtv1's design. im not sure how feasible it is to build a simple feed reader out of common scripting utilities when hashing is in play, and;

i concede, it does make a lot of sense to fix up the hashing spec rather than completely supplant it at this point, just thinking about what the rewrite would be like is dreadful in and of itself x.x
@prologic to clarify: i meant the ability to parse feeds using unix command line utilities, as a principal of twtxtv1's design. im not sure how feasible it is to build a simple feed reader out of common scripting utilities when hashing is in play, and;

i concede, it does make a lot of sense to fix up the hashing spec rather than completely supplant it at this point, just thinking about what the rewrite would be like is dreadful in and of itself x.x
@zvava Haha 🤣
Please don't hate me today; I'm a bit grumpy and have too many reasons to be upset:

- 2 counts of pushing and trying to get the simplest things done at work (_that for some reason are made more difficult than they should be_)
- This whole Chat Control bullshit
- And some other person things going on that have been ongoing for 72 days and counting 🤬
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_).~
Put another way, what you are proposing/pushing for requires hundreds of lines of code to change across a half dozen or so clients and lots of breaking changes, not to mention unknowns.

What I want us to do is make only a few half dozen or so lines of code changes to our clients and minimize the breaking changes and unknowns.
@zvava Going to have to hard disagree here I'm sorry. a) no-one reads the raw/plain twtxt.txt files, the only time you do is to debug something, or have a stick beak at the comments which most clients will strip out and ignore and b) I'm sorry you've completely lost me! I'm old enough to pre-date before Linux became popular, so I'm not sure what UNIX principles you think are being broken or violated by having a Twt Subject (Subject) whose contents is a cryptographic content-addressable hash of the "thing"™ you're replying to and forming a chain of other replies (a thread).

I'm sorry, but the simplest thing to do is to make the smallest number of changes to the Spec as possible and all agree on a "Magic Date" for which our clients use the modified function(s).
@zvava Going to have to hard disagree here I'm sorry. a) no-one reads the raw/plain twtxt.txt files, the only time you do is to debug something, or have a stick beak at the comments which most clients will strip out and ignore and b) I'm sorry you've completely lost me! I'm old enough to pre-date before Linux became popular, so I'm not sure what UNIX principles you think are being broken or violat
@prologic the simplest thing to do is to completely forgo hashing anything because we are communicating using plain text files right now :3
@prologic the simplest thing to do is to completely forgo hashing anything because we are communicating using plain text files right now :3 while i agree hashes are incredibly helpful in the backend im not sure it has a place outside of it, it basically eliminates two core design principals of twtxt (human readability and integrating well with unix command line utilities) and makes new clients more difficult to build than it should be
@bender Well honestly, this is just it. My strong position on this is quite simple:

> Do the simplest thing that could work.

It's one of the age old UNIX philosphies.

Therefore, the simplest thing™ to do here is to just increase the hash length, mark a magic™ date/time as @lyse has indicated and call it a day. We'll then be fine for a few hundred years, at which point there'll be no-one left alive to give a shit™ anyway 🤣
edbrowse is like a Swiss Army Knife-it can do http, gopher, irc, email, and JS. The issue is it's slower with JS enabled.
@prologic considering other alternatives we have seeing (of which I have lost track already), yes. Why don’t you guys (client makers) take a step at a time and, for now, increase the hash length to deal with the collisions. Then location-based addressing can be added… or not, you know. 😅
🧮 USERS:1 FEEDS:2 TWTS:1475 ARCHIVED:90066 CACHE:2689 FOLLOWERS:22 FOLLOWING:14
if i see a chris link, i click a chris link. i am such a big fan of chris links. thank you chris.
@alexonit My problem is I don't see a world where we don't employ some form of cryptography to use as keys for threads in databases and other such things honestly. I'm not going to use url#timestamp as keys.
Oh man, if the EU _actually_ rolled out this horribd idea called ChatControl that _actually_ threatens the security and privacy of secure e2e encrypted messaging like Signal™, fuck me, I'm out 🤦‍♂️ I'll just rage quit the IT industry and become a luddite. I'm out.
A "explicação"* do Governo às "rendas moderadas" de 2.300€ dava um tratado.

* https://eco.sapo.pt/2025/09/25/rendas-de-2-300-euros-sao-moderadas-a-explicacao-do-governo/

Veja-se só:

"para poderem precisamente fixar-se e poderem constituir os recursos humanos que a nossa administração pública e as nossas empresas precisam para serem competitivas"

"uma família com dois ou três filhos em Lisboa e no Porto, muitas vezes não consegue ter uma habitação a um preço inferior a este"

"os 2.300 euros, nomeadamente nas zonas de maior pressão, apontam para um rendimento do agregado familiar na casa dos 5.000 euros para um agregado familiar de um pai, de uma mãe, dois filhos"

"também estão lá os funcionários públicos em início de carreira com 1.248 euros"

E a realidade em Portugal?

* salários mais baixos na Função Pública são 878,41 euros brutos mensais (2025)

* rendimento bruto médio de agregado familiar em Portugal era 3352€/mês (2022)

* casal de FPs a receber cada 1.248 euros/mês não ganha o suficiente para pagar uma renda mensal de 2300

Mas pronto, são rendas moderadas, os salários é que são baixos... ainda bem que o Governo vai subir o salário mínimo nacional para os 1200€... Ai não vai? É só 1100€ e para 2029? Ah, mas dá antes descontos aos senhorios, pode ser que seja mais ou menos a mesma coisa...

#ptpol #rendas*
@prologic I think a counter in the client is not a good choice given the decentralized nature of twtxt, especially if someone use multiple cients together.

After thinking about it for a while I got to two solutions:

Proposal 1: Thread syntax (using subject)

Each post have an implicit and an *optional* explicit root reference:

- Implicit (no action needed, all data required are already there)
- URL + timestamp

- Explicit (subject required)
- Identity (client generated)
- External reference
- Random value

We then add include a "root" subject in each post for generating explicit theads:
1. [ROOT_ID] (REPLY_ID): simpler with no need of prefixes
2. (root:ROOT_ID) (reply:REPLY_ID): more complex but could allow expansions
- (rt:ROOT_ID) (re:REPLY_ID): same but with a compact version
- ($ROOT_ID) (>REPLY_ID): same but with a single characters

Each post can have both references, like the current hash approach the reference can be treated as a simple string and don't have a real meaning.

Using a custom reference this way allows a client to decide how to generate them:
- Identity: can be a content hash or signature or anything else, without enforcing how it is generated we can upgrade the algorithm/length freely
- External references: can be provided from another system (Eg. 7e073bd345, *yarnsocial/yarn* latest commit)
- Random value: like a UUID (Eg. 9a0c34ed-d11e-447e-9257-0a0f57ef6e07)

Proposal 2: Threaded mentions (featuring zvava)

Inspired by @zvava's solution it could be simplified into: #<nick url#timestamp> or #<url#timestamp>

It can be shown like a mentions or hidden like a subject.

If we're using thinking of using a counter in the client, I think there's no point in avoiding the timestamp anymore.*
@bender Yes I did about a week or so ago. It took me a lot of effort to get the content even rendered in the first place. LOL I had to basically export my blog as HTML (_can you believe that?!_) -- The Hugo export just didn't work at all 🤣
Looking forward to see how it evolves! And happy to see you leaving behind micro. Good riddance! LOL.
@prologic While it might work if you want to keep both, I think the point was to be able to use one or the other, if we still have to generate the hash anyway it might be pointless to use this format.
@prologic I admit that I was a bit confused about the meaning of the message, at least I understood it was a "yes" from the last sentence. 😅
I just created a zs blogging template which I'm going to use for https://prologic.blog and I _might_ starting writing long-form again soon™ 🔜 So far the "blogging" template/engine (_if you weill_) is quite simple. It comprises essentially of an index.md a prehook and a few utilities:


$ git ls-files
.gitignore
.zs/config.yml
.zs/editthispage
.zs/include
.zs/layout.html
.zs/list
.zs/months
.zs/now
.zs/onthispage
.zs/posthook
.zs/postsbymonth
.zs/prehook
.zs/scripts
.zs/styles
.zs/tagcloud
.zs/taglist
.zs/years
archives/.empty
assets/css/site.css
assets/js/main.js
index.md
posts/hello-zs-blog.md
posts/on-tagging.md
posts/second-post.md
tags/.empty
@movq Yes it's kind of terrible 😞 -- Let's not do this 🤣
@bender Really? 🤔
@bender Well, you guessed correctly! 😁

Would be nice to have a fixed fee for that, a car is a car anywhere in the world...
@prologic That’s a completely flat threading model (you can’t reply to replies). Is that intentional?
@prologic that's not too bad! 👏🏻👏🏻👏🏻
This is possibly the only other threading model I can come up with for Twtxt that I think I can get behind.
Example:

Alice starts thread #42:


2025-09-25T12:00:00Z (tno:42) Launching storage design review.


Bob replies:


2025-09-25T12:05:00Z (tno:42) (ofeed:https://alice.example/twtxt.txt
) I think compaction stalls under load.


Carol replies to Bob:


2025-09-25T12:08:00Z (tno:42) (ofeed:https://alice.example/twtxt.txt
) Token bucket sounds good.
TNO Threading (draft):
Each origin feed numbers new threads (tno:N). Replies carry both (tno:N) and (ofeed:<origin-url>). Thread identity = (ofeed, tno).

- Roots: (tno:N) (implicit ofeed=self).
- Replies: (tno:N) (ofeed:<url>).
- Clients: increment tno locally for new threads, copy tags on reply.
- Subjects optional, not required.

...=
@itsericwoodward I'm glad to hear it 🤣
Of course we still have to fix the hashing algorithm and length.
I would personally rather see something like this:


2025-09-25T22:41:19+10:00	Hello World
2025-09-25T22:41:19+10:00	(#kexv5vq https://example.com/twtxt.html#:~:text=2025-09-25T22:41:19%2B10:00) Hey!


Preserving both content-based addressing as well as location-based addressing and text fragment linking.
Monica Rizzolli has edited a new smashing magazine that covers some cool historic and contemporary #CreativeCoding in Brazil (disclosure / bias warning: I'm on it). Published in Portuguese with an English translation of the text.
500 unique generative covers, art by Rod Junqueira and title variations by André Burnier.

https://www.indiegogo.com/projects/variavel-magazine
I was trying to say (_badly_):

> That's kind of my position on this. If we are going to make significant changes in the threading model, let’s keep content based addressing, but also improve the user experience. Answering your question, yes I think we can do some combination of both.
@alexonit Holy fuck! 🤣 I just realized how bad my typing was in my reply before 🤣 🤦‍♂️ So sorry about that haha 😆 I blame the stupid iPhone on-screen keyboard ⌨️
@alexonit Maybe I misunderstood, but you have to keep the timezone offsets in mind. Simple alphabetical sorting of the timestamp strings does not yield a truly chronological order. It might be close enough for you, though.
@alexonit that sounds pretty much like Italy! LOL. We pay $48 on renewal in Florida, US, but that fee isn't Federal, so other states may pay more, or less.
@prologic That is really great to hear!

If there are opposing opinions we either build a bridge or provide a new parallel road.

Also, I wouldn't call my opinion a "stance", I just wish for a better twtxt thanks to everyone's effort.

The last thing we need to do is decide a proper format for the location-based version.

My proposal is to keep the "Subject extension" unchanged and include the reference to the mention like this:


// Current hash format: starts with a '#'
(#hash) here's text
(#hash) @<nick url> here's text

// New location format: valid URL-like + '#' + TIMESTAMP (verbatim format of feed source)
(url#timestamp) here's text
(url#timestamp) @<nick url> here's text


I think the timestamp should be referenced verbatim to prevent broken references with multiple variations (especially with the many timezones out there) which would also make it even easier to implement for everyone.

I'm sure we can get @zvava, @lyse and everyone else to help on this one.

I personally think we should also consider allowing a generic format to build on custom references, this would allow for creating threads using any custom source (manual, computed or external generated), maybe using a new "Topic extension", here's some examples.


// New format for custom references: starts with a '!' maybe?
(!custom) here's text
(!custom) @<nick url> here's text

// A possible "Topic" parse as a thread root:
[!custom] start here
[custom] simpler format


This one is just an idea of mine, but I feel it can unleash new ways of using twtxt.
Em 2007 "dungeon synth" não era propriamente um estilo musical que eu reconhecesse, e no entanto, sem saber, era não só influenciado pelo género como até participava dele. Agora, em retrospectiva, classifico muito do que fiz com o meu projecto musical a solo #Merankorii como sendo #DungeonSynth - e um dos temas que se enquadra bem nisso é o "The Alchemist", que encerra o album "Sanguine", e que aqui relembro nesta #musiquinta porque, com o tema "me define", como poderia eu não escolher uma música que não só me define, como é um auto-retrato?

https://merankorii.bandcamp.com/track/the-alchemist
@itsericwoodward I used the dates as is for indexing them as string, the ISO format allows for free auto sorting.
@bender What?! In my country you have to pay 100€ every 10 years of which about 75% are just taxes...
So I just put on a zipper jacket over my hoodie because it's 18 °C here in my office right now, and I refuse to turn on the heating!
Hotel. Rue Barbes. Parking in the street, if you take the one way road in the wrong direction.
Hotel Montmartre 1
I _finally_ resolved my issues with hashing twts... with REGEX!

Dates in JavaScript are truly strange creatures.
#DireStraits Documentary

https://nebula.tv/videos/maryspender-the-dire-straits-story-full-documentary
Mary Spender on #DireStraits & Sultans of Swing

https://www.youtube.com/live/_g00S-a_0lo
🧮 USERS:1 FEEDS:2 TWTS:1474 ARCHIVED:90050 CACHE:2682 FOLLOWERS:22 FOLLOWING:14
boop
bwop
@movq I've got this magic spell in my config: -f bestvideo[height<=?1080]+bestaudio/best
@itsericwoodward pretty cool! Started following you, not to miss any progress. Thanks for the exhaustive reply!
@lyse that's pretty cool! The first video I see on YouTube of that kind. Thanks!
@lyse Hm, I couldn’t trick yt-dlp into downloading the correct format. Works in the browser, though. 😅
@bender @movq I had automatically yt-dlped https://www.youtube.com/watch?v=OZTSIYkuMlU. It's only worth for an experiment, no recommendation to watch.
I have fully restored my script that posts from CLI to Mastodon, twtxt, and my ichi.city web page.
@melyanna Exit! Exit!@1! https://movq.de/v/c51aa76926/exit-exit-exit.jpg
@lyse I can’t remember the last time I came across a 360° video. 🤔
@bender 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 …
Tnanks God for Gopher://
https://maurice-renck.de/en/notes/2025/wir-befinden-uns-im-permanenten-krieg-mit-der-natur-die
This week I wrote about #mastodon lists on the Sociabli blog. Besides some basics, I show you how you can create custom timelines without seeing those posts on your home timeline:https://sociab.li/blog/2025/mastodon-lists/
Ah ben voilà, j'ai trouvé la plateforme VOD de la bonne auberge. Je préfère m'y abonner que de supporter les pubs du podcast et c'est un meilleur moyen de les soutenir que patreon à mon avis : https://www.studio17.video/home
O que vocês recomendam para adesivos personalizados?
Printi, 360imprimir, Rei do Sticker?
(no Brasil) captura de tela do Reclame Aqui do Rei do Sticker
@bender 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!
«The Hudson River is flowing through the heart of Times Square this month.
Press play to hear from Marina Zurkow & James Schmitz [@hx2A@mastodon.art] the artists behind ‘The River is a Circle (Times Square Edition)’ - September’s #MidnightMoment, a visual “combination of live data and a matrix of researched information about the Hudson River ecology,” says Zurkow.»

https://www.instagram.com/reel/DO6jbXrEdBG

#CreativeCoding #Processing #Python #py5 #TimesSquare #NYC
«The Hudson River is flowing through the heart of Times Square this month.
Press play to hear from Marina Zurkow & James Schmitz [@hx2A@mastodon.art] the artists behind ‘The River is a Circle (Times Square Edition)’ - September’s #MidnightMoment, a visual “combination of live data and a matrix of researched information about the Hudson River ecology,” says Zurkow.»

https://www.instagram.com/reel/DO6jbXrEdBG

#CreativeCoding #py5 #TimesSquare #NYC
🧮 USERS:1 FEEDS:2 TWTS:1473 ARCHIVED:90042 CACHE:2678 FOLLOWERS:22 FOLLOWING:14
#MaradoWeekly #WeeklyPlant Week 38 The single plum that my plum tree gave us in 2025.
@movq 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.
@lyse is it a 360 degree video online, or a local one?
Whooooaaaah, I just accidentally found out that VLC can play 360° videos and I am able to pan around! Crazy shit. I actually scrolled in order to adjust the volume like it usually works, but it zoomed in and out instead. Then I saw the title hinting at the 360° stuff. Even though this is not my cup of tea, it's nice that VLC supports it.
I am back to my bash scripting! This is in fact a test.
exit
I would absolutely recommend Mint to anyone, not just my geeky friends.
@aelaraji 👋
The driver’s license documents in Germany now have an expiration date. You have to renew them every 15 years. (Not the license itself, just the documents.)

I just got my renewed documents. Their expiration date says something like 01.09.40. Huh? That looks super weird to me, like an error. But no, it’s 2040 … Just 15 years away.
#NoiteDeProcessing #hackerspace #GaroaHackerClube Páginas da revista sobre a Noite de Processing no Garoa Hacker Clube
Gente, esta notícia é quente, vai sair o primeiro número da Variável. Tem uma entrevista comigo, estou até meio emocionado (não tenho nem roupa pra estar junto com algumas das figurinhas que aparecem na revista).

https://www.catarse.me/variavel (para o Brasil)

https://www.indiegogo.com/projects/variavel-magazine (para outros países)

#ProgramaçãoCriativa #CreativeCoding Reprodução de páginas da revista onde aparecem alguns dos meus desenhos e o começo da entrevista.
[47°09′34″S, 126°43′19″W] Dosimeter fixed
The new iTerm icon is confusing me; for a second I always wonder what that app is when the Dock comes into view.
@alexonit Yhays kind of love you!! Stance and position on this. If we are going to make chicken changes in the threading model, let's keep content based addressing, but also improve the use of experience. So in fact, in order to answer your question, I think yes, we can do some kind of combination of both.
What does it do to us if we can no longer trust any information? What if your mail app changes the content of your mail without you knowing?https://maurice-renck.de/en/blog/2025/trust-issues
[47°09′36″S, 126°43′20″W] Dosimeter still failing
@lyse @prologic Can't we find a middle ground and support both?

The thread is defined by two parts:

1. The hash
2. The subject

The client/pod generate the *hash* and index it in it's database/cache, then it simply query the subject of other posts to find the related posts, right?

In my own client current implementation (using hashes), the only calculation is in the hash generation, the rest is a verbatim copy of the subject (minus the # character), if this is the common implemented approach then adding the location based one is somewhat simple.

s
function setPostIndex(post) {
    // Current hash approach
    const hash = createHash(post.url, post.timestamp, post.content);

    // New location approach
    const location = post.url + '#' + post.timestamp;

    // Unchanged (probably)
    const subject = post.subject;

    // Index them all
    addToIndex(hash, post);
    addToIndex(location, post);
    addToIndex(subject, post);
}

// Both should work if the index contains both versions
getThreadBySubject('#abcdef') => [post1, post2, post3]; // Hash
getThreadBySubject('https://example.com#2025-01-01T12:00:00') => [post1, post2, post3]; // Location


As I said before, the mention is already location based @<example https://example.com/twtxt.txt>, so I think we should keep that in consideration.

Of course this will lead to a bit of fragmentation (without merging the two) but I think this can make everyone happy.

Otherwise, the only other solution I can think of is a different approach where the value doesn't matter, allowing to use anything as a reference (hash, location, git commit) for greater flexibility and freedom of implementation (this probably need the use of a fixed "header" for each post, but it can be seen as a separate extension).
[47°09′29″S, 126°43′41″W] Dosimeter malfunction
@lyse I don't think there's any point in continuing the discussion of Location vs. Content based addressing.

I want us to preserve Content based addressing.

Let's improve the user experience and fix the hash commission problems.
@aelaraji welcome back dude! Long time no see!
🧮 USERS:1 FEEDS:2 TWTS:1472 ARCHIVED:90032 CACHE:2678 FOLLOWERS:22 FOLLOWING:14
@04866 what?? I don't know how to get myself around edbrowse, I almost hate it