You cannot do whatever you want on someone else's hosted website. They don't allow you to delete other users and edit other people's posts because everyone agrees that would make it useless.
> You cannot do whatever you want on someone else's hosted website
The whole thing with Bluesky and decentralized protocols is no server can enforce special rules.
Sure, they could come up with something that says "our PDS will not accept backdated events", but they will not be able to stop someone else to set up a server that does that without any issue.
Indeed, but you are not answering the question: how can you reconcile the idea that ATProto is meant to be decentralized (i.e, no single authority) and at the same time have rules that are enforced (purely by software, I'm not arguing that rules could be enforced socially) by any particular server?
You would need some form of distributed consensus mechanism, but then you either end up with some exclusive club to implement Paxos or you will need some blockchain-y solution, no?
Atproto and ActivityPub are both multi-polar governance, though AP more aggressively so (though we hope not for long as we pursue some lower-cost execution models for the appview). Consequently the realpolitik is, what's the business logic of the applications with the most users.
Bluesky consists of PDSs and a central indexing server. Bluesky themselves can say that their indexing server won't accept backdated posts, thus making all posts on the Bluesky app itself have valid dates, but others would then be able to make another version of Bluesky with the same posts that also does accept backdated posts.
ATProto is usable without Bluesky’s AppView. You just need to create another centralized indexing server of your own and have it index all PDSs. This is certainly less decentralized than other systems since there’s a barrier to entry (getting the compute power to index all PDSs), but that’s the tradeoff you make by not having server-specific namespaces like Mastodon does. They seem to also make their AppView implementation open-source, which seems to show their goodwill.
You do still get the benefits of being able to interoperate between different apps that may not know each other exist without the disadvantages of having server-specific namespaces, which is of course the point.
“A valid date” would be determined by said server (BlueSky’s or yours). You could choose to write a server that enforces consistent dates or one that does not, and the definition of a valid date would be different per AppView.
I acknowledge the other way of doing it which ActivityPub uses has some benefits as well.
ActivityPods implements ActivityPub vocabulary while using SOLID data stores. You get your identity and data, you can interact with other ActivityPub software and you do not need to rely or set up any centralized indexer.
There is no "goodwill". Bluesky's plan (from day one!) has been to create something that could have been used by Twitter to keep them as the gatekeeper of the data while removing them from any liability for custody. They know that their moat is on their expensive indexer and they will not take any measure that gives this power to end users.
One of our current projects is to create a partial sync model so that self hosted appviews can be run more cheaply. After that, it’s really just the cost of physics
You can do whatever you want with the the software. It's right here: https://github.com/bluesky-social
You cannot do whatever you want on someone else's hosted website. They don't allow you to delete other users and edit other people's posts because everyone agrees that would make it useless.