I’m learning web development. I’m on databases at the moment, postgresql in particular. I thought it might be fun to try to help with a fediverse project or two, but I’m only knowledgeable about node.js, and npm, do any fediverse projects use that? I also may be diving too deep too early with this. Appreciate any feedback you guys have!
misskey and it’s forks (firefish, iceshrimp, sharkey, and the approx. million others) use a node/ts backend with a vue/ts frontend. peertube also uses node to the best of my knowledge.
that said:
- misskey itself is developed almost entirely in japanese so you probably won’t be able to help out too much.
- firefish in my experience is doing a LOT of questionable design decisions (hello scylladb migration!) so i’m not sure if it’s in a good shape right now
- iceshrimp is forked off from firefish and seems to be aiming to fix things up as opposed to introduce new features (their matrix chat has been really interesting to lurk in especially when it comes to database performance talk)
- on the other hand, sharkey follows the latest versions of misskey and has been adding a fair amount of useful features on top of it (post imports that actually work without sending notifications to everyone, message editing which misskey itself found too hard to do, etc.)
I’ll have to look into those, although my knowledge right now is pretty limited. Might have to wait until i finish my course. I don’t even know anything about react, or similar systems yet, and I’m just learning PostgreSQL. Thanks for the help!
I was looking for a NodeJS Activity Pub library, and the only promising one I found looks to be only partially complete. That said, I think most Fediverse platforms use implementations in other languages: Rust (Lemmy) , PHP (Kbin), Ruby (Mastadon), etc).
Several frontends use NodeJS, though. Perhaps you can contribute there or even contribute to Actvitypub-Express to bring that to feature completion?
Pixelfed also uses PHP/Laravel in the backend
activitypub isn’t something you can abstract into a library in a clean way in my experience. the best attempt here seems to be go-fed. most projects i know of implement it in their own way, specialized to the kind of platform they’re planning to build.
Check out Firefish