PHPackages                             notmyhostname/posse - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. notmyhostname/posse

ActiveKirby-plugin[Utility &amp; Helpers](/categories/utility)

notmyhostname/posse
===================

POSSE plugin for Kirby CMS

v1.3.0(1mo ago)18591MITPHPCI failing

Since May 20Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/dewey/kirby-posse)[ Packagist](https://packagist.org/packages/notmyhostname/posse)[ Docs](https://github.com/dewey/kirby-posse)[ RSS](/packages/notmyhostname-posse/feed)WikiDiscussions main Synced today

READMEChangelog (9)Dependencies (7)Versions (10)Used By (0)

POSSE Plugin for Kirby
======================

[](#posse-plugin-for-kirby)

This plugin enables Publish (on your) Own Site, Syndicate Elsewhere (POSSE) functionality for your Kirby site. Automatically syndicate your posts to Mastodon, Bluesky, and Nostr, or manually decide which ones you want to syndicate.

[![Overview](./Overview.png)](./Overview.png)

Features
--------

[](#features)

- Automatically syndicates your posts to Mastodon, Bluesky, and Nostr
- Customizable post template with support for title, URL and tags
- Queue system for managing which posts get syndicated when
- Configurable delay before syndication (To fix typos, etc.)
- Support for syndication image limits (Up to 4 images) and image size presets
- Automated cron job endpoint for scheduled syndication
- SQLite database for storing syndication history and queue

Installation
------------

[](#installation)

1. Download or clone this repository to `/site/plugins/posse`
2. Configure the plugin through the Panel at "POSSE &gt; Settings"

Optional: Add `/site/db/posse.sqlite` and `/site/config/posse.yml` to `.gitignore` for git-based deployment strategies.

Configuration
-------------

[](#configuration)

Everything related to the plugin can be configured through the Kirby Panel. The automated syndication feature requires Basic Auth to be enabled in your config.php:

```
return [
    'api.basicAuth' => true
];
```

### Configuration File Structure

[](#configuration-file-structure)

The plugin stores all settings in a YAML file at `site/config/posse.yml`, making settings persistent even when reinstalling the plugin. The `posse.yml` file contains all plugin settings with the following structure:

```
# Content types to track (post, photo, etc.)
contenttypes:
  post: true
  photo: true

# Delay in minutes before syndication
syndication_delay: 60

# Post template using placeholders: {{title}}, {{url}}, {{tags}}
template: |
  {{title}}

  {{url}}

  {{tags}}

services:
  mastodon:
    enabled: true
    instance_url: https://mastodon.social
    api_token: your-api-token
    image_limit: 4
  bluesky:
    enabled: true
    instance_url: https://bsky.social
    api_token: yourname.bsky.social:1234-4567-...
    image_limit: 4
  nostr:
    enabled: true
    private_key: nsec1...
    relay_url: wss://relay.damus.io
    image_limit: 4
```

Database
--------

[](#database)

The plugin uses SQLite to store the syndication history and queue. The database file is automatically created and located at:

```
/site/db/posse.sqlite

```

This database tracks which posts have been syndicated to which services and manages the queue of pending syndications.

Automated Syndication
---------------------

[](#automated-syndication)

To set up automated syndication with a cron job:

1. Make sure Basic Auth is enabled in your config.php
2. Set up a cron job that runs a few times per hour. In this example every 10 minutes:

```
*/10 * * * * curl -s -u "USERNAME:PASSWORD" "https://yourdomain.com/api/posse/cron-syndicate" > /dev/null 2>&1

```

Replace USERNAME and PASSWORD with your Kirby panel credentials.

For monitoring with Healthchecks.io:

```
*/10 * * * * curl -s -u "USERNAME:PASSWORD" "https://yourdomain.com/api/posse/cron-syndicate" && curl -fsS -m 10 https://hc-ping.com/YOUR-UUID > /dev/null 2>&1

```

Post Templates
--------------

[](#post-templates)

The post template supports these placeholders:

- `{{title}}` - The post title
- `{{url}}` - The URL to your post
- `{{tags}}` - Hashtags generated from the post's tags

Example template:

```
{{title}}

{{url}}

{{tags}}

```

License
-------

[](#license)

MIT License

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance89

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~50 days

Recently: every ~85 days

Total

8

Last Release

56d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/73e54d78caa38061f8b500954f509630c188641aecc64b7b8c1067a190681646?d=identicon)[tehwey](/maintainers/tehwey)

---

Top Contributors

[![dewey](https://avatars.githubusercontent.com/u/790262?v=4)](https://github.com/dewey "dewey (38 commits)")[![maxhoffmann](https://avatars.githubusercontent.com/u/1227441?v=4)](https://github.com/maxhoffmann "maxhoffmann (2 commits)")

---

Tags

blueskyindiewebkirbykirby-pluginmastodonposse

### Embed Badge

![Health badge](/badges/notmyhostname-posse/health.svg)

```
[![Health](https://phpackages.com/badges/notmyhostname-posse/health.svg)](https://phpackages.com/packages/notmyhostname-posse)
```

###  Alternatives

[medienbaecker/kirby-modules

Easily add modules to your pages

895.5k1](/packages/medienbaecker-kirby-modules)[distantnative/retour-for-kirby

Manage redirects and track 404s right from the Kirby CMS Panel

14698.5k1](/packages/distantnative-retour-for-kirby)[belugadigital/kirby-navigation

Kirby 5 field for hierarchical menus with drag &amp; drop level indentation.

8614.7k](/packages/belugadigital-kirby-navigation)[medienbaecker/kirby-alter

242.1k](/packages/medienbaecker-kirby-alter)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
