Hi, I'm building an ActivityPub server in TypeScript

Hi everyone! I’m attempting to build a spec-compliant ActivityPub server with TypeScript (Node.js).

There’s a lot missing. Any help would be appreciated!

Let me know if you have any questions about it.

Here’s the Github link:

6 Likes

Very interesting!
Can it work with Fastify ?
And is it non-opiniated enough to work with a postgresql database ?

1 Like

Hi thanks so much for looking at it!

Yes, that is definitely the goal.

It is designed to be modular, with a core logic layer, plus plugins/adapters for Database, Server, Authentication, etc.

I’ve only written a MongoDB database adapter and an Express middleware adapter so far, but I am definitely interested in adding more adapters.

1 Like

Have you seen #software:redaktor-me ?

In case it’s helpful – so the current state of the art on a general purpose AP server (in JS) would probably be GitHub - immers-space/activitypub-express: Modular ActivityPub implementation as Express JS middleware to easily add decentralization and federation to Node apps .
The other thing to look at, if you’d like, would be the CalcKey implementation (a fork of Misskey), written in TypeScript – thatonecalculator/calckey: A greatly enhanced fork of Misskey with better UI/UX, security, features, and more! - calckey - Codeberg.org

1 Like

I hope you are successful! I’m also building a fediverse server, but in Clojure, and not generic. ActivityPub will definitely be coming sooner or later. :slight_smile:

I had a very similar idea, but with some twists:

  • Focus on a single user
  • Also compatible with some serverless providers (Netlify, Vercel, etc)
  • Expose a Mastodon-compatible API so I can use it with an app
  • Provide a basic read-only public front end (with the idea to be user-replaced)

I just began looking at it.

2 Likes