We're pleased to announce the release of BotKit 0.2.0! For those new to our project, BotKit is a TypeScript framework for creating standalone ActivityPub bots that can interact with Mastodon, Missk...



A software engineer from Seoul. An advocate of F/OSS, fediverse, and cypherpunk. Hack into East Asian languages.

BotKit 0.2.0 released

BotKit 0.2.0 released
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, BotKit is a TypeScript framework for creating standalone ActivityPub bots that can interact with Mastodon, Missk...

BotKit 0.2.0 released
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, BotKit is a TypeScript framework for creating standalone ActivityPub bots that can interact with Mastodon, Missk...

BotKit 0.2.0 released
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, BotKit is a TypeScript framework for creating standalone ActivityPub bots that can interact with Mastodon, Missk...

So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, ...

So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, ...

So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, ...

BotKit by Fedify: A simple ActivityPub bot framework
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:
typescript
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 a

BotKit by Fedify: A simple ActivityPub bot framework
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:
typescript
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 a

BotKit by Fedify: A simple ActivityPub bot framework
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:
typescript
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 a

BotKit by Fedify: A simple ActivityPub bot framework
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:
typescript
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 a

Fedify 1.3.0 released
The version 1.3.0 of #Fedify, an #ActivityPub server framework, released! The key changes include: - [Instrumented spans for OpenTelemetry] are added. In most cases, it's automatically enabled if your application configured [OpenTelemetry SDK]. - Since Fedify 1.3.0, you can configure different [`Me...
The version 1.3.0 of Fedify, an ActivityPub server framework, released! The key changes include:
- [Instrumented spans for OpenTelemetry] are added. In most cases, it's automatically enabled if your application configured [OpenTelemetry SDK].
- Since Fedify 1.3.0, you can configure different [
MessageQueue
]s for incoming and outgoing activities. - [Fedify now allows you to manually route an
Activity
to the corresponding inbox listener.][1] It is useful for invoking an inbox listener for anActivity
enclosed by anotherActivity
. Context.sendActivity()
andInboxContext.forwardActivity()
methods now reject when they fail to enqueue the task.- Thanks to @[email protected], [@fedify/fedify/x/sveltekit] module is added for integrating with [SvelteKit] hook.
- Fedify now makes HTTP requests with the proper
User-Agent
header, e.g.,User-Agent: Fedify/1.3.0 (Deno/2.1.2)
.
For details, see the [full changelog] as well!
Fedify 1.3.0 is ava

Fedify 1.3.0 released
The version 1.3.0 of #Fedify, an #ActivityPub server framework, released! The key changes include: - [Instrumented spans for OpenTelemetry] are added. In most cases, it's automatically enabled if your application configured [OpenTelemetry SDK]. - Since Fedify 1.3.0, you can configure different [`Me...
The version 1.3.0 of Fedify, an ActivityPub server framework, released! The key changes include:
- [Instrumented spans for OpenTelemetry] are added. In most cases, it's automatically enabled if your application configured [OpenTelemetry SDK].
- Since Fedify 1.3.0, you can configure different [
MessageQueue
]s for incoming and outgoing activities. - [Fedify now allows you to manually route an
Activity
to the corresponding inbox listener.][1] It is useful for invoking an inbox listener for anActivity
enclosed by anotherActivity
. Context.sendActivity()
andInboxContext.forwardActivity()
methods now reject when they fail to enqueue the task.- Thanks to @[email protected], [@fedify/fedify/x/sveltekit] module is added for integrating with [SvelteKit] hook.
- Fedify now makes HTTP requests with the proper
User-Agent
header, e.g.,User-Agent: Fedify/1.3.0 (Deno/2.1.2)
.
For details, see the [full changelog] as well!
Fedify 1.3.0 is ava

Fedify 1.3.0 released

The version 1.3.0 of #Fedify, an #ActivityPub server framework, released! The key changes include: - [Instrumented spans for OpenTelemetry] are added. In most cases, it's automatically enabled if your application configured [OpenTelemetry SDK]. - Since Fedify 1.3.0, you can configure different [`Me...

The version 1.3.0 of Fedify, an ActivityPub server framework, released! The key changes include:
- [Instrumented spans for OpenTelemetry] are added. In most cases, it's automatically enabled if your application configured [OpenTelemetry SDK].
- Since Fedify 1.3.0, you can configure different [
MessageQueue
]s for incoming and outgoing activities. - [Fedify now allows you to manually route an
Activity
to the corresponding inbox listener.][1] It is useful for invoking an inbox listener for anActivity
enclosed by anotherActivity
. Context.sendActivity()
andInboxContext.forwardActivity()
methods now reject when they fail to enqueue the task.- Thanks to @[email protected], [@fedify/fedify/x/sveltekit] module is added for integrating with [SvelteKit] hook.
- Fedify now makes HTTP requests with the proper
User-Agent
header, e.g.,User-Agent: Fedify/1.3.0 (Deno/2.1.2)
.
For details, see the [full changelog] as well!
Fedify 1.3.0 is ava

Fedify 1.3.0 released
The version 1.3.0 of #Fedify, an #ActivityPub server framework, released! The key changes include: - [Instrumented spans for OpenTelemetry] are added. In most cases, it's automatically enabled if your application configured [OpenTelemetry SDK]. - Since Fedify 1.3.0, you can configure different [`Me...
The version 1.3.0 of Fedify, an ActivityPub server framework, released! The key changes include:
- [Instrumented spans for OpenTelemetry] are added. In most cases, it's automatically enabled if your application configured [OpenTelemetry SDK].
- Since Fedify 1.3.0, you can configure different [
MessageQueue
]s for incoming and outgoing activities. - [Fedify now allows you to manually route an
Activity
to the corresponding inbox listener.][1] It is useful for invoking an inbox listener for anActivity
enclosed by anotherActivity
. Context.sendActivity()
andInboxContext.forwardActivity()
methods now reject when they fail to enqueue the task.- Thanks to @[email protected], [@fedify/fedify/x/sveltekit] module is added for integrating with [SvelteKit] hook.
- Fedify now makes HTTP requests with the proper
User-Agent
header, e.g.,User-Agent: Fedify/1.3.0 (Deno/2.1.2)
.
For details, see the [full changelog] as well!
Fedify 1.3.0 is ava

Hollo 0.1.0 released
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 ...
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][1]!
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:
- To Railway users: [Just redeploy the Hollo service][2]!
- To Docker us

Hollo 0.1.0 released
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 ...
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][1]!
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:
- To Railway users: [Just redeploy the Hollo service][2]!
- To Docker us

Hollo 0.1.0 released
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 ...
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][1]!
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:
- To Railway users: [Just redeploy the Hollo service][2]!
- To Docker users: Switch your Hollo image to [
ghcr.io/dahlia/hollo:0.1.0
] or simply [latest
]!

Fedify finally reached 1.0.0, its first stable release
Fedify, an ActivityPub framework, has finally released its first stable version, 1.0.0! What is Fedify? Fedify is a TypeScript library that makes it easy to create federated server applications bas...

Fedify finally reached 1.0.0, its first stable release
Fedify, an ActivityPub framework, has finally released its first stable version, 1.0.0! What is Fedify? Fedify is a TypeScript library that makes it easy to create federated server applications bas...

Thank you for your advice. As you mentioned, Fedify currently has actor URIs consisting of handles. This limitation is due to the early design of Fedify and will be fixed before we release v1.0!

LogTape author here.
LogTape also supports structured logging. Structured values are kept in LogRecord.properties
. Please see how to use the JSON formatter.