
Metin Seven 🎨
@metin@graphics.social
@metin@graphics.social
@metin@graphics.social
@LEAD_Coalition@mastodon.world
Please share if you believe in the power of #music to reveal the heart.
@LEAD_Coalition@mastodon.world
Please share if you believe in the power of #music to reveal the heart.
@botkit@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hub.netzgemeinde.eu · Reply to BotKit by Fedify :botkit:'s post
Coming soon in #BotKit 0.2.0: Native #quote post support!
Coming soon in #BotKit 0.2.0: Native #quote post support!
RE: https://hollo.social/@botkit/01965678-eb56-7003-9c91-07e4418bf63a
[share=74153074][/share]
@botkit@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
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:
Bot.onQuote
event handlerMessage.quoteTarget
propertyquoteTarget
option in Session.publish()
and Message.reply()
methodsHere'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!
@botkit@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
We're pleased to announce the release of BotKit 0.2.0! For those new to our project, #BotKit is a #TypeScript framework for creating standalone #ActivityPub bots that can interact with Mastodon, Misskey, and other #fediverse 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.
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.
One of the most requested features has been #custom_emoji 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:
Bot.addCustomEmojis()
customEmoji()
functiontext
tagged template with Fedify Emoji
objectsCommunication 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:
Message.react()
Bot.onReact
and Bot.onUnreact
handlersDiscussions often involve referencing what others have said. Our new #quote 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:
quoteTarget
optionMessage.quoteTarget
Bot.onQuote
event handlerBecause communication is visual too, we've improved how your bot presents itself:
We've also improved how activities propagate through the fediverse:
These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.
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.
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@hollo.social
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:
Bot.onQuote
event handlerMessage.quoteTarget
propertyquoteTarget
option in Session.publish()
and Message.reply()
methodsHere'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!
@botkit@hollo.social
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:
Bot.onQuote
event handlerMessage.quoteTarget
propertyquoteTarget
option in Session.publish()
and Message.reply()
methodsHere'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!
@botkit@hollo.social
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:
Bot.onQuote
event handlerMessage.quoteTarget
propertyquoteTarget
option in Session.publish()
and Message.reply()
methodsHere'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!
@botkit@hollo.social
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:
Bot.onQuote
event handlerMessage.quoteTarget
propertyquoteTarget
option in Session.publish()
and Message.reply()
methodsHere'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!
@botkit@hollo.social
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:
Bot.onQuote
event handlerMessage.quoteTarget
propertyquoteTarget
option in Session.publish()
and Message.reply()
methodsHere'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!
@anarchistquotes@todon.eu
The State is said by some to be a "necessary evil"; it must be made unnecessary.
-- Benjamin Tucker
@anarchistquotes@todon.eu
The State is said by some to be a "necessary evil"; it must be made unnecessary.
-- Benjamin Tucker
@metin@graphics.social
@metin@graphics.social
@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 — https://bitsavers.org/pdf/creativeSolutions/MacFORTH_1.2_Oct84.pdf)
@lifeboatacademy@mastodon.social
@lifeboatacademy@mastodon.social
@tmocarski@masto.ai
"Life is made up of constant calls to action."
Learned Hand
#quote #quoteoftheday #Action #Protest #50501movement #Resist #BeingHuman
@LEAD_Coalition@mastodon.world
In a world beset by unfathomable cruelty, we need more soft hearts filled with the #courage to care for all humankind.
@LEAD_Coalition@mastodon.world
In a world beset by unfathomable cruelty, we need more soft hearts filled with the #courage to care for all humankind.
@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.”
@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": https://www.npr.org/2018/08/18/639822895/robin-diangelo-on-white-peoples-fragility
#progressives #liberals #colorBlind #colorBlindness #colours #postRacial #fragility #respectability #domination #boundaries #sociology #coloniality #entitlement #whiteness #psychology #whiteFragility #quote #quotes #book #DemocraticParty #VoteBlue #KamalaHarris #ColorLine
@tmocarski@masto.ai
The world's always a better place if people are filled with understanding."
Richard Dawkins
#Quote #quoteoftheday #makeitbetter #TheWorld #understanding #BeingHuman
@solarbranka@toot.community
@toxi@mastodon.thi.ng
Just made my day: "I somehow made it to March 2025 before being aware of https://thi.ng/ - an incredible mountain of code created primarily by a prolific genius, full of ideas that are like catnip to me."
😂
https://kylecordes.com/2025/typescript-html-generation-on-the-server
(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@mastodon.sdf.org
@LEAD_Coalition@mastodon.world
As carers, we don't need anyone imposing their judgment on us. We welcome those who offer #empathy and tangible support.
@LEAD_Coalition@mastodon.world
As carers, we don't need anyone imposing their judgment on us. We welcome those who offer #empathy and tangible support.
@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
@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
@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)
#quote #mathematics #math #maths #induction
@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)
#quote #mathematics #math #maths #induction
@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)
#quote #mathematics #math #maths
@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)
#quote #mathematics #math #maths
@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)
#quote #mathematics #math #maths
@tmocarski@masto.ai
"Facts do not cease to exist because they are ignored."
Aldous Huxley
@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@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
@tmocarski@masto.ai
"One thorn of experience is worth a whole wilderness of warning."
James Russell Lowell
#quote #quoteoftheday #Experience #peoplewerewarned #resist #BeingHuman
@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)
#quote #mathematics #math #maths
@NickEast@geekdom.social
“There is some good in this world, and it’s worth fighting for.”
-Samwise Gamgee (Movie version)
@libraries @librarians @bookbubble @bookstodon
#Library #LibraryMemes
#LotR #Quote
#Memes #Libraries #Librarians #Humor #Humour
#Bookstodon #Bookworm #Bookwyrm #BookLove #BoostingIsSharing
@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
@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
@NickEast@geekdom.social
“There is some good in this world, and it’s worth fighting for.”
-Samwise Gamgee (Movie version)
@libraries @librarians @bookbubble @bookstodon
#Library #LibraryMemes
#LotR #Quote
#Memes #Libraries #Librarians #Humor #Humour
#Bookstodon #Bookworm #Bookwyrm #BookLove #BoostingIsSharing
@NickEast@geekdom.social
“There is some good in this world, and it’s worth fighting for.”
-Samwise Gamgee (Movie version)
@libraries @librarians @bookbubble @bookstodon
#Library #LibraryMemes
#LotR #Quote
#Memes #Libraries #Librarians #Humor #Humour
#Bookstodon #Bookworm #Bookwyrm #BookLove #BoostingIsSharing
@nando161@partyon.xyz
@tmocarski@masto.ai
"Power concedes nothing without a demand. It never did and it never will."
Frederick Douglass
@LEAD_Coalition@mastodon.world
#Kindness may be the most important element of #caregiving.
@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)
#quote #mathematics #math #maths
@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)
#quote #mathematics #math #maths
@LEAD_Coalition@mastodon.world
In all the years I cared for my brilliant, beloved dad as #dementia 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) #Alzheimers #dementia #quote
@LEAD_Coalition@mastodon.world
In all the years I cared for my brilliant, beloved dad as #dementia 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) #Alzheimers #dementia #quote
@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
@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
@indubitablyodin@sfba.social
@indubitablyodin@sfba.social
@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
@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
@KeithDJohnson@sfba.social
@KeithDJohnson@sfba.social
@paysmaths@mathstodon.xyz
"To solve a problem with a proof is exciting and rewarding because it is true forever." – Marie-France Vignéras (1946-)
#quote #mathematics #math #maths
@paysmaths@mathstodon.xyz
"To solve a problem with a proof is exciting and rewarding because it is true forever." – Marie-France Vignéras (1946-)
#quote #mathematics #math #maths
@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
@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
@pgiulan@federate.social · Reply to Daniel Supernault's post
@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.
@tmocarski@masto.ai
"If we keep doing what we're doing, we're going to keep getting what we're getting."
Stephen Covey
@tmocarski@masto.ai
"To make us love our country, our country ought to be lovely."
Edmund Burke
@tmocarski@masto.ai
"When an individual is kept in a situation of inferiority, the fact is that he does become inferior."
Simone de Beauvoir
#quote #quoteoftheday #individual #freedom #howwetreatothers #BeingHuman
@tivasyk@mycrowd.ca
@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
#quote #mathematics #math #maths
@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
#quote #mathematics #math #maths
@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
@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@mastodon.online
Profound #quote
@anarchistquotes@todon.eu
It is dangerous to be right when the government is wrong.
-- Voltaire
@PhotoQuotes@beep.town
Above all, life for a photographer cannot be a matter of indifference - Robert Frank
#photography #quote
@anarchistquotes@todon.eu
A corporate elite of managers and owners governs the economy and the political system.
-- Noam Chomsky
@anarchistquotes@todon.eu
You can't separate peace from freedom, because no one can be at peace unless he has his freedom.
-- Malcolm X
@solarbranka@toot.community
@hokkaidomarket@famichiki.jp
87% of all statistics are made up on the spot - Steven Wright
#quote
@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.
@anarchistquotes@todon.eu
Disobedience is the true foundation of liberty. The obedient must be slaves.
-- Henry David Thoreau
@LEAD_Coalition@mastodon.world
#Caregiving isn’t always a choice. But how you give care and how it changes what you value in life, those are choices.
@LEAD_Coalition@mastodon.world
Especially in the early stages, a person living with #Alzheimers disease or another form of #dementia may not need your #caregiving, but they will need your support. Rather than treating them as dependent, empower them to get the most from their own abilities.
@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 #quotes #quote #Vote #Election2024
@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": https://www.npr.org/2018/08/18/639822895/robin-diangelo-on-white-peoples-fragility
#progressives #liberals #colorBlind #colorBlindness #colours #postRacial #fragility #respectability #domination #boundaries #sociology #coloniality #entitlement #whiteness #psychology #whiteFragility #quote #quotes #book #DemocraticParty #VoteBlue #KamalaHarris #ColorLine
@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"
#quote #quotes #bookStodon #equality #identity #UnitedStates #fragility #sociology #systemicRacism #supremacy #whiteSupremacy #fragility #whiteFragility #racism #populism #trumpism #coloniality #Trump #racialDivide #lineOfColor #SylvieLaurent #cultureWars #landGrab #seizing #appropriation #nationalism #newRight
@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
#CulturalStudies #JudithButler #fragility #respectability #NineEleven #post911Wars #Oct7 #Oct7War #postOct7War #FirstWorldism #domination #boundaries #grievability #imperialism #geoPolitics #victimhood #resources #sociology #protest #protests #coloniality #stateRacism #indignation #entitlement #whiteness #islamophobia #moralPanic #psychology #masculinity #whiteFragility #quote #quotes #book #JewishSupremacy #whiteSupremacy #terrorism
@User47@vmst.io
“If you don’t have a vested interest in #conservation 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. 🤯
@scooterquote@botsin.space
from 'Rock bottom' on the album 'Who's got the last laugh now'
https://www.discogs.com/Scooter-Whos-Got-The-Last-Laugh-Now/release/8149382
#quote #scooter #bot
@tivasyk@mastodon.social · Reply to UniversityofGroningenLibrary's post
#quote | «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:
https://www.rug.nl/library/open-access/blog/one-year-after-x-embracing-open-science-on-mastodon
@LEAD_Coalition@mastodon.world
Becoming a skilled, patient and empathetic caregiver can be an equally painful and indispensable experience.
@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 #quotes #quote #RepublicansForHarris #Conservatives #HarrisWalz2024 #USPolitics #USPol #Politics
@StephenRamirez@universeodon.com
The irony is that Trump’s 34 felony convictions would prevent him from getting a job at McDonald’s — Jon Cooper #quotes #quote #Trump #ConvictedCriminal #McDonalds #McDonaldTrump #FrenchFries
@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 #quotes #quote #Vote #KamalaHarris #HarrisWalz2024 #VoteDemocrats #VoteBlue
@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
@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 #quotes #quote #SchoolShooting #GunViolence #ChildrenMurdered #Guns #GunSafety #Trump #Republicans #GunReform
@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
@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
@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
@YMItalking@vivaldi.net
"Like music and art, love of nature is a common language that can transcend political or social boundaries." ~ Jimmy Carter
@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
@pgiulan@federate.social
The meaning of life is to find your gift. The purpose of life is to give it away.
— Pablo Picasso
@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 #quotes #quote #Republicans #MAGA #Selfishness #Arrogance #SelfRighteousness #Project2025
@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
_____
#Design #ProductDesign #UxDesign #UiDesign #WebDesign #UX #UI #Quote
@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
_____
#Business #OpenWeb #IndieWeb #SmallWeb #Website #Blog #WebDesign #Development #WebDev #Frontend #Quote
@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
@pgiulan@federate.social
The fundamental problem of humanity is that we have paleolithic emotions, medieval institutions, and godlike technology.
—Edward Osborne Wilson
#quote
@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 #quotes #quote #Trump #Trapped #KamalaHarris #HarrisWalz2024 #USPolitics #USPol
@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
@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 #Quote #Quotes http://q4td.blogspot.com/2024/09/im-going-to-buy-him-copy-of-mythical.html
@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
@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...)
@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@graphics.social
@metin@graphics.social
@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
@scooterquote@botsin.space
from 'Like hypa said' on the album 'The stadium techno experience'
https://www.discogs.com/Scooter-The-Stadium-Techno-Experience/release/2527189
#quote #scooter #bot
@StephenRamirez@universeodon.com
The share price of Trump Media, whose majority shareholder is former President Donald #Trump, 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 #quotes #quote #DJT #Nasdaq #Selloff #Stocks
@StephenRamirez@universeodon.com
@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-)
#quote #mathematics #maths #math
@LEAD_Coalition@mastodon.world
#Mindfulness can be a powerful, vital, beautiful way to survive and even thrive while caregiving. Sometimes living in the moment also requires cookies.
@StephenRamirez@universeodon.com
#Kamala 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 #quotes #quote #Trump #Jealous #FreakedOut #Rambling #Despair #Depression #Fear #Unpresidential
@anarchistquotes@todon.eu
If there is a state, there must be domination of one class by another and, as a result, slavery.
-- Mikhail Bakunin
@scooterquote@botsin.space
from 'Nessaja' on the album 'The stadium techno experience'
https://www.discogs.com/Scooter-The-Stadium-Techno-Experience-Special-Limited-Edition/release/155002
#quote #scooter #bot
@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
#quote #quotes #usa #america #history #classwar #politics #fascism #oppression #repression #nazis #neonazis #neofascism #society #humans #earth #community #imperialism #capitalism
@scooterquote@botsin.space
from 'Maria (I like it loud)' on the album 'The stadium techno experience'
https://www.discogs.com/Scooter-Maria-I-Like-It-Loud/release/2557339
#quote #scooter #bot
@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." #quote Neuromancer by W. Gibson
and the obvious discussion about it
https://scifi.stackexchange.com/questions/163304/what-color-was-the-sky-above-the-port-in-neuromancer
@niika@mastodon.social
@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
@scooterquote@botsin.space
from 'Zebras crossing the street' on the album 'Wicked!'
https://www.discogs.com/Scooter-Best/release/3689773
#quote #scooter #bot
@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
@anarchistquotes@todon.eu
The word "state" is identical with the word "war."
-- Peter Kropotkin
@anarchistquotes@todon.eu
The revolution will be the flowering of humanity as love is the flowering of the heart.
-- Louise Michel
@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."
@LEAD_Coalition@mastodon.world
As #dementia deepens, our loved ones may no longer recognize us. Even if they view us as strangers, our #kindness can give them a sense of belonging, peace, safety, and — if we and they are fortunate — #happiness.
@LEAD_Coalition@mastodon.world
#Caregiving 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 #love.
@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
#quote #quoteoftheday #quotesonmastodon #mindfulness #wellbeing #selfcare #mentalhealth
@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
#quote #mindfulness #wellbeing #stress #wellness #quoteoftheday #quotesonmastodon
@formuchdeliberation@mastodon.world
“The present moment is the only time over which we have dominion.”
~ Thích Nhất Hạnh
#thichnhathanh #PresentMoment #time #mindfulness #quote #quoteoftheday #dailylife #peace
@Rasta@mstdn.ca
And isn't it ironic... don't you think? ♪
A little too ironic... and, yeah, I really do think...
#HunterBiden #JDVance #Addiction #Irony #GOP
#Quote Chris D. Jackson
@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.
#goals #BulletJournal #quote (1/2) 🧵
@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
@anarchistquotes@todon.eu
To revolt is a natural tendency of life. Even a worm turns against the foot that crushes it.
-- Mikhail Bakunin
@anarchistquotes@todon.eu
Never do anything against conscience even if the state demands it.
-- Albert Einstein
@scooterquote@botsin.space
from 'Hyper Hyper' on the album 'And the beat goes on!'
https://www.discogs.com/Scooter-Hyper-Hyper/release/6120677
#quote #scooter #bot
@StephenRamirez@universeodon.com
Messaging matters:
Stop saying: "Project 2025"
Say "Trumps's Project 2025"
— Rep Eric Swalwell #quotes #quote #Project2025 #Trump #TrumpsProject2025
@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
@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
@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.
@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@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
@scooterquote@botsin.space
from 'Suavemente' on the album 'Mind the gap'
https://www.discogs.com/Scooter-Mind-The-Gap-Basic-Version/release/347638
#quote #scooter #bot
@charleshb@mastodon.sdf.org
Since death alone is certain,
and the time of death uncertain,
what should I do?
meditation on death - stephen batchelor #quote #quotes
https://www.worldprayers.org/archive/prayers/meditations/since_death_alone_is_certain.html
@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)
#Mukasonga #Rwanda #شهيد, #shaheed #words #witness #France #history #mourning #coloniality #book #racism #genocide #quote #quotes #nightmare #trauma #ethnicCleansing #PTSD
@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@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.
@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
@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 #quote
@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