this post was submitted on 14 Apr 2025
43 points (93.9% liked)
Fediverse
33269 readers
859 users here now
A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).
If you wanted to get help with moderating your own community then head over to !moderators@lemmy.world!
Rules
- Posts must be on topic.
- Be respectful of others.
- Cite the sources used for graphs and other statistics.
- Follow the general Lemmy.world rules.
Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration)
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Because outsourcing your core business processes is a bad idea. A fediverse app that relies on a library to do all the fediverse stuff is going to have a bad time. Not straight away, but eventually.
I'm not sure about that. Sometimes it's more about properly applying libraries. Thinking of database handling or cryptography
Imagine you want to write a competitor to PostgreSQL and you start out by importing SQLite into your project and building on top of that. To you it seems like a good idea because you've never written a DB app before and the only DB you've ever seen before is SQLite. You'll get a prototype real fast but you'll never build a PostgreSQL equivalent because you never learned the foundational knowledge of how a DB works and because SQLite forecloses all the pathways you need to get there.
Same thing.
I'd argue this is more like "I want to build a competitor to spotify so let's decide between using mariaDB or writing an SQL compliant database from scratch"
In your example, a database is the end goal and you can either start with a premade or make your own.
Here, a social media platform is the end goal. Activitypub is a very important part of it but it's not the entire piece.
If we replace the parts of your analogy with the original your example would parse out to "I want to make a competitor to lemmies ActivityPub integration, so let's start with fedify" which is not the same as the article states.
Now, should you re-impliment a protocol yourself or use a generic library is the real question. Both have their benefits. With option A you have full code ownership and can wrap your solution around your end goal without the issue of dealing with the original to get needed changes accepted. You don't have to worry about code not written by or understood by you. With option B, you get a more robust and almost certainly more accurate implementation. Along with, for free, better integration with any service using the same library. Very useful for a federated service when talking about cross platform.
Both have many more positives and negatives of course and each person should decide on their own how to proceed.
My opinion? I think it's usually best to own anything which could feasibly be understood by a single dev. Even if each dev doesn't. Anything larger shouldn't be internal in my strong opinion unless very good, specific reasons apply that makes an external solution impossible or increadibly difficult. Most negatives of an external library also apply at that point with enough time.