=== FediStation ===
Contributors: sevenbirds
Tags: fediverse, mastodon, bluesky, social sharing, open social web
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Bring the Open Social Web to your blog. Share to Mastodon, Bluesky, Flipboard, Threads, and Lemmy. Boost articles to FediBoard topic channels.

== Description ==

**FediStation** turns every article on your blog into a node of the Open Social Web. No accounts required for your readers to use the panel — just click and share to the Fediverse network of their choice.

= Features =

* **Side panel** with one-click sharing to Mastodon, Bluesky, Flipboard, Threads, and Lemmy
* **Instance-aware sharing** for Mastodon and Lemmy (visitor picks their home instance)
* **Live FediFind search bar** (optional) — visitors search Mastodon, Bluesky, and Flipboard from your site
* **Channel Boost** (requires free FediBoard account) — push articles to topic-specific Fediverse channels: Travel, Food, Lifestyle, Wellness, Culture, Science
* **FediFind Discoveries** (optional, free) — submit articles to the open-web index at fedifind.com
* **Per-post override** — show or hide the panel on individual posts via metabox
* **No tracking, no third-party analytics, no Google Fonts on the frontend** — your readers' privacy is respected by default
* **Light and dark mode** admin UI

= Why this matters =

The web is consolidating into a handful of closed platforms. FediStation gives WordPress publishers — still the backbone of the open web at ~40% of all sites — a simple bridge to send their content into the Fediverse, where readers and conversations live on user-owned servers and federated protocols.

= Requirements =

* WordPress 6.0+
* PHP 8.0+
* A free [FediBoard](https://fediboard.com) account (optional — only required for Channel Boost)
* A free [FediFind](https://fedifind.com) account (optional — only required for Discoveries submission)

== Installation ==

1. Upload the `fedistation` folder to `/wp-content/plugins/`, or install from the WordPress Plugin Directory.
2. Activate the plugin through the **Plugins** menu in WordPress.
3. Go to **FediStation** in the admin sidebar to configure networks and (optionally) link your FediBoard and FediFind accounts.
4. Done. The side panel appears on all single posts and pages by default.

== Frequently Asked Questions ==

= Do my readers need a FediBoard account? =

No. Anyone can use the share buttons and the FediFind search bar without signing up for anything.

= Does this plugin send data to third parties? =

Yes — see the **External services** section below for a complete list of services contacted, what is sent, and under what conditions. No page-view or visitor data is sent anywhere by default, and no third-party fonts, trackers, or analytics are loaded on the frontend.

= Will it slow down my site? =

The frontend script and stylesheet are ~30KB combined and load asynchronously. The panel mounts in a Shadow DOM so your theme's CSS isn't affected.

= Is FediBack (guest comments via Bluesky) available? =

Not yet — coming in version 2.0. Every Bluesky reply to a boosted post will appear as a guest comment thread on your article.

= Does it work with caching plugins? =

Yes. The plugin attempts to flush common page caches (WP Rocket, W3TC, LiteSpeed, SiteGround Optimizer, Autoptimize, WP Super Cache) on settings save.

== External services ==

This plugin connects to a small number of external services. They are all operated by FediBoard (the plugin's author) and are only contacted under the conditions described below. No service is contacted on every page view, and no visitor data is sent without an explicit user action.

= FediBoard Channel Boost API (api.fediboard.com) =

Used for the FediBoard "Channel Boost" feature, which submits an article to FediBoard topic channels for cross-posting to the Fediverse. Contacted only when an administrator:

* Clicks the **Boost Now** button in the panel — sends the article URL, title, description, featured image URL, optional caption and hashtags, plus the administrator's FediBoard licence key.
* Opens the FediBoard quota indicator — sends the licence key to read the remaining monthly boost count.
* Opens the FediStation settings page when a FediBoard account is linked — sends the licence key to read the current account status and tier.

No data is sent from the frontend or for non-administrator visitors.

Terms & Privacy: https://fediboard.com/legal#fedistation

= FediBoard Panel Banner (fediboard.com) =

When an administrator opens the FediStation side panel on a post, the panel fetches a small JSON configuration file (`/wp-top-banner-section.json`) from fediboard.com to display a rotating notice in the panel header (e.g. links to FediBoard, Ko-fi support). Only the JSON file is fetched — no data is sent, and no cookies are set. The fetch occurs once per panel open.

Terms & Privacy: https://fediboard.com/legal#fedistation

= FediStation Anonymous Usage Stats (api.fediboard.com) =

FediStation sends a very small number of **anonymous, aggregate pings** to api.fediboard.com so we can understand which features are useful and prioritise development. Each ping contains only:

* A randomly generated install UUID (no PII, no IP, no URL, no post title, no domain name).
* The plugin version.
* The event name (e.g. `install`, `boost_submitted`, `fedifind_submitted`).

These pings are fire-and-forget and never delay a page response. To disable all anonymous stats, add this filter to your theme's `functions.php` or a site-specific plugin:

`add_filter( 'fedistation_stats_enabled', '__return_false' );`

Terms & Privacy: https://fediboard.com/legal#fedistation

= FediFind Discoveries (fedifind.com) =

FediFind is the FediBoard-operated open-web discovery index. The plugin contacts fedifind.com only when an administrator takes one of the following actions:

* Submits an article to FediFind Discoveries — sends the article URL, title and hashtags, along with the administrator's FediFind licence key.
* Registers or validates a FediFind account from the FediStation settings page — sends the administrator's email address and the validation code returned by FediFind.
* Loads the panel preview card or boost form — calls FediFind's OG-fetch endpoint (`/api/og-fetch`) with the article URL so that the article's image, title and description can be displayed in a unified way across all FediBoard tools.

No data is sent for non-administrator visitors.

Terms & Privacy: https://fediboard.com/legal#fedifind

== Screenshots ==

1. Admin settings — Networks selection, FediFind search bar option, panel placement controls
2. Frontend panel — share buttons, live search, channel boost (admin only)
3. FediFind submission — already-submitted notice with one-click resubmit

== Changelog ==

= 1.0.0 =
* Initial release.
* Share to Mastodon, Bluesky, Flipboard, Threads, Lemmy.
* Channel Boost integration with FediBoard.
* FediFind Discoveries submission.
* Optional live Fediverse search bar.
* Light and dark mode admin UI.
* Per-post visibility override.

== Upgrade Notice ==

= 1.0.0 =
First public release.

== Privacy ==

FediStation is designed to respect your readers' privacy by default.

* **No frontend Google Fonts** — the side panel uses your visitors' system font stack.
* **No tracking pixels, analytics, or third-party scripts** loaded on the frontend.
* **Outbound HTTP calls only occur** when an explicit action is taken (share, boost, search, FediFind submission).
* **Linked FediBoard and FediFind accounts** are stored as WordPress options and removed on plugin uninstall.

= Anonymous usage analytics =

To help us understand which features are useful and prioritize development, FediStation sends a small number of **anonymous, aggregate pings** to api.fediboard.com. These pings include:

* A random UUIDv4 site identifier (generated once on plugin activation, never tied to your domain, email, or any personal info)
* The event type: install, share click, search submit, boost, or FediFind submission
* For share clicks only: which network (Bluesky, Mastodon, Flipboard, Threads, or Lemmy)

That's it. **No visitor data, no IP, no page URLs, no search queries, no post titles** are ever sent. Pings are fire-and-forget so they never slow down your site.

If you'd prefer to disable analytics entirely, you can do so via WordPress filter:

`add_filter( 'fedistation_stats_enabled', '__return_false' );`

(This filter will be honored from version 1.1 onwards.)