{"id":278870,"date":"2026-02-13T04:16:58","date_gmt":"2026-02-13T04:16:58","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fediboost\/"},"modified":"2026-02-22T17:48:35","modified_gmt":"2026-02-22T17:48:35","slug":"fediboost","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/fediboost\/","author":7879583,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.1","stable_tag":"1.0.1","tested":"6.9.4","requires":"6.9","requires_php":"7.4","requires_plugins":null,"header_name":"FediBoost","header_author":"Brandon Kraft","header_description":"Automatically boost WordPress posts on connected Mastodon accounts when published via ActivityPub.","assets_banners_color":"553bcb","last_updated":"2026-02-22 17:48:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/kraftbj\/fediboost","header_author_uri":"https:\/\/kraft.blog\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":234,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":1,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"kraftbj","date":"2026-02-13 04:16:43"},"1.0.0":{"tag":"1.0.0","author":"kraftbj","date":"2026-02-13 05:02:25"},"1.0.1":{"tag":"1.0.1","author":"kraftbj","date":"2026-02-22 17:48:35"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3460488,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3460488,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3460488,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3460488,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","1.0.0","1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[162216,8908,162215,139106,174],"plugin_category":[56],"plugin_contributors":[77548],"plugin_business_model":[],"class_list":["post-278870","plugin","type-plugin","status-publish","hentry","plugin_tags-activitypub","plugin_tags-boost","plugin_tags-fediverse","plugin_tags-mastodon","plugin_tags-social","plugin_category-social-and-sharing","plugin_contributors-kraftbj","plugin_committers-coffeaweb","plugin_committers-kraftbj"],"banners":{"banner":"https:\/\/ps.w.org\/fediboost\/assets\/banner-772x250.png?rev=3460488","banner_2x":"https:\/\/ps.w.org\/fediboost\/assets\/banner-1544x500.png?rev=3460488","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/fediboost\/assets\/icon-128x128.png?rev=3460488","icon_2x":"https:\/\/ps.w.org\/fediboost\/assets\/icon-256x256.png?rev=3460488","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>FediBoost extends the ActivityPub plugin by automatically boosting your WordPress posts on your connected Mastodon accounts when they are published.<\/p>\n\n<p>When you publish a new post on your WordPress site, FediBoost will automatically boost (reblog) that post on your linked Mastodon account, helping increase visibility across the fediverse.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Automatic boosting of new posts to connected Mastodon accounts<\/li>\n<li>Seamless integration with the ActivityPub plugin<\/li>\n<li>No additional configuration required after setup<\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>The <a href=\"https:\/\/wordpress.org\/plugins\/activitypub\/\">ActivityPub plugin<\/a> must be installed and configured<\/li>\n<li>A connected Mastodon account via ActivityPub<\/li>\n<\/ul>\n\n<h3>Developer Hooks<\/h3>\n\n<p>FediBoost provides several filters that allow developers to customize its behavior. All filters follow WordPress coding standards and can be added to your theme's functions.php file or a custom plugin.<\/p>\n\n<h4>fediboost_should_boost_post<\/h4>\n\n<p>Control whether a specific post should be boosted. Return false to skip boosting for the given post. Default: true.<\/p>\n\n<p><strong>Parameters:<\/strong><\/p>\n\n<ul>\n<li><code>$should_boost<\/code> (bool) \u2014 Whether the post should be boosted.<\/li>\n<li><code>$post<\/code> (WP_Post) \u2014 The post object being published.<\/li>\n<\/ul>\n\n<p><strong>Example:<\/strong><\/p>\n\n<pre><code>add_filter( 'fediboost_should_boost_post', function( $should_boost, $post ) {\n    \/\/ Don't boost posts in the \"internal\" category.\n    if ( has_category( 'internal', $post ) ) {\n        return false;\n    }\n    return $should_boost;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h4>fediboost_boost_delay<\/h4>\n\n<p>Delay in seconds after ActivityPub federation completes before the boost is executed. This delay is only used when the federation completion hook fires successfully. Default: 30.<\/p>\n\n<p><strong>Parameters:<\/strong><\/p>\n\n<ul>\n<li><code>$delay<\/code> (int) \u2014 The delay in seconds.<\/li>\n<\/ul>\n\n<p><strong>Example:<\/strong><\/p>\n\n<pre><code>add_filter( 'fediboost_boost_delay', function( $delay ) {\n    \/\/ Wait 2 minutes after federation before boosting.\n    return 120;\n} );\n<\/code><\/pre>\n\n<h4>fediboost_fallback_delay<\/h4>\n\n<p>Delay in seconds before a boost is executed when the ActivityPub federation completion hook does not fire. This acts as a safety net for older versions of the ActivityPub plugin that do not support the <code>activitypub_outbox_processing_complete<\/code> hook. If the federation hook fires first, the fallback is cancelled and <code>fediboost_boost_delay<\/code> is used instead. Default: 300 (5 minutes).<\/p>\n\n<p><strong>Parameters:<\/strong><\/p>\n\n<ul>\n<li><code>$delay<\/code> (int) \u2014 The fallback delay in seconds.<\/li>\n<\/ul>\n\n<p><strong>Example:<\/strong><\/p>\n\n<pre><code>add_filter( 'fediboost_fallback_delay', function( $delay ) {\n    \/\/ Wait 10 minutes in the fallback path.\n    return 600;\n} );\n<\/code><\/pre>\n\n<h4>fediboost_manage_capability<\/h4>\n\n<p>WordPress capability required to manage FediBoost settings. Default: 'manage_options'. Note: a floor of 'edit_others_posts' is enforced regardless of this filter's return value, so you cannot lower the requirement below that capability.<\/p>\n\n<p><strong>Parameters:<\/strong><\/p>\n\n<ul>\n<li><code>$capability<\/code> (string) \u2014 The required capability.<\/li>\n<\/ul>\n\n<p><strong>Example:<\/strong><\/p>\n\n<pre><code>add_filter( 'fediboost_manage_capability', function( $capability ) {\n    \/\/ Allow editors to manage FediBoost settings.\n    return 'edit_others_posts';\n} );\n<\/code><\/pre>\n\n<h4>fediboost_max_accounts<\/h4>\n\n<p>Maximum number of connected Mastodon accounts. Default: 10.<\/p>\n\n<p><strong>Parameters:<\/strong><\/p>\n\n<ul>\n<li><code>$max<\/code> (int) \u2014 The maximum number of accounts.<\/li>\n<\/ul>\n\n<p><strong>Example:<\/strong><\/p>\n\n<pre><code>add_filter( 'fediboost_max_accounts', function( $max ) {\n    \/\/ Allow up to 25 connected accounts.\n    return 25;\n} );&lt;h3&gt;External Services&lt;\/h3&gt;\n<\/code><\/pre>\n\n<p>FediBoost connects to external Mastodon instances that you configure (e.g., mastodon.social). This communication is essential for the plugin to function and is initiated only with the instance you explicitly provide.<\/p>\n\n<p><strong>During setup:<\/strong><\/p>\n\n<ul>\n<li>FediBoost registers an OAuth application on your Mastodon instance and performs an authorization flow so it can act on your behalf.<\/li>\n<\/ul>\n\n<p><strong>When a post is published:<\/strong><\/p>\n\n<ul>\n<li>FediBoost searches for the post on your Mastodon instance and performs a reblog (boost) via the Mastodon API.<\/li>\n<\/ul>\n\n<p><strong>Data sent to your Mastodon instance:<\/strong><\/p>\n\n<ul>\n<li>Your instance URL<\/li>\n<li>OAuth authorization codes<\/li>\n<li>Search queries to locate your posts<\/li>\n<li>Reblog (boost) requests<\/li>\n<\/ul>\n\n<p><strong>Data stored locally on your WordPress site:<\/strong><\/p>\n\n<ul>\n<li>Encrypted OAuth tokens<\/li>\n<li>Your Mastodon username<\/li>\n<li>Your Mastodon instance URL<\/li>\n<\/ul>\n\n<p>Each Mastodon instance has its own privacy policy and terms of service. You can find a list of instances and their policies at <a href=\"https:\/\/joinmastodon.org\/servers\">joinmastodon.org\/servers<\/a>.<\/p>\n\n<p>This plugin does not send data to any third-party service other than the Mastodon instance(s) you explicitly configure.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Ensure the ActivityPub plugin is installed and activated.<\/li>\n<li>Upload the <code>fediboost<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install via the WordPress plugin installer.<\/li>\n<li>Activate FediBoost through the Plugins menu.<\/li>\n<li>Go to Settings &gt; FediBoost.<\/li>\n<li>Enter your Mastodon instance URL (e.g., mastodon.social) and authorize the connection.<\/li>\n<li>New posts will automatically be boosted to your connected Mastodon account when published.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20work%20without%20the%20activitypub%20plugin%3F\"><h3>Does this plugin work without the ActivityPub plugin?<\/h3><\/dt>\n<dd><p>No, FediBoost requires the ActivityPub plugin to be installed and properly configured. FediBoost extends ActivityPub's functionality to add automatic boosting capabilities.<\/p><\/dd>\n<dt id=\"can%20i%20choose%20which%20posts%20get%20boosted%3F\"><h3>Can I choose which posts get boosted?<\/h3><\/dt>\n<dd><p>Currently, FediBoost will boost all newly published posts. Future versions may include options to selectively boost posts based on categories, tags, or other criteria. Developers can use the <code>fediboost_should_boost_post<\/code> filter to programmatically control which posts are boosted. See the Developer Hooks section below for details.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20change%20my%20wordpress%20authentication%20salts%3F\"><h3>What happens if I change my WordPress authentication salts?<\/h3><\/dt>\n<dd><p>FediBoost encrypts OAuth tokens using your WordPress authentication salts (defined in wp-config.php). If these salts are changed \u2014 for example, by a security plugin, during a security incident response, or by manually editing wp-config.php \u2014 all stored tokens will become invalid. You will need to reconnect your Mastodon accounts under Settings &gt; FediBoost after any salt change. This is standard behavior for WordPress plugins that encrypt sensitive data using the built-in salts.<\/p>\n\n<p>The OpenSSL PHP extension is required for token encryption. If OpenSSL is not available, FediBoost will not be able to store account credentials securely and will display an admin notice.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Delay boost scheduling until after ActivityPub federation completes<\/li>\n<li>Add fallback boost scheduling for older ActivityPub versions<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Automatic boosting of published posts to connected Mastodon accounts<\/li>\n<\/ul>","raw_excerpt":"Automatically boost WordPress posts on connected Mastodon accounts when published via ActivityPub.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/278870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=278870"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kraftbj"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=278870"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=278870"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=278870"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=278870"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=278870"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=278870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}