Überschrift

My Grav Plugins

Here are all my plugins for the Grav CMS, which also powers this website. The author links to the corresponding repository.

Feed Teasers

Version: 1.0.7 License: MIT
Author: Christian Schmidt

Displays post teasers from external RSS/Atom feeds as clickable tiles.

Tags: plugin rss atom feed teaser grav

Installation

bin/gpm install feedteasers

Changelog

v1.0.7
08/06/2026

  • SSRF protection for feed fetching

Displays posts from external RSS or Atom feeds as clickable teaser tiles (thumbnail, title, and excerpt). If multiple feeds are configured, users can optionally switch between them using tabs. Clicking a tile opens the original article in a new browser tab. The plugin requires no external PHP dependencies; RSS/Atom parsing is handled entirely by built-in PHP functions (SimpleXMLElement, cURL, or a stream context as a fallback).

I developed the new Grav Plugin Feed Teasers because I was missing a functionality in the CMS used here, which I used to use under Wordpress on my blog to point out messages from other websites, or to link to them. Security reports from Heise Security and the news feed of the Tagesschau were already prominently represented on the blog's homepage at that time. Here I also use this option to link the latest posts of this blog on the homepage.

Post in the blog about the plugin.

Page Insights

Version: 3.0.0 License: MIT
Author: Christian Schmidt

Enhanced page and user analytics for Grav, with full support for both the classic Admin (Grav 1.7) and Admin2 (Grav 2.0).

Tags: Analytics Grav Plugin Statistics

Installation

bin/gpm install page-insights

Changelog

v3.0.0
08/13/2026

First release under the name Page Insights. Forked from Page Stats by Nuno Costa after several years without direct maintainer activity; see README for the full history. Feature-wise this corresponds to what was also contributed upstream as Page Stats PR #56 (later merged) - development continues independently here from this point, under a new name.

  1. New
    • feat: translations are now managed via Codeberg Translate (Weblate) - German and French translations added, alongside the English source strings.
  2. Bugfix
    • bugfix: fixed a Class "Grav\Plugin\PageInsights\Stats" not found fatal error on a fresh install/clone. The compiled Composer autoloader (vendor/composer/autoload_*.php) still referenced the pre-rename Grav\Plugin\PageStats namespace and had never been regenerated after the switch to Grav\Plugin\PageInsights - composer.json itself was correct. Fixed via composer dump-autoload; a note was added to CONTRIBUTING.md so this doesn't recur after future namespace/file changes.
    • bugfix: composer.json declared a minimum PHP version of >=7.1.3, but Stats::query() uses str_contains(), which requires PHP 8.0 and has no polyfill in the production dependencies - raised the requirement to >=8.0.
    • fix: corrected a non-existent maintainer contact address (info@jcs-net.de) in blueprints.yaml.
  3. Improvements
    • meta: added Christian Schmidt as a second composer.json author and as a second copyright holder in LICENSE, alongside Nuno Costa as original author.
    • meta: removed five vendor packages (twig/twig, twig/intl-extra, symfony/intl, symfony/polyfill-intl-icu, symfony/polyfill-ctype, symfony/polyfill-php72) left over from an earlier dependency tree and no longer listed in composer.lock; refreshed the lock file's stale content-hash.
    • meta: split the single languages.yaml into per-language files under languages/ (en/de/fr) to enable translation via Codeberg Translate; corrected a few remaining "Page Stats" branding leftovers in the English source strings and the French translation.
    • meta: added CODE_OF_CONDUCT.md, SECURITY.md, and CONTRIBUTING.md, plus issue/PR templates for both Codeberg and the GitHub mirror .

Social Linking

Version: 0.5.2 License: MIT
Author: Christian Schmidt

Embed posts, profiles, and timelines from Mastodon and compatible services as locally cached, theme-compatible links/embeds.

Tags: plugin mastodon activitypub fediverse social embed shortcode grav

Installation

bin/gpm install social-linking

Changelog

v0.5.2
08/04/2026

  1. Security
    • fixed SSRF vulnerability
  2. Bugfix
    • PHP version declaration corrected

Embeds posts from Mastodon (and any service with a Mastodon-compatible client API, such as Pleroma, Akkoma, or GoToSocial) directly into Grav pages. The necessary data is fetched via the API once and then cached as a file in the respective page's folder; subsequent display relies entirely on this local cache rather than fetching live data from the API on every page load.