ActivityPub

287 readers
1 users here now

Icon base by Lorc under CC BY 3.0 with modifications to add a gradient

founded 2 years ago
MODERATORS
1
 
 

Hey everyone! I'm excited to introduce BotKit, a new framework specifically designed for creating standalone ActivityPub bots.

What makes BotKit different from typical Mastodon bot approaches is that it creates fully independent ActivityPub servers. This means your bots aren't constrained by platform-specific limitations like character limits or attachment restrictions. Each bot is a complete ActivityPub server in itself.

The API is designed to be extremely straightforward. You can create a complete bot in a single TypeScript file, with intuitive event handlers for follows, mentions, replies, and more. Here's a quick example:

const bot = createBot<void>({
  username: "mybot",
  name: "My Bot",
  summary: text`A bot powered by BotKit.`,
  kv: new MemoryKvStore(),
  queue: new InProcessMessageQueue(),
});

bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

BotKit currently supports Deno, with plans to add Node.js and Bun support in future releases. It leverages all the federation capabilities of Fedify but abstracts away the complexity, letting you focus purely on your bot's behavior.

The framework is still in early development, but we'd love to hear your thoughts and feedback. Feel free to try it out and let us know what kind of bots you build with it!

2
 
 

The version 1.3.0 of Fedify, an ActivityPub server framework, released! The key changes include:

For details, see the full changelog as well!

Fedify 1.3.0 is available at JSR and npm.

3
 
 

cross-posted from: https://lemmy.ml/post/21657544

Finally, Hollo 0.1.0 released! Hollo is a single-user federated microblogging software which is ActivityPub-enabled and powered by Fedify.

Hollo has the most of features that Mastodon has except for moderation tools, and also include:

  • CommonMark (a.k.a. Markdown) and up to 4,096 characters per post
  • Misskey-style quotes (compatible with Misskey, Akkoma, Fedibird, etc)
  • Misskey-style emoji reactions (both Unicode emojis and custom emojis are supported; compatible with Misskey, Akkoma, kmyblue, etc)
  • Generally much relaxed limitations (more poll options, more attachments, and so on)
  • … and many more!

If you're interested in Hollo, please give it a try! There are several ways to install it: using Railway, using Docker (and Docker Compose), or manually.

If you're already using Hollo, please upgrade it to v0.1.0:

4
5
6
7
 
 

it's about activitypub protocol itself calling our real host public key to validate http signature . Is that commonly known fact and can the fediverse be improved here?

8
 
 

Maybe I can ask this question here?

Is there any good friendica server which is well maintained and do not block lemmy.world and lemmy.ml?

9
 
 

When making an activitypub request from either a lemmy or mastodon server (I haven't tried others)

(eg curl https://programming.dev/c/activitypub -A 'WhizzleGig/0.1;' -H 'Accept: application/activity+json'),

for their context they include...

"@context": [                                                                                                                                                                                                                                                                                                                                                                                                                          
    "https://www.w3.org/ns/activitystreams",                                                                                                                                                                                                                                                                                                                                                                                             
    "https://w3id.org/security/v1",                                                                                                                                                                                                                                                                                                                                                                                                      
    {

(note: https://w3id.org/security/v1), and for the security portion of the record, they return something like ...

"publicKey": {                                                                                                                                                                                                    
    "id": "https://programming.dev/c/activitypub#main-key",                                                                                                                                                         
    "owner": "https://programming.dev/c/activitypub",                                                                                                                                                               
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nBlahBlahBlah\n-----END PUBLIC KEY-----\n"                                                                                                                                                           
  },

(note how publicKeyPem and owner are both nested inside publicKey).

However, upon reviewing https://w3id.org/security/v1 and https://w3id.org/security, my interpretation is that those should not be nested inside publicKey but should be at the same level. Am I misreading something?