Hi!
For the past ~2 months I’ve been working on my own implementation of an ActivityPub server, as a personal challenge. It’s finally come to the point where I could set up a public federation testing instance (https://testpilot.shinolabs.com/) which surprisingly just works.
While it doesn’t have a frontend yet (due to my severely lacking skills), Toki supports the Mastodon API set, allowing most fedi clients to connect to it.
It’s been a wild journey going from barely understanding ActivityPub and ActivityStreams to having something that actually federates and allows me to talk with the wider Fediverse network. It’s been something I wanted to do since at least 2018, but only now really took the steps to properly attempt it.
I’d love to hear any suggestions or potential bugs people can find (contributions are also welcome ^^)!
Cheers :)
Nice, congratulations for completing a personal project. One day I also hope to complete a personal project.
What reference material did you use to build it? As in like the activitypub specification
Hi, thank you so much!!
For learning ActivityPub I’ve used a ton of resources actually, but the ones that were the most helpful to me were:
- https://tinysubversions.com/notes/reading-activitypub/ (reading the specs)
- https://socialhub.activitypub.rocks/t/guide-for-new-activitypub-implementers/479 (general activitypub knowledge)
- https://seb.jambor.dev/posts/understanding-activitypub/ (understanding the protocol flow and quirks of software)
- https://iceshrimp.dev/iceshrimp/iceshrimp.net (code examples from a real project)
- https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/ (implementing a very basic activity sending flow and HTTP signatures)
additionally
- https://docs.joinmastodon.org/ (the mastoapi implementation)
- https://oauth.net/2/ (oauth2 spec for mastoapi)
and a ton of code reading of other AP projects :)
Pona!
This is really cool! Congrats on bringing it to completion. I would love to do something similar one day 😁
Thank you!!