Up until recently, I've been looking at ActivityPub C2S mostly from the server perspective and it's been very abstract when I've thought of it from a client perspective
A consequence of this is that I never realized how much detail could be safely ignored in a targeted implementation for a single bespoke application. No inheritance. No unknown properties. No handling unknown media types. No parsing message bodies for implicit properties. Target and test the servers you want to support, one at a time
@yaaps server is for assigning id, mainly. then for delivering to/cc. and storing activities in inbox.
client does everything else, including keeping track of ids
@yaaps @trwnh I made a C2S client last year. I never released it and mostly abandon it as I wasn't happy with what I was doing or the C2S support in Pleroma (that I was using as AP server). It is able to display your inbox and outbox, post things to your outbox, and see the outboxes of anyone else.
I could try it again with other AP servers with C2S support, but I don't have much time for this.
NextCloud federation isn't perfect, but AP C2S is a first class citizen there. It might be worth testing
Also, developing client and server in tandem is taxing. It would be useful to have a tested client so that I could focus on server development being reasonably sure which side is broken when thing things don't work