For the last several months I've been working on making a federated app.
I just finished migrating it to use the latest iteration of our new #leafprotocol data format on top of the #willowprotocol and so far it's going really well.
In this post I share some of the concepts and rational behind the Leaf Protocol:
https://zicklag.katharos.group/blog/introducing-leaf-protocol/
Introducing The Leaf Protocol
An overview of the experimental Leaf Protocol for federated, local-first app development.zicklag.katharos.group
This entry was edited (2 weeks ago)
This website is tracked using the Matomo analytics tool. If you do not want that your visits are logged in this way you can set a cookie to prevent Matomo / Piwik from tracking further visits of the site (opt-out).
Evan Prodromou
in reply to Zicklag • • •"One of the problems with this is that your server only knows about things that have been sent to one of its inboxes."
This is untrue. Any AP server can request data from any other server to stay in synch. Literally every AP object comes with an URL to fetch its full information.
Evan Prodromou
in reply to Evan Prodromou • • •"they’re not necessarily able to transfer or migrate a users data, creating a level of lock-in despite the open protocol."
You should see LOLA.
https://swicg.github.io/activitypub-data-portability/lola
LOLA Portability for Activity Pub (0.2)
swicg.github.ioEvan Prodromou
in reply to Evan Prodromou • • •Zicklag
in reply to Evan Prodromou • • •I don't disagree that you can make all kinds of interesting patterns on top of AP. AP is extremely flexible, but also requires unofficial draft extensions like LOLA to satisfy my use-case.
To make ActivityPub feasibly accomplish my goals would take more work than making my own simple solution.
And in the end I would have an increasingly complicated half-compatible version of ActivityPub, instead of a simpler protocol that does exactly what I need.
🧵
Zicklag
in reply to Zicklag • • •@evan As far as the risks as a product designer, there is a risk in every direction, but the simplest solution is usually the easiest to change and adapt to future needs / obstacles.
As far as wasting others' time, it can't waste the time of anybody who doesn't choose to invest their own time in it.
Every person's time is their own to invest. If Leaf isn't worth it that's up to them.
I'm simply betting my own time and effort that this will be the most effective road for me to build my app.
Evan Prodromou
in reply to Zicklag • • •Zicklag
in reply to Evan Prodromou • • •@evan I actually am making a product called Weird: https://weird.one.
I need others to be able to run federated Weird instances. That requires a standardized protocol between those instances.
But the protocol is secondary. My priority is the product.
If the protocol turns out useful elsewhere, and other people want to use it and collaborate, that's a great bonus. 🥳
Weird
weird.oneEvan Prodromou
in reply to Zicklag • • •&ers
in reply to Evan Prodromou • • •Evan Prodromou
in reply to &ers • • •&ers
in reply to Evan Prodromou • • •Evan Prodromou
in reply to &ers • • •Sean Tilley
in reply to Evan Prodromou • • •Evan, I love you, but telling someone that their effort or focus of interest is a waste of time, and that they should build on your thing instead, is not exactly a good strategy on getting those people to build on your thing.
It’s not a good look.
Whether or not this person’s efforts go somewhere is besides the point. They cared enough to think about what they perceived to be problems, and actually built something. That exploration in and of itself is invaluable, and if they keep at it, it’s bound to bear fruit in a number of different ways. Maybe some of their good insights might even translate to ActivityPub work. 🙂
Evan Prodromou
in reply to Sean Tilley • • •@deadsuperhero
It's not *my* thing! It's the open social networking standard, developed and recommended by a recognized standards organization, with ~100 implementations and ~30,000 installed servers.
There's nothing wrong with building a homegrown protocol and a software server to use it.
@zicklag have fun with weird.one.
Evan Prodromou
in reply to Evan Prodromou • • •@deadsuperhero I have really strong feelings about people having access to distributed social networks. You can read my blog post on the subject here:
https://evanp.me/2023/10/06/activitypub-the-socialcg-and-the-social-web/
ActivityPub, the SocialCG, and the social web
Evan Prodromou's BlogEvan Prodromou
in reply to Evan Prodromou • • •@deadsuperhero You may also have seen my thread on the topic here:
https://prodromou.pub/@evan/110045336289311841
Evan Prodromou (@evan@prodromou.pub)
Prodromou.pubEvan Prodromou
in reply to Evan Prodromou • • •Evan Prodromou
in reply to Evan Prodromou • • •Zicklag
in reply to Evan Prodromou • • •The fact remains that things like counts and, more importantly, post replies are not viewed identically across multiple homeservers, due to the event driven nature.
There is also the fact that you don't see any post by default if you don't follow somebody and they aren't on your server. This is particularly noticeable with single-user ActivityPub instances:
https://jvns.ca/blog/2023/08/11/some-notes-on-mastodon/#downsides-to-being-on-a-single-person-server
Notes on using a single-person Mastodon server
Julia EvansEvan Prodromou
in reply to Zicklag • • •That's an implementation problem; the counts are available from the remote server.
I highly recommend reading my upcoming book "ActivityPub: Programming for Social Web" from O'Reilly Media, coming out later this month. You can read a free pre-release version here:
https://www.oreilly.com/library/view/activitypub/9781098162733/
ActivityPub
O’Reilly Online LearningJosh Shaked ⁂
in reply to Evan Prodromou • • •Evan Prodromou
in reply to Josh Shaked ⁂ • • •Evan Prodromou
in reply to Evan Prodromou • • •