#quote

Metin Seven 🎨's avatar
Metin Seven 🎨

@metin@graphics.social

"𝚃𝚑𝚎 𝚙𝚛𝚒𝚌𝚎 𝚘𝚏 𝚊𝚗𝚢𝚝𝚑𝚒𝚗𝚐 𝚒𝚜 𝚝𝚑𝚎 𝚊𝚖𝚘𝚞𝚗𝚝 𝚘𝚏 𝚕𝚒𝚏𝚎 𝚢𝚘𝚞 𝚎𝚡𝚌𝚑𝚊𝚗𝚐𝚎 𝚏𝚘𝚛 𝚒𝚝."

─ 𝘏𝘦𝘯𝘳𝘺 𝘋𝘢𝘷𝘪𝘥 𝘛𝘩𝘰𝘳𝘦𝘢𝘶

Metin Seven 🎨's avatar
Metin Seven 🎨

@metin@graphics.social

"𝚃𝚑𝚎 𝚙𝚛𝚒𝚌𝚎 𝚘𝚏 𝚊𝚗𝚢𝚝𝚑𝚒𝚗𝚐 𝚒𝚜 𝚝𝚑𝚎 𝚊𝚖𝚘𝚞𝚗𝚝 𝚘𝚏 𝚕𝚒𝚏𝚎 𝚢𝚘𝚞 𝚎𝚡𝚌𝚑𝚊𝚗𝚐𝚎 𝚏𝚘𝚛 𝚒𝚝."

─ 𝘏𝘦𝘯𝘳𝘺 𝘋𝘢𝘷𝘪𝘥 𝘛𝘩𝘰𝘳𝘦𝘢𝘶

Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

Please share if you believe in the power of to reveal the heart.

"Music expresses that which cannot be said and on which it is impossible to be silent." ~ Victor Hugo
ALT text details"Music expresses that which cannot be said and on which it is impossible to be silent." ~ Victor Hugo
Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

Please share if you believe in the power of to reveal the heart.

"Music expresses that which cannot be said and on which it is impossible to be silent." ~ Victor Hugo
ALT text details"Music expresses that which cannot be said and on which it is impossible to be silent." ~ Victor Hugo
BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

Jupiter Rowland's avatar
Jupiter Rowland

@jupiter_rowland@hub.netzgemeinde.eu · Reply to BotKit by Fedify :botkit:'s post

@BotKit by Fedify :botkit: Be aware that quotes and quote-posts are two different things, and both exist in the Fediverse. At least Friendica, Hubzilla, (streams) and Forte can generate both.

This is a quote, like in every bulletin-board forum out there:

Coming soon in #BotKit 0.2.0: Native #quote post support!


Or this, but it has to be coded manually into the comment's source code:

BotKit by Fedify :botkit: wrote:
Coming soon in #BotKit 0.2.0: Native #quote post support!


This is a quote-post a.k.a. shared post a.k.a. quoted share:

BotKit by Fedify :botkit:BotKit by Fedify :botkit: wrote the following post Mon, 21 Apr 2025 05:51:28 +0200
Coming soon in #BotKit 0.2.0: Native #quote post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:Here's a quick example of how you can use the quote detection:
bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:
// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different #ActivityPub implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:
deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc
We're looking forward to seeing how you use these quoting capabilities in your bots!

#fedidev


Also, Friendica, Hubzilla, (streams) and Forte handle quote-posts a lot differently from Misskey and the Forkeys.

Misskey and the Forkeys do quote-posts like so:

RE: https://hollo.social/@botkit/01965678-eb56-7003-9c91-07e4418bf63a

At least on Hubzilla, (streams) and Forte, a quote-post starts out like this:

[share⁠=74153074][/share]

Upon sending the post, this piece of BBcode is changed into a full, dumb copy of the original post, led in by a line that says who posted this first, complete with a link to the profile, and that also links to the original. The original poster is being notified about this (unless they chose not to), but if the original post is edited, the edit is not forwarded to quote-posted copies.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Misskey #Forkey #Forkeys #Friendica #Hubzilla #Streams #(streams) #Forte #Quotes #QuotePost #QuotePosts #QuoteTweet #QuoteTweets #QuoteToot #QuoteToots #QuoteBoost #QuoteBoosts
BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

The State is said by some to be a "necessary evil"; it must be made unnecessary.
-- Benjamin Tucker

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

The State is said by some to be a "necessary evil"; it must be made unnecessary.
-- Benjamin Tucker

Metin Seven 🎨's avatar
Metin Seven 🎨

@metin@graphics.social

"𝚆𝚑𝚎𝚗 𝚙𝚕𝚞𝚗𝚍𝚎𝚛 𝚋𝚎𝚌𝚘𝚖𝚎𝚜 𝚊 𝚠𝚊𝚢 𝚘𝚏 𝚕𝚒𝚏𝚎 𝚏𝚘𝚛 𝚊 𝚐𝚛𝚘𝚞𝚙 𝚘𝚏 𝚖𝚎𝚗 𝚒𝚗 𝚊 𝚜𝚘𝚌𝚒𝚎𝚝𝚢, 𝚘𝚟𝚎𝚛 𝚝𝚑𝚎 𝚌𝚘𝚞𝚛𝚜𝚎 𝚘𝚏 𝚝𝚒𝚖𝚎 𝚝𝚑𝚎𝚢 𝚌𝚛𝚎𝚊𝚝𝚎 𝚏𝚘𝚛 𝚝𝚑𝚎𝚖𝚜𝚎𝚕𝚟𝚎𝚜 𝚊 𝚕𝚎𝚐𝚊𝚕 𝚜𝚢𝚜𝚝𝚎𝚖 𝚝𝚑𝚊𝚝 𝚊𝚞𝚝𝚑𝚘𝚛𝚒𝚣𝚎𝚜 𝚒𝚝 𝚊𝚗𝚍 𝚊 𝚖𝚘𝚛𝚊𝚕 𝚌𝚘𝚍𝚎 𝚝𝚑𝚊𝚝 𝚐𝚕𝚘𝚛𝚒𝚏𝚒𝚎𝚜 𝚒𝚝."

─ 𝘍𝘳𝘦𝘥𝘦𝘳𝘪𝘤 𝘉𝘢𝘴𝘵𝘪𝘢𝘵 (1801 – 1850)

Metin Seven 🎨's avatar
Metin Seven 🎨

@metin@graphics.social

"𝚆𝚑𝚎𝚗 𝚙𝚕𝚞𝚗𝚍𝚎𝚛 𝚋𝚎𝚌𝚘𝚖𝚎𝚜 𝚊 𝚠𝚊𝚢 𝚘𝚏 𝚕𝚒𝚏𝚎 𝚏𝚘𝚛 𝚊 𝚐𝚛𝚘𝚞𝚙 𝚘𝚏 𝚖𝚎𝚗 𝚒𝚗 𝚊 𝚜𝚘𝚌𝚒𝚎𝚝𝚢, 𝚘𝚟𝚎𝚛 𝚝𝚑𝚎 𝚌𝚘𝚞𝚛𝚜𝚎 𝚘𝚏 𝚝𝚒𝚖𝚎 𝚝𝚑𝚎𝚢 𝚌𝚛𝚎𝚊𝚝𝚎 𝚏𝚘𝚛 𝚝𝚑𝚎𝚖𝚜𝚎𝚕𝚟𝚎𝚜 𝚊 𝚕𝚎𝚐𝚊𝚕 𝚜𝚢𝚜𝚝𝚎𝚖 𝚝𝚑𝚊𝚝 𝚊𝚞𝚝𝚑𝚘𝚛𝚒𝚣𝚎𝚜 𝚒𝚝 𝚊𝚗𝚍 𝚊 𝚖𝚘𝚛𝚊𝚕 𝚌𝚘𝚍𝚎 𝚝𝚑𝚊𝚝 𝚐𝚕𝚘𝚛𝚒𝚏𝚒𝚎𝚜 𝚒𝚝."

─ 𝘍𝘳𝘦𝘥𝘦𝘳𝘪𝘤 𝘉𝘢𝘴𝘵𝘪𝘢𝘵 (1801 – 1850)

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

I love when programming handbooks start with quotes like this:

"Creativity is more than just being different...
Anybody can play weird — that's easy.
What's hard is to be as simple as Bach.
Making the simple complicated is commonplace...
Making the complicated simple
— awesomely simple;
That"s creativity."

— Charles Mingus, jazz musician (1922-1979)

(Source: The MacFORTH handbook, 1984 — bitsavers.org/pdf/creativeSolu)

The Lifeboat Academy's avatar
The Lifeboat Academy

@lifeboatacademy@mastodon.social

A social post from @lifeboatacademy which says: Reconciliation is realized when two people come together and understand that what they share unites them and that what is different about them needs to be respected.
— Wab Kinew
ALT text detailsA social post from @lifeboatacademy which says: Reconciliation is realized when two people come together and understand that what they share unites them and that what is different about them needs to be respected. — Wab Kinew
The Lifeboat Academy's avatar
The Lifeboat Academy

@lifeboatacademy@mastodon.social

A social post from @lifeboatacademy which says: Reconciliation is realized when two people come together and understand that what they share unites them and that what is different about them needs to be respected.
— Wab Kinew
ALT text detailsA social post from @lifeboatacademy which says: Reconciliation is realized when two people come together and understand that what they share unites them and that what is different about them needs to be respected. — Wab Kinew
Tim Mocarski's avatar
Tim Mocarski

@tmocarski@masto.ai

"Life is made up of constant calls to action."

Learned Hand

Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

In a world beset by unfathomable cruelty, we need more soft hearts filled with the to care for all humankind.

"Having a soft heart in a cruel world is courage, not weakness." ~ Katherine Henson
ALT text details"Having a soft heart in a cruel world is courage, not weakness." ~ Katherine Henson
Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

In a world beset by unfathomable cruelty, we need more soft hearts filled with the to care for all humankind.

"Having a soft heart in a cruel world is courage, not weakness." ~ Katherine Henson
ALT text details"Having a soft heart in a cruel world is courage, not weakness." ~ Katherine Henson
Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

The map is not the terrain.

With all the new updates this week, a reminder that LLMs are an excellent illustration of the attempted shifts to redefine what we usually call art (and knowledge/skill) to be almost entirely separate from its creation process and from its original meaning, context, environment and situation which lead to its creation. Being trained on digital reproductions of artworks and some select metadata, these models are fundamentally constrained to identify patterns for regenerating simulacra, their usage purely symbolic — a user-driven form of meme-style cultural sampling, pure semiotic “affiliation by association”, a kitschy clip-art-esque usage of looks, styles and aesthetics, entirely decoupled and devoid of history, meaning, context, incentives and other factors of (art) making/learning. A total lack of embodiment. Make this look like that. Baby portraits in Rembrandt's style, Ghibli used for PFPs or to create Neo-Nazi propaganda. Who cares?!

The great homogenizer.

Even for me as an artist primarily using non-LLM-based generative techniques for 25+ years, training a model on a corpus of my own works and then having it churn out new derivations, other than a case study, it would completely counter any of the creative & systemic investigations I'm after with most of my works. LLMs turn everything into a sampling and prompting workflow. Replicating a (non-existent) house style is the very thing I'm least interested in!

Triteness re-invented.

Removed from any original intentions of the consumed works enslaved in their training corpus, ignorant to the emotional states of their creators, free from the pains and joys and myriads of micro-decisions of art making, of the social context and the limitations (physical, material, skill) which led people to search for expressing their inner thoughts & feelings via artistic means... AI enthusiasts celebrate this new contextual freedom as creative breakthrough, but it’s always the same underlying sentiment behind: “The final original idea was that everything had already been done before.”

The Exascale mindset.

From the ravenous assembling of training datasets by ferociously crawling & harvesting absolutely anything which can be possibly found and accessed online, entirely disregarding author & privacy rights and social/technical contracts of acceptable use, the energy consumption for model training at a scale competing with developed nation states, to the abrasive social and political engineering and the artificial inflation of framing this tech as beneficial and inevitable to our societies. Most of the news & tech media, always hungry for clickbait, YouTubers able to create decades’ worth of new content — everyone happily lapping up any press-releases and amplifying the hype. Are there any responsible adults left where it currently matters most?

This ignorance-by-design isn’t about LLMs or their impact on art: The wider discussion is about how a tiny group of people with access to quasi-unlimited resources, capital and politicians is attempting to redefine what human culture is and to treat it (us) like just another large-scale mining operation, converting millennia of lived human experience, learning & suffering into monopolized resources for total extraction/monetization, filtered, curated, controlled and eventually sold back as de facto truth, with original provenance and meaning annihilated or vastly distorted to fit new purposes and shifting priorities/politics...

Don’t let the map become the terrain!

---

Two quotes by Friedrich A. Kittler as related food for thought:

“What remains of people is what media can store and communicate.”

“Understanding media is an impossibility, because conversely, the prevailing communication techniques remote-control all understanding and create all of its illusions.”

Félicien Breton 🍉 🔻 🌱's avatar
Félicien Breton 🍉 🔻 🌱

@breton@climatejustice.social · Reply to Félicien Breton 🍉 🔻 🌱's post

"Let’s take that number-one narrative, which is I was taught to treat everyone the same. You know, actually no one was - or could be taught to treat everyone the same. We can’t do it. We don’t do it."

"A white progressive generally believes niceness is all that it takes. As long as I’m nice and friendly, I’m finished. And niceness not only is not courageous. But niceness is not going to get racism on the table."

NPR’s Jennifer Ludden talks to author Robin DiAngelo about her book, "White Fragility: Why It’s So Hard For White People To Talk About Racism": npr.org/2018/08/18/639822895/r

Tim Mocarski's avatar
Tim Mocarski

@tmocarski@masto.ai

The world's always a better place if people are filled with understanding."

Richard Dawkins

SolarB :tcr:'s avatar
SolarB :tcr:

@solarbranka@toot.community


A mam with apron touches her son's face. The kid is taller than her, wears a Mohawk, an anarchy flag and has a red scarf across his mouth.
"Don't forget to eat your lunch and make some trouble".
ALT text detailsA mam with apron touches her son's face. The kid is taller than her, wears a Mohawk, an anarchy flag and has a red scarf across his mouth. "Don't forget to eat your lunch and make some trouble".
Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

Just made my day: "I somehow made it to March 2025 before being aware of thi.ng/ - an incredible mountain of code created primarily by a prolific genius, full of ideas that are like catnip to me."

😂

kylecordes.com/2025/typescript

(Also, to clarify, even though thi.ng/hiccup and a small selection of other thi.ng libs started out porting concepts widely used in Clojure (the language I spent 7 years with previously), in many cases the scope, features, usability & potential use cases have been far extended far beyond their "originals" and it sometimes saddens me that these are often just plainly ignored or mis-labeled/described...)

ghostdancer's avatar
ghostdancer

@ghostdancer@mastodon.sdf.org

good and strong dear fedizens
Being a Thursday I think I should share a Hitchhiker's Guide to the Galaxy .
"The regular early morning yell of horror was the sound of Arthur Dent waking up and suddenly remembering where he was."

Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

As carers, we don't need anyone imposing their judgment on us. We welcome those who offer and tangible support.

We need to dispel the myth that empathy is “walking in someone else’s shoes.” Rather than walking in your shoes, | need to learn how to listen to the story you tell about what it’s like in your shoes & believe you even when it doesn’t match my experiences. 

~ Brene Brown
ALT text detailsWe need to dispel the myth that empathy is “walking in someone else’s shoes.” Rather than walking in your shoes, | need to learn how to listen to the story you tell about what it’s like in your shoes & believe you even when it doesn’t match my experiences. ~ Brene Brown
Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

As carers, we don't need anyone imposing their judgment on us. We welcome those who offer and tangible support.

We need to dispel the myth that empathy is “walking in someone else’s shoes.” Rather than walking in your shoes, | need to learn how to listen to the story you tell about what it’s like in your shoes & believe you even when it doesn’t match my experiences. 

~ Brene Brown
ALT text detailsWe need to dispel the myth that empathy is “walking in someone else’s shoes.” Rather than walking in your shoes, | need to learn how to listen to the story you tell about what it’s like in your shoes & believe you even when it doesn’t match my experiences. ~ Brene Brown
Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

England is a prison. The variety of subtleties in the laws preserved by the sword are bolts, bars, and doors of the prison; the lawyers are the jailors; and poor men are the prisoners.
-- Gerrard Winstanley

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

England is a prison. The variety of subtleties in the laws preserved by the sword are bolts, bars, and doors of the prison; the lawyers are the jailors; and poor men are the prisoners.
-- Gerrard Winstanley

Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"[Mathematical induction] is a tool that allows us to move from the finite to the infinite. This tool is always useful because it allows us to skip as many steps as we want, sparing us long, tedious, and monotonous verifications that would quickly become impractical. However, it becomes indispensable as soon as we aim at the general theorem, whose analytical verification would bring us closer and closer [...]" – Henri Poincaré (1854-1912)

Photographic portrait of Henri Poincaré, and a quote : "[Mathematical induction] is a tool that allows us to move from the finite to the infinite. This tool is always useful because it allows us to skip as many steps as we want, sparing us long, tedious, and monotonous verifications that would quickly become impractical. However, it becomes indispensable as soon as we aim at the general theorem, whose analytical verification would bring us closer and closer without ever allowing us to reach it."
ALT text detailsPhotographic portrait of Henri Poincaré, and a quote : "[Mathematical induction] is a tool that allows us to move from the finite to the infinite. This tool is always useful because it allows us to skip as many steps as we want, sparing us long, tedious, and monotonous verifications that would quickly become impractical. However, it becomes indispensable as soon as we aim at the general theorem, whose analytical verification would bring us closer and closer without ever allowing us to reach it."
Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"[Mathematical induction] is a tool that allows us to move from the finite to the infinite. This tool is always useful because it allows us to skip as many steps as we want, sparing us long, tedious, and monotonous verifications that would quickly become impractical. However, it becomes indispensable as soon as we aim at the general theorem, whose analytical verification would bring us closer and closer [...]" – Henri Poincaré (1854-1912)

Photographic portrait of Henri Poincaré, and a quote : "[Mathematical induction] is a tool that allows us to move from the finite to the infinite. This tool is always useful because it allows us to skip as many steps as we want, sparing us long, tedious, and monotonous verifications that would quickly become impractical. However, it becomes indispensable as soon as we aim at the general theorem, whose analytical verification would bring us closer and closer without ever allowing us to reach it."
ALT text detailsPhotographic portrait of Henri Poincaré, and a quote : "[Mathematical induction] is a tool that allows us to move from the finite to the infinite. This tool is always useful because it allows us to skip as many steps as we want, sparing us long, tedious, and monotonous verifications that would quickly become impractical. However, it becomes indispensable as soon as we aim at the general theorem, whose analytical verification would bring us closer and closer without ever allowing us to reach it."
Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"The characteristic excellence of mathematics is only to be found where the reasoning is rigidly logical : the rules of logic are to mathematics what those of structure are to architecture." – Bertrand Russell (1872-1970)

Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"Proof assistants are in the core of my approach to univalent foundations. These foundations are only possible because there are proof assistants, because they are much more complex without using computers to manipulate the formulas that are needed. Of course my original goal was not to create new foundations for mathematics, I hadn't thought about it at all [...]" – Vladimir Voevodsky (1966-2017)

Photographic portrait of Vladimir Voevodsky, and a quote : "Proof assistants are in the core of my approach to univalent foundations. These foundations are only possible because there are proof assistants, because they are much more complex without using computers to manipulate the formulas that are needed. Of course my original goal was not to create new foundations for mathematics, I hadn't thought about it at all. My original goal was and remains to contribute to the creation of a usable proof assistant."
ALT text detailsPhotographic portrait of Vladimir Voevodsky, and a quote : "Proof assistants are in the core of my approach to univalent foundations. These foundations are only possible because there are proof assistants, because they are much more complex without using computers to manipulate the formulas that are needed. Of course my original goal was not to create new foundations for mathematics, I hadn't thought about it at all. My original goal was and remains to contribute to the creation of a usable proof assistant."
Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"Proof assistants are in the core of my approach to univalent foundations. These foundations are only possible because there are proof assistants, because they are much more complex without using computers to manipulate the formulas that are needed. Of course my original goal was not to create new foundations for mathematics, I hadn't thought about it at all [...]" – Vladimir Voevodsky (1966-2017)

Photographic portrait of Vladimir Voevodsky, and a quote : "Proof assistants are in the core of my approach to univalent foundations. These foundations are only possible because there are proof assistants, because they are much more complex without using computers to manipulate the formulas that are needed. Of course my original goal was not to create new foundations for mathematics, I hadn't thought about it at all. My original goal was and remains to contribute to the creation of a usable proof assistant."
ALT text detailsPhotographic portrait of Vladimir Voevodsky, and a quote : "Proof assistants are in the core of my approach to univalent foundations. These foundations are only possible because there are proof assistants, because they are much more complex without using computers to manipulate the formulas that are needed. Of course my original goal was not to create new foundations for mathematics, I hadn't thought about it at all. My original goal was and remains to contribute to the creation of a usable proof assistant."
Tim Mocarski's avatar
Tim Mocarski

@tmocarski@masto.ai

"Facts do not cease to exist because they are ignored."

Aldous Huxley

Stefan Bohacek's avatar
Stefan Bohacek

@stefan@stefanbohacek.online

“I cannot do all the good that the world needs. But the world needs all the good that I can do.”

― Jana Stanfield

Stefan Bohacek's avatar
Stefan Bohacek

@stefan@stefanbohacek.online

“I cannot do all the good that the world needs. But the world needs all the good that I can do.”

― Jana Stanfield

Tim Mocarski's avatar
Tim Mocarski

@tmocarski@masto.ai

"One thorn of experience is worth a whole wilderness of warning."

James Russell Lowell

Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"The characteristic excellence of mathematics is only to be found where the reasoning is rigidly logical : the rules of logic are to mathematics what those of structure are to architecture." – Bertrand Russell (1872-1970)

Nick East (Indie Writer)'s avatar
Nick East (Indie Writer)

@NickEast@geekdom.social

“There is some good in this world, and it’s worth fighting for.”
-Samwise Gamgee (Movie version)

@libraries @librarians @bookbubble @bookstodon




Picture of a cubical that's half bussiness, half nursery.
Caption: My library installed a cubical for adults to study in if they can't leave their kids at home.
ALT text detailsPicture of a cubical that's half bussiness, half nursery. Caption: My library installed a cubical for adults to study in if they can't leave their kids at home.
Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

Contemporary industrial society is now characterised more than ever by the need for stupefying work where it is no longer a real necessity.
-- Herbert Marcuse

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

Contemporary industrial society is now characterised more than ever by the need for stupefying work where it is no longer a real necessity.
-- Herbert Marcuse

Nick East (Indie Writer)'s avatar
Nick East (Indie Writer)

@NickEast@geekdom.social

“There is some good in this world, and it’s worth fighting for.”
-Samwise Gamgee (Movie version)

@libraries @librarians @bookbubble @bookstodon




Picture of a cubical that's half bussiness, half nursery.
Caption: My library installed a cubical for adults to study in if they can't leave their kids at home.
ALT text detailsPicture of a cubical that's half bussiness, half nursery. Caption: My library installed a cubical for adults to study in if they can't leave their kids at home.
Nick East (Indie Writer)'s avatar
Nick East (Indie Writer)

@NickEast@geekdom.social

“There is some good in this world, and it’s worth fighting for.”
-Samwise Gamgee (Movie version)

@libraries @librarians @bookbubble @bookstodon




Picture of a cubical that's half bussiness, half nursery.
Caption: My library installed a cubical for adults to study in if they can't leave their kids at home.
ALT text detailsPicture of a cubical that's half bussiness, half nursery. Caption: My library installed a cubical for adults to study in if they can't leave their kids at home.
Nando161's avatar
Nando161

@nando161@partyon.xyz

Tim Mocarski's avatar
Tim Mocarski

@tmocarski@masto.ai

"Power concedes nothing without a demand. It never did and it never will."

Frederick Douglass

Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

may be the most important element of .

"As we let our own light shine, we unconsciously give other people permission to do the same." ~ Nelson Mandela
ALT text details"As we let our own light shine, we unconsciously give other people permission to do the same." ~ Nelson Mandela
Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"The aim of this work is to endow its author with the degree of Doctor of Mathematical Sciences and the set H(X) of compact analytic subspaces of X with the structure of an analytic space." – Adrien Douady (1935-2006)

Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"The aim of this work is to endow its author with the degree of Doctor of Mathematical Sciences and the set H(X) of compact analytic subspaces of X with the structure of an analytic space." – Adrien Douady (1935-2006)

Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

In all the years I cared for my brilliant, beloved dad as took him away piece by piece, I experienced enormous sadness but was spared anger because I had the loving support of family and friends. I was fortunate.

(image: @tinybuddha)

"Someone said anger is sadness that has nowhere to go for a very long time, and I'll never forget it."
ALT text details"Someone said anger is sadness that has nowhere to go for a very long time, and I'll never forget it."
Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

In all the years I cared for my brilliant, beloved dad as took him away piece by piece, I experienced enormous sadness but was spared anger because I had the loving support of family and friends. I was fortunate.

(image: @tinybuddha)

"Someone said anger is sadness that has nowhere to go for a very long time, and I'll never forget it."
ALT text details"Someone said anger is sadness that has nowhere to go for a very long time, and I'll never forget it."
Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

The law is an adroit mixture of customs that are beneficial to society, and could be followed even if no law existed, and others that are of advantage to a ruling minority, but harmful to the masses of men, and can be enforced on them only by terror.
-- Peter Kropotkin

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

The law is an adroit mixture of customs that are beneficial to society, and could be followed even if no law existed, and others that are of advantage to a ruling minority, but harmful to the masses of men, and can be enforced on them only by terror.
-- Peter Kropotkin

Odin Halvorson's avatar
Odin Halvorson

@indubitablyodin@sfba.social

"IF THE SITUATION WAS HOPELESS THEIR PROPAGANDA WOULD BE UNNECESSARY".

The image depicts a faded and distorted VHS tape screen, overlaid with a plant growing in the center and text in the foreground: "IF THE SITUATION WAS HOPELESS THEIR PROPAGANDA WOULD BE UNNECESSARY".
ALT text detailsThe image depicts a faded and distorted VHS tape screen, overlaid with a plant growing in the center and text in the foreground: "IF THE SITUATION WAS HOPELESS THEIR PROPAGANDA WOULD BE UNNECESSARY".
Odin Halvorson's avatar
Odin Halvorson

@indubitablyodin@sfba.social

"IF THE SITUATION WAS HOPELESS THEIR PROPAGANDA WOULD BE UNNECESSARY".

The image depicts a faded and distorted VHS tape screen, overlaid with a plant growing in the center and text in the foreground: "IF THE SITUATION WAS HOPELESS THEIR PROPAGANDA WOULD BE UNNECESSARY".
ALT text detailsThe image depicts a faded and distorted VHS tape screen, overlaid with a plant growing in the center and text in the foreground: "IF THE SITUATION WAS HOPELESS THEIR PROPAGANDA WOULD BE UNNECESSARY".
Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

The sworn enemy of your emancipation is the state: it is best embodied by the union of these five stereotypes: the property-owner, the soldier, the judge, the priest and the one who serves them all, the intellectual.
-- Nestor Makhno

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

The sworn enemy of your emancipation is the state: it is best embodied by the union of these five stereotypes: the property-owner, the soldier, the judge, the priest and the one who serves them all, the intellectual.
-- Nestor Makhno

Keith D Johnson for Kamala's avatar
Keith D Johnson for Kamala

@KeithDJohnson@sfba.social

Quote from Catch 22 by Joseph Heller: It was miraculous. It was almost no trick at all, he saw, to turn vice into virtue & slander into truth, impotence into abstinence, arrogance into humility, plunder into philanthropy, thievery into honor, blasphemy into wisdom, brutality into wisdom, & sadism into justice. Anybody could do it; it required no brains at all. I merely required no character. 
A photo of Trump included as an example.
ALT text detailsQuote from Catch 22 by Joseph Heller: It was miraculous. It was almost no trick at all, he saw, to turn vice into virtue & slander into truth, impotence into abstinence, arrogance into humility, plunder into philanthropy, thievery into honor, blasphemy into wisdom, brutality into wisdom, & sadism into justice. Anybody could do it; it required no brains at all. I merely required no character. A photo of Trump included as an example.
Keith D Johnson for Kamala's avatar
Keith D Johnson for Kamala

@KeithDJohnson@sfba.social

Quote from Catch 22 by Joseph Heller: It was miraculous. It was almost no trick at all, he saw, to turn vice into virtue & slander into truth, impotence into abstinence, arrogance into humility, plunder into philanthropy, thievery into honor, blasphemy into wisdom, brutality into wisdom, & sadism into justice. Anybody could do it; it required no brains at all. I merely required no character. 
A photo of Trump included as an example.
ALT text detailsQuote from Catch 22 by Joseph Heller: It was miraculous. It was almost no trick at all, he saw, to turn vice into virtue & slander into truth, impotence into abstinence, arrogance into humility, plunder into philanthropy, thievery into honor, blasphemy into wisdom, brutality into wisdom, & sadism into justice. Anybody could do it; it required no brains at all. I merely required no character. A photo of Trump included as an example.
Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"To solve a problem with a proof is exciting and rewarding because it is true forever." – Marie-France Vignéras (1946-)

Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"To solve a problem with a proof is exciting and rewarding because it is true forever." – Marie-France Vignéras (1946-)

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

If a man walk in the woods for love of them half of each day, he is in danger of being regarded as a loafer; but if he spends his whole day as a speculator, shearing off those woods and making earth bald before her time, he is esteemed an industrious and enterprising citizen.
-- Henry David Thoreau

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

If a man walk in the woods for love of them half of each day, he is in danger of being regarded as a loafer; but if he spends his whole day as a speculator, shearing off those woods and making earth bald before her time, he is esteemed an industrious and enterprising citizen.
-- Henry David Thoreau

Paul Mickael Giulan's avatar
Paul Mickael Giulan

@pgiulan@federate.social · Reply to Daniel Supernault's post

@dansup

He who knows how to be poor knows everything.
— Jules Michelet

ZNet (unofficial)'s avatar
ZNet (unofficial)

@znetwork@mastodon.social

Plato got it right:

"One of the penalties for refusing to participate in politics is that you end up being governed by your inferiors."

There is no such thing as being apolitical, only complicity.

An generated image of a statue of a greek philosopher. The head is molded in white stone, with a full beard and deep, fetureless eyes.
ALT text detailsAn generated image of a statue of a greek philosopher. The head is molded in white stone, with a full beard and deep, fetureless eyes.
Tim Mocarski's avatar
Tim Mocarski

@tmocarski@masto.ai

"If we keep doing what we're doing, we're going to keep getting what we're getting."

Stephen Covey

Tim Mocarski's avatar
Tim Mocarski

@tmocarski@masto.ai

"To make us love our country, our country ought to be lovely."

Edmund Burke

Tim Mocarski's avatar
Tim Mocarski

@tmocarski@masto.ai

"When an individual is kept in a situation of inferiority, the fact is that he does become inferior."

Simone de Beauvoir

tivasyk's avatar
tivasyk

@tivasyk@mycrowd.ca

#quote | «back when I was younger, my friend Yury Afanasyev, a brilliant historian, said that Russian literature was one of the most fertile sources of Russian nationalism».

everyone needs to read this interview with mr. kasparov.

https://kyivindependent.com/garry-kasparov-without-decisive-military-defeat-there-wont-be-change-in-russia/

#quote | «The war in Ukraine has shown us that when we celebrated the fall of communism in 1991, we failed to grasp that communism was merely a facade for an underlying imperialist matrix».

#quote | «What's tragic is that even now, after so much blood has been spilled, there are still people in the free world trying to find some kind of compromise or middle ground to return to. What they fail to recognize is that you cannot negotiate with this kind of evil [...]».

#quote | «the cowardly stance of the free world has left Ukraine with very few options on the table».

#quote | «I haven't heard of mass desertion in the Russian military, just some desertion, but not on a large scale. These are orders being carried out, and many acts of cruelty show this isn't just about Putin; it's a mentality. Ignoring this and claiming it's all Putin's doing is an attempt to distort the truth».

#quote | «We must support Ukraine's victory in this war. You never hear them say Ukraine must win. It's always about stopping the war, but at this point, maybe even Putin wants to stop it for his own reasons».
Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"Mathematics is an art. The difference between math and the other arts, such as music and painting, is that our culture does not recognize it as such." – Paul Lockhart

Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"Mathematics is an art. The difference between math and the other arts, such as music and painting, is that our culture does not recognize it as such." – Paul Lockhart

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

No government in the world fights fascism to the death. When the bourgeoisie sees power slipping from its grasp, it has recourse to fascism to maintain itself.
-- Buenaventura Durruti

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

No government in the world fights fascism to the death. When the bourgeoisie sees power slipping from its grasp, it has recourse to fascism to maintain itself.
-- Buenaventura Durruti

Jcmacomber's avatar
Jcmacomber

@jcmacomber@mastodon.online

Profound

S

"Man surprised me most about humanity.Because he sacrifices his health in order to make money. Then he sacrifices money to recuperate his health.And then he is so anxious about the future that he does not enjoy the present; the result being that he does not live in the present or the future; he lives as if he is never going to die, and then dies having never really lived."

~DALAI LAMA
ALT text detailsS "Man surprised me most about humanity.Because he sacrifices his health in order to make money. Then he sacrifices money to recuperate his health.And then he is so anxious about the future that he does not enjoy the present; the result being that he does not live in the present or the future; he lives as if he is never going to die, and then dies having never really lived." ~DALAI LAMA
Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

It is dangerous to be right when the government is wrong.
-- Voltaire

PhotoQuotes's avatar
PhotoQuotes

@PhotoQuotes@beep.town

Above all, life for a photographer cannot be a matter of indifference - Robert Frank

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

A corporate elite of managers and owners governs the economy and the political system.
-- Noam Chomsky

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

You can't separate peace from freedom, because no one can be at peace unless he has his freedom.
-- Malcolm X

SolarB :tcr:'s avatar
SolarB :tcr:

@solarbranka@toot.community


My mind is like a gyre,
and odd juxtapositions happen.

Ruth Ozeki
ALT text detailsMy mind is like a gyre, and odd juxtapositions happen. Ruth Ozeki
Hokkaido Market  ☑️'s avatar
Hokkaido Market ☑️

@hokkaidomarket@famichiki.jp

87% of all statistics are made up on the spot - Steven Wright

Felix Urbasik's avatar
Felix Urbasik

@fell@ma.fellr.net

I'm still against quote posts on the Fediverse.

I have never seen a quote post that would not have been better as a reply, where original author can be included in the discussion.

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

Disobedience is the true foundation of liberty. The obedient must be slaves.
-- Henry David Thoreau

Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

isn’t always a choice. But how you give care and how it changes what you value in life, those are choices.

“There are only four kinds of people in the world. Those who have been caregivers. Those who are currently caregivers. Those who will be caregivers, and those who will need a caregiver.” ~ Rosalynn Carter
ALT text details“There are only four kinds of people in the world. Those who have been caregivers. Those who are currently caregivers. Those who will be caregivers, and those who will need a caregiver.” ~ Rosalynn Carter
Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

Especially in the early stages, a person living with disease or another form of may not need your , but they will need your support. Rather than treating them as dependent, empower them to get the most from their own abilities.

If you see someone falling behind, walk beside them. If you see someone being ignored, find a way to include them. If someone has been knocked down, lift them up. Always remind people of their worth. One small act could mean the world to them.
ALT text detailsIf you see someone falling behind, walk beside them. If you see someone being ignored, find a way to include them. If someone has been knocked down, lift them up. Always remind people of their worth. One small act could mean the world to them.
Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

IMPORTANT: If you’re turned away at the polls because your name is not on the register, don’t walk away. Your response [verbatim] should be: “Give me a provisional ballot with a receipt, as required by law.” Don’t let them steal your vote — @Strandjunker

Félicien Breton 🍉 🔻 🌱's avatar
Félicien Breton 🍉 🔻 🌱

@breton@climatejustice.social · Reply to Félicien Breton 🍉 🔻 🌱's post

"Let’s take that number-one narrative, which is I was taught to treat everyone the same. You know, actually no one was - or could be taught to treat everyone the same. We can’t do it. We don’t do it."

"A white progressive generally believes niceness is all that it takes. As long as I’m nice and friendly, I’m finished. And niceness not only is not courageous. But niceness is not going to get racism on the table."

NPR’s Jennifer Ludden talks to author Robin DiAngelo about her book, "White Fragility: Why It’s So Hard For White People To Talk About Racism": npr.org/2018/08/18/639822895/r

Félicien Breton 🍉 🔻 🌱's avatar
Félicien Breton 🍉 🔻 🌱

@breton@climatejustice.social · Reply to Félicien Breton 🍉 🔻 🌱's post

"If you are used to privilege, equality tastes like oppression."

~Sylvie Laurent in "Pauvre petit blanc - Le mythe de la dépossession raciale"

Félicien Breton 🍉 🔻 🌱's avatar
Félicien Breton 🍉 🔻 🌱

@breton@climatejustice.social

First Worldism—“the loss of the prerogative, only and always, to be the one who transgresses the sovereign boundaries of other states, but never to be in the position of having one’s own boundaries transgressed.”
—Judith Butler, J. (2009). ‘Violence, mourning, politics’, in Harding, J. and Pribram, D. eds., Emotions: A Cultural Studies Reader. London: Routledge, pp. 387–402.

🧵 @socialpsych@a.gup.pe

JL Johnson :veri_mast:'s avatar
JL Johnson :veri_mast:

@User47@vmst.io

“If you don’t have a vested interest in outcomes, then the conversation hasn’t been adequately framed for you.” [because you do]

Dr. Karl Malcolm. Regional Director, Renewable Resources. US Forest Service.

WOW. 🤯

Scooter's avatar
Scooter

@scooterquote@botsin.space

Love to rock bottom beats for the flicks to hibernate and syncopate but I'm still in the mix

from 'Rock bottom' on the album 'Who's got the last laugh now'
discogs.com/Scooter-Whos-Got-T

івась тарасик's avatar
івась тарасик

@tivasyk@mastodon.social · Reply to UniversityofGroningenLibrary's post

| «Opaque algorithms can hinder rational debate and create echo chambers, which are antithetical to the academic pursuit of knowledge. Just as commercial social media platforms have been corrupted by profit-driven interests, academic online spaces – intended for open discourse and nuanced debate – face similar threats, including the amplification of sensationalism over thoughtful discussion».

well worth reading for those not in academia:

rug.nl/library/open-access/blo

Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

Becoming a skilled, patient and empathetic caregiver can be an equally painful and indispensable experience.

"Patience is bitter, but its fruit is sweet." ~Jean Jacques Rousseau
ALT text details"Patience is bitter, but its fruit is sweet." ~Jean Jacques Rousseau
Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

I’m voting for Kamala Harris not in spite of being a Republican or a conservative, but because I’m a conservative. Conservatives first and foremost believe in the rule of law. And to have a former president who lost a free and fair election then attempted to overturn that election. How can any conservative support such a person? — former. GOP Sen. Jeff Flake

Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

The irony is that Trump’s 34 felony convictions would prevent him from getting a job at McDonald’s — Jon Cooper

Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

I don't know who will win the election. But it's a sad statement about America that there's about an even chance that Donald Trump will be reelected. If you're in a swing state, I hope you will vote for the only candidate who stands between him and four more years—VP Harris — Orin Kerr

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

In order to destroy an effect you must first destroy the cause. If there is theft it is only because there is abundance on one hand and famine on the other; because everything only belongs to some. The struggle will only disappear when men will put their joys and suffering in common, their labors and their riches, when all will belong to everyone.
-- Marius Jacob

Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

Voter Question: Could you explain your gun control policy to the parents of the victims of school shootings?

Donald Trump: I could. You need guns. You need them for entertainment, for sport, and other things.

— UNIVISION Town Hall

HereIMwearRUgoing's avatar
HereIMwearRUgoing

@YMItalking@vivaldi.net

“I used to think I was the strangest person in the world but then I thought there are so many people in the world, there must be someone just like me who feels bizarre and flawed in the same ways I do… Well, I hope that if you are out there and read this and know that, yes, it’s true I’m here, and I’m just as strange as you.” ~ Frida Kahlo

Close up of a pink five-petal bloom of which two are smaller and darker in color and a yellow center with a blurred back ground of other blooms of the same plant in front of a brown wooded bench and other plants next to and behind it.
ALT text detailsClose up of a pink five-petal bloom of which two are smaller and darker in color and a yellow center with a blurred back ground of other blooms of the same plant in front of a brown wooded bench and other plants next to and behind it.
HereIMwearRUgoing's avatar
HereIMwearRUgoing

@YMItalking@vivaldi.net

"Let us develop respect for all living things. Let us try to replace violence and intolerance with understanding and compassion. And love." ~ Jane Goodall

Branch of green long needles of a coniferous tree with blurred flowering plants below and a tree trunk in the background.
ALT text detailsBranch of green long needles of a coniferous tree with blurred flowering plants below and a tree trunk in the background.
HereIMwearRUgoing's avatar
HereIMwearRUgoing

@YMItalking@vivaldi.net

"As the eagle was killed by the arrow winged with his own feather, so the hand of the world is wounded by its own skill.." ~ Helen Keller

Close up side view of a pale yellow multi-petal bloom with a raised textured center with a crown of yellow stamen surrounding a light green and yellow center on the top surface of the raised center.
ALT text detailsClose up side view of a pale yellow multi-petal bloom with a raised textured center with a crown of yellow stamen surrounding a light green and yellow center on the top surface of the raised center.
HereIMwearRUgoing's avatar
HereIMwearRUgoing

@YMItalking@vivaldi.net

"Like music and art, love of nature is a common language that can transcend political or social boundaries." ~ Jimmy Carter

View of a park next to a lake with long shadows from the trees on the mown lawn and across the bike path that runs alongside the park. A large metal sculpture stands in the distance near the lake and a bus stop sign between the bike path and the street with a cloudless blue sky above. A soccer goal net is on the right side of the view and a partial view of a parking lot on the left side.
ALT text detailsView of a park next to a lake with long shadows from the trees on the mown lawn and across the bike path that runs alongside the park. A large metal sculpture stands in the distance near the lake and a bus stop sign between the bike path and the street with a cloudless blue sky above. A soccer goal net is on the right side of the view and a partial view of a parking lot on the left side.
HereIMwearRUgoing's avatar
HereIMwearRUgoing

@YMItalking@vivaldi.net

"Fall has always been my favorite season. The time when everything bursts with its last beauty, as if nature had been saving up all year for the grand finale." ~ Lauren DeStefano, Wither

Close up of an orange and brown butterfly feeding on the yellow center of a white petal daisy. Other daisies blooms (and one past bloom) are in the background.
ALT text detailsClose up of an orange and brown butterfly feeding on the yellow center of a white petal daisy. Other daisies blooms (and one past bloom) are in the background.
Paul Mickael Giulan's avatar
Paul Mickael Giulan

@pgiulan@federate.social

The meaning of life is to find your gift. The purpose of life is to give it away.
— Pablo Picasso

Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

Then Jesus said unto the sick, “you better have insurance.” Then Jesus said unto the stranger, “are you here legally?” Then Jesus said unto the hungry, “my taxes better not be paying for these loaves and fishes.” Then Jesus said unto the poor, “this is your own fault.” — Rev. Benjamin Cremer

Inautilo's avatar
Inautilo

@inautilo@mastodon.social

“People still confuse UX with UI. You can have a perfect UI, but if no one needs that product, there’s no UX there. UX is on the other side.” — Artem Kulitski

_____

Inautilo's avatar
Inautilo

@inautilo@mastodon.social

“The simplicity of HTML and CSS now feels like a radical act. To build a website with just these tools is a small protest against platform capitalism: a way to assert sustainability, independence, longevity.” — Jarrett Fuller

_____

tomek's avatar
tomek

@tomek@mastodon.online

„A university degree, four books and hundreds of articles and I still make mistakes when reading. You wrote me „Good morning” and I read it as „I love you”.
– Mahmoud Darwish

Paul Mickael Giulan's avatar
Paul Mickael Giulan

@pgiulan@federate.social

The fundamental problem of humanity is that we have paleolithic emotions, medieval institutions, and godlike technology.
—Edward Osborne Wilson

Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

All the stupid people said I fell into her trap. They said I fell into her trap. She can’t set a mental trap. I didn’t fall into her trap. There is no trap. I didn’t fall into her trap — Donald J Trump

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

It is characteristic of theistic "tolerance" that no one really cares what the people believe in, just so they believe or pretend to believe.
-- Emma Goldman

Quote For The Day's avatar
Quote For The Day

@q4td@mastodon.social

“I’m going to buy him a copy of the Mythical Man Month. Actually I’m going to buy him two copies so he can read it twice as fast.”

        — Unknown

q4td.blogspot.com/2024/09/im-g

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

If a man walk in the woods for love of them half of each day, he is in danger of being regarded as a loafer; but if he spends his whole day as a speculator, shearing off those woods and making earth bald before her time, he is esteemed an industrious and enterprising citizen.
-- Henry David Thoreau

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng · Reply to Mountain Mindset's post

@mountainmindset I'm far from being religious, but I always found the bible quote below very poetic & inspiring in this sense you're describing. I.e. given sufficient amount of time (and the capability to observe its passing over millions of years), even mountains/ranges/continents are somewhat behaving/flowing like water... rising/ebbing, protruding/eroding, pushing/shoving, dissolving... like watching timelapses of clouds (limited to our tiny temporal scale/perception)

"The mountains melted from before the lord" (Judges 5:5)

This insight has essentially also been the basis of a lot of simulation & generative and evolutionary design work I've been doing over the years... (all based on essentially controlling time at will, especially when creating/working with your own tools...)

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

Take the principle that two wrongs don't make a right. If you really took it seriously, that alone would knock away almost the entire basis for war and the criminal justice system.
-- David Graeber

Metin Seven 🎨's avatar
Metin Seven 🎨

@metin@graphics.social

"When you're a kid, you don't realize you're also watching your parents grow up."
ALT text details"When you're a kid, you don't realize you're also watching your parents grow up."
Metin Seven 🎨's avatar
Metin Seven 🎨

@metin@graphics.social

Picture of a street sign that reads "Be careful when you follow the masses. Sometimes the 'M' is silent."
ALT text detailsPicture of a street sign that reads "Be careful when you follow the masses. Sometimes the 'M' is silent."
Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

The revolution, in my opinion, comrade delegates, is not, and cannot be, the work of a party. A party does not carry out a revolution; a party cannot do more than organize a coup d'etat and a coup d'etat is not a revolution.
-- Angel Pestana

Scooter's avatar
Scooter

@scooterquote@botsin.space

from 'Like hypa said' on the album 'The stadium techno experience'
discogs.com/Scooter-The-Stadiu

Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

The share price of Trump Media, whose majority shareholder is former President Donald , fell Tuesday to the lowest level seen since the Truth Social parent company began public trading in March following a merger. DJT shares dropped to $17.89 per share around midday Tuesday, The stock’s prior low was set on Aug. 28, when it hit $19.38 per share. The stock price is down roughly 77% from its high of $79.38 per share on March 26, following Trump Media’s merger with a publicly traded special purpose acquisition company. Trump Media’s latest drop comes just weeks before Trump, who owns almost 59% of DJT’s outstanding shares, and other company executives can cash in on the falling stock. Trump’s stake was worth over $2 billion as of Tuesday. If Trump does take the payday, investors’ doubts about the company could intensify, potentially triggering a broader selloff of the stock — Rebecca Picciotto

Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

We have the money, the power, the medical understanding, the scientific know-how, the love and the community to produce a kind of human paradise. But we are led by the least among us – the least intelligent, the least noble, the least visionary — Terence McKenna

Paysages Mathématiques's avatar
Paysages Mathématiques

@paysmaths@mathstodon.xyz

"The quality of a theorem is proportional to the number of examples to which it applies and the clarity and precision with which it classifies them." – John B. Conway (1939-)

Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

can be a powerful, vital, beautiful way to survive and even thrive while caregiving. Sometimes living in the moment also requires cookies.

"Today me will live in the moment. Unless it's unpleasant, in which case me will eat a cookie."

~Cookie Monster (Sesame Street)
ALT text details"Today me will live in the moment. Unless it's unpleasant, in which case me will eat a cookie." ~Cookie Monster (Sesame Street)
Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

holds the hopes of a lot of people in this country who are praying that she doesn’t fall on her face in the next 72 days. She can take heart that she’s driving Trump crazy. He is jealous of her looks, her crowd sizes, her star power and her vivacious, bodacious vibes. That’s a good start — Maureen Dowd

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

If there is a state, there must be domination of one class by another and, as a result, slavery.
-- Mikhail Bakunin

Scooter's avatar
Scooter

@scooterquote@botsin.space

from 'Nessaja' on the album 'The stadium techno experience'
discogs.com/Scooter-The-Stadiu

Nando161's avatar
Nando161

@nando161@theblower.au

Between 1945 and 2000, the US intervened in 81 consequential elections worldwide, including eight times in Italy, five in Japan, and many more in Latin America. Between 1958 and 1975, military coups, many of them American-sponsored, changed governments in three dozen nations—a quarter of the world’s sovereign states—fostering a distinct “reverse wave” in the global trend toward democracy.

- Alfred W. McCoy, To Govern the Globe: World Orders and Catastrophic Change

Scooter's avatar
Scooter

@scooterquote@botsin.space

from 'Maria (I like it loud)' on the album 'The stadium techno experience'
discogs.com/Scooter-Maria-I-Li

ghostdancer's avatar
ghostdancer

@ghostdancer@mastodon.sdf.org · Reply to clacke: exhausted pixie dream boy 🇸🇪🇭🇰💙💛's post

@clacke "The sky above the port was the color of television, tuned to a dead channel." Neuromancer by W. Gibson

and the obvious discussion about it
scifi.stackexchange.com/questi

Niika's avatar
Niika

@niika@mastodon.social

„We're made up of thousands of parts with thousands of functions all working in tandem to keep us alive. Yet if only one part of our imperfect machine fails, life fails. It makes one realize how fragile, how flawed we are.“

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

If you feel the need to vote in order to avert the immediate threat of fascism, by all means do so... in the meantime, we have a new society to build.
-- Kevin Carson

Scooter's avatar
Scooter

@scooterquote@botsin.space

from 'Zebras crossing the street' on the album 'Wicked!'
discogs.com/Scooter-Best/relea

TECC 🌱's avatar
TECC 🌱

@73CC@social.tchncs.de

"Failure is not the opposite of success; it's part of it." - Arianna Huffington

"The only real mistake is the one you don't learn from." - Henry Ford

"Every setback is an opportunity for a comeback." - Dwight Howard

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

The word "state" is identical with the word "war."
-- Peter Kropotkin

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

The revolution will be the flowering of humanity as love is the flowering of the heart.
-- Louise Michel

Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

"I’m not interested in whether you have stood with the great. I’m interested in whether you have sat with the broken."

"I’m not interested in whether you have stood with the great. I’m interested in whether you have sat with the broken."
ALT text details"I’m not interested in whether you have stood with the great. I’m interested in whether you have sat with the broken."
Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

As deepens, our loved ones may no longer recognize us. Even if they view us as strangers, our can give them a sense of belonging, peace, safety, and — if we and they are fortunate — .

Treat a stranger with kindness today.

You may be their only hope of having a good day.
ALT text detailsTreat a stranger with kindness today. You may be their only hope of having a good day.
Ian Kremer's avatar
Ian Kremer

@LEAD_Coalition@mastodon.world

is a master class in humility. We learn that we cannot fix every problem, can't meet every need. So much is beyond our control and more things change than remain reliable. What we can give relentlessly, deeply and tenderly is our .

"Sometimes it takes our weariest moments to show us the true depth of our strength."
ALT text details"Sometimes it takes our weariest moments to show us the true depth of our strength."
formuchdeliberation's avatar
formuchdeliberation

@formuchdeliberation@mastodon.world

“Within you, there is a stillness and a sanctuary to which you can retreat at any time and be yourself.” – Hermann Hesse

formuchdeliberation's avatar
formuchdeliberation

@formuchdeliberation@mastodon.world

“I will breathe. I will think of solutions. I will not let my worry control me. I will not let my stress level break me.”

– Shayne McClendon

formuchdeliberation's avatar
formuchdeliberation

@formuchdeliberation@mastodon.world

“The present moment is the only time over which we have dominion.”

~ Thích Nhất Hạnh

Rasta's avatar
Rasta

@Rasta@mstdn.ca

And isn't it ironic... don't you think? ♪
A little too ironic... and, yeah, I really do think...


Chris D. Jackson

Isn't it ironic that republicans are now applauding JD Vance for his mother's battle with addiction, while they have spent six years belittling Hunter Biden for his struggles with the same issue.
- Chris D. Jackson
ALT text detailsIsn't it ironic that republicans are now applauding JD Vance for his mother's battle with addiction, while they have spent six years belittling Hunter Biden for his struggles with the same issue. - Chris D. Jackson
Ellane W's avatar
Ellane W

@ellane@pkm.social

I don’t do new year’s resolutions. Every month, week, and day are better intervals to check in and see what kind of avalanche all those tiny choices are heading me towards.

❝ Your will is nothing more than the muscle of character. Every time you flexed your will, you either strengthened the muscle of decision toward good and selflessness, or you strengthened it in the opposite direction—toward evil and selfishness.

(1/2) 🧵

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

If the machine of government is of such a nature that it requires you to be the agent of injustice to another, then, I say, break the law.
-- Henry David Thoreau

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

To revolt is a natural tendency of life. Even a worm turns against the foot that crushes it.
-- Mikhail Bakunin

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

Never do anything against conscience even if the state demands it.
-- Albert Einstein

Scooter's avatar
Scooter

@scooterquote@botsin.space

from 'Hyper Hyper' on the album 'And the beat goes on!'
discogs.com/Scooter-Hyper-Hype

Today's Top Quotes ✅'s avatar
Today's Top Quotes ✅

@StephenRamirez@universeodon.com

Messaging matters:

Stop saying: "Project 2025"

Say "Trumps's Project 2025"

— Rep Eric Swalwell

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

Class is massively underrepresented in literature. Most books are written for the middle class, and generally they only have two modes of talking about the working class. The first is a kind of lofty contempt at the vulgarity, the stupidity of those people. The second is a kind of patronizing concern, which paints the working class as nothing but victims.
-- Alan Moore

Anarchist Quotes's avatar
Anarchist Quotes

@anarchistquotes@todon.eu

I am but too conscious of the fact that we are born in an age when only the dull are treated seriously, and I live in terror of not being misunderstood.
-- Oscar Wilde

Quotes from The Sandman's avatar
Quotes from The Sandman

@SandmanQuotes@botsin.space

I am a bot. I post a daily random quotation from The Sandman comic series written by Neil Gaiman. This bot is maintained by @akuchling ; please send any issues or suggestions to him.

This account is not affiliated with Neil Gaiman or DC Comics.

William Shakespeare Quotes's avatar
William Shakespeare Quotes

@ShakespeareQuotes@botsin.space

I am a bot. I post a daily random quotation from the plays of William Shakespeare and am maintained by @akuchling ; please send any issues or comments to him.

Tommi 🤯's avatar
Tommi 🤯

@tommi@pan.rent

I hate to admit gettin’ better is boring
But the high cost of chaos, who can afford it?
I know that regression is rarely rewarded
I still need a certain degree of disorder

C’est Comme Ça (Re: Wet Leg) - Paramore, Wet Leg

Scooter's avatar
Scooter

@scooterquote@botsin.space

from 'Suavemente' on the album 'Mind the gap'
discogs.com/Scooter-Mind-The-G

@charleshb.bsky.social's avatar
@charleshb.bsky.social

@charleshb@mastodon.sdf.org

Since death alone is certain,
and the time of death uncertain,
what should I do?

meditation on death - stephen batchelor

worldprayers.org/archive/praye

Estelle Platini's avatar
Estelle Platini

@estelle@techhub.social

"Every night, I sleep through the same nightmare. I hear a roar coming towards me, an increasingly menacing rumour. I don't turn round. I don't need to. I know who's chasing me… I know they have machetes. Somehow, without turning around, I know they have machetes… Sometimes there are my classmates too. I hear their screams when they fall. When they… Now I'm running alone, I know I'm going to fall, I know I'm going to be trampled, I don't want to feel the cold of the blade on my neck, I…
I wake up. I'm in France. The house is silent. My children are asleep in their room.

– Scholastique Mukasonga, in her book "Inyenzi ou les Cafards" (incipit)

,

Dr. Daniel Dizdarevic's avatar
Dr. Daniel Dizdarevic

@daniel@social.dhelonious.de

"The wonderful thing about knowledge is that you can give it away and still have it."

From Heaven's River by @DennisETaylor

Life.is.beautiful's avatar
Life.is.beautiful

@Life_is_Beautiful@infosec.exchange

It takes strenght to resist the dark side. Only the weak embrace it.

It's more powerful then you know.

And those who oppose it will be more powerful then you will ever be.

youtube.com/watch?v=vVkUglhoon

maxlath's avatar
maxlath

@maxlath@mastodon.social

"The thrill of private ownership is the fruit of an underground common."

— Anna Tsing, "The Mushroom at the End of the World" @wd-Q60786968

phαη†⊕m :fedora:  🎸 🏳️‍🌈 ⁂'s avatar
phαη†⊕m :fedora: 🎸 🏳️‍🌈 ⁂

@Steve12L@mamot.fr

"S’il y a des miséreux dans la société, des gens sans asile, sans vêtements et sans pain, c’est que la société dans laquelle nous vivons est mal organisée. On ne peut pas admettre qu’il y ait encore des gens qui crèvent la faim quand d’autres ont des millions à dépenser en turpitudes. C’est cette pensée qui me révolte ! "
Louise Michel 9 Janvier 1905

Open Science ✅'s avatar
Open Science ✅

@openscience@mastodon.social

“Every kid starts out as a natural-born scientist, and then we beat it out of them. A few trickle through the system with their wonder and enthusiasm for science intact.”

— Carl Sagan

SOURCE: https://snl.no/Carl_Sagan
Carl Sagan (1994)

https://creativecommons.org/licenses/by/2.0/deed.no
ALT text detailsSOURCE: https://snl.no/Carl_Sagan Carl Sagan (1994) https://creativecommons.org/licenses/by/2.0/deed.no