plugin-icon

Post Kinds for IndieWeb in Block Themes

Track what you listen to, watch, read, play, and experience — all from your WordPress site, with full block editor support and IndieWeb microformats.
Version
1.0.0
Last updated
Jul 20, 2026
Post Kinds for IndieWeb in Block Themes

Post Kinds for IndieWeb in Block Themes is a block-editor successor to the classic Post Kinds plugin.

A post kind is a label that describes what a post is — a note, a check-in, a song you listened to, a movie you watched — rather than what it’s about. The idea comes from the IndieWeb movement: publish your activity on your own site instead of (or in addition to) social networks and tracking apps.

The original Post Kinds plugin was built for the Classic Editor. This plugin is built for the block editor and block themes.

What you get

  • 25 custom blocks — 22 editor blocks (card blocks for most kinds, plus utilities like Star Rating, Media Lookup, Check-in Dashboard, Check-ins Feed, and Venue Detail) and 3 server-rendered blocks (Now Playing, Media Stats, Recent Kinds)
  • API-powered search — find music, movies, books, games, and venues directly from the editor
  • Bulk import — pull in your history from Last.fm, Trakt, Hardcover, and more
  • Real-time scrobbling — webhooks for Plex, Jellyfin, Trakt, and ListenBrainz. Scrobbling means automatically logging each song or show as you play it.
  • microformats2 markup on every post. Microformats are standard HTML classes that let other IndieWeb sites and tools read your posts as structured data — a listen, an RSVP, a check-in — instead of plain text.

Post kinds

  • Listen — music, podcasts, and audio (MusicBrainz, ListenBrainz, Last.fm)
  • Watch — movies, TV shows, and videos (TMDB, Trakt, Simkl, TVMaze)
  • Read — books and articles (Open Library, Google Books, Hardcover)
  • Checkin — places and venues (Foursquare, OpenStreetMap), with per-post location privacy
  • Play — video games and board games (RAWG, BoardGameGeek)
  • Eat / Drink — food and beverages
  • Jam — music you love, with oEmbed previews
  • RSVP — event responses (yes, no, maybe, interested, remote)
  • Like, Reply, Repost, Bookmark — IndieWeb interactions
  • Favorite, Wish, Mood, Acquisition — personal tracking

Each kind gets its own archive page (for example /kind/listen/), and the kind is set automatically from the first card block in a post — or pick it yourself in the Post Kind editor panel.

Import and sync

  • Bulk import from ListenBrainz, Last.fm, Trakt, Simkl, and Hardcover
  • Webhooks for Plex, Jellyfin, Trakt, and ListenBrainz
  • Background processing via WP-Cron for large imports, with duplicate prevention on re-imports
  • Optional syndication (POSSE) — post on your own site first, then send a copy to Last.fm, Trakt, or Foursquare. Off by default; nothing is sent unless you enable it.

Works with

  • Micropubrequired for posting from Micropub apps. This plugin doesn’t implement the Micropub endpoint itself; install the Micropub plugin (plus IndieAuth for authentication), and this plugin converts incoming posts into the right card block and kind.
  • IndieBlocks — detected and recommended, not required. It provides companion blocks (Facepile, Location, Syndication, Link Preview); this plugin doesn’t implement those features itself.
  • Webmention — detected on the Integrations settings tab. Cross-site conversations come from that plugin, not this one.
  • Syndication Links, Post Formats for Block Themes, Bookmark Card — detected and enhanced when present.
  • ActivityPub — a recommendation only; this plugin contains no ActivityPub integration.

Conflicts

  • Post Kinds (indieweb-post-kinds) — hard conflict. Both plugins register the same kind taxonomy, so this plugin refuses to run while the classic Post Kinds plugin is active and shows an admin notice instead. Deactivate one of them.

External services

This plugin integrates with external services for media metadata lookups, history imports, scrobbling, and syndication. Every connection is optional: nothing is contacted until you enable a service, save its credentials, use its lookup, or paste one of its links. What follows lists each service, what is sent and when, and its terms and privacy policy.

Media lookup services (used when you search from the editor, Quick Post, or the Media Lookup block)

Each lookup sends your search text (a title, artist, venue name, or similar) plus your stored API key or credentials for that service, only at the moment you run a search or refresh metadata.

  • MusicBrainz — music metadata (albums, artists, recordings). Also sends the app name/contact you configure, per their API etiquette. Terms, Privacy.
  • TMDB (The Movie Database) — movie and TV metadata and artwork. Terms, Privacy. This product uses the TMDB API but is not endorsed or certified by TMDB.
  • TVMaze — TV show metadata. Terms, Privacy.
  • Google Books — book metadata. Terms, Privacy.
  • Open Library (Internet Archive) — book metadata and covers. Terms and privacy.
  • Hardcover — book metadata and reading data. Terms, Privacy.
  • Podcast Index — podcast and episode metadata. Terms, Privacy.
  • RAWG — video game metadata. Terms, Privacy.
  • BoardGameGeek — board game metadata. Terms, Privacy.
  • Foursquare — venue search for check-ins (sends your search text and, when you allow it, coordinates to find nearby venues). Terms, Privacy.

Connected accounts (used for history imports, scheduled sync, scrobbling, and syndication)

When you connect an account, the plugin stores your token and, on import, scheduled sync, or when you publish a post with that service’s syndication toggle on, sends the data needed for that action (your listen/watch/check-in details, plus your token).

  • Last.fm — listening history import and scrobbling your listen posts. Terms, Privacy.
  • ListenBrainz — listening history import and scrobble submission. Terms, Privacy.
  • Trakt — watch history import, sync, and check-ins. Terms, Privacy.
  • Simkl — watch history import and sync. Terms, Privacy.
  • Untappd — drink check-in import. Terms, Privacy.
  • Foursquare/Swarm — check-in import via OAuth. Terms, Privacy.
  • Readwise — reading highlights import. Terms, Privacy.

Geocoding and maps

  • Nominatim (OpenStreetMap Foundation) — converts a check-in’s coordinates or place text into an address (and back). Sends the location you’re checking in to and the contact email you configure, only when you create or edit a check-in that needs geocoding. Usage policy, Privacy.
  • OpenStreetMap embeds — when a published check-in shows a map, the visitor’s browser loads an embedded map from openstreetmap.org containing that check-in’s coordinates. Site visitors’ browsers connect to OpenStreetMap when viewing those posts. Terms, Privacy.

Link identification

  • Letterboxd — when you paste a Letterboxd link into a watch post, the plugin fetches that page once to identify the film. Only the URL you pasted is requested. Terms, Privacy.

Book previews

  • Amazon Kindle previews — when you paste an Amazon or Kindle book link into a read post (or a bulk import creates one), the post can embed that book’s preview from read.amazon.com. The preview frame is loaded by the editor’s and site visitors’ browsers directly from Amazon, with only the book’s ID in the URL; the plugin itself sends nothing to Amazon. Conditions of Use, Privacy Notice.

Inbound webhooks (no data sent)

Plex, Jellyfin, Trakt, ListenBrainz, and OwnTracks scrobbling works through webhooks: those services send data to your site at the secret URL you configure. The plugin makes no outbound request to them for this feature.

AI features

The optional AI enhancements use the WordPress AI Client bundled with WordPress 7.0+, which routes requests to whatever AI provider the site administrator has configured in WordPress itself. This plugin does not contact any AI service directly and sends nothing unless you invoke an AI action.

Privacy Policy

This plugin:

  • Stores all post data locally in your WordPress database — no custom tables
  • Makes API calls to external services only when you search for media, paste a media URL, run imports, or receive a webhook
  • Does not track users or send analytics
  • Stores API keys and OAuth tokens in the WordPress options table; they are removed when you uninstall the plugin
  • Sends your activity to Last.fm, Trakt, or Foursquare only when you enable those syndication toggles

External services contacted (when you use the matching feature):

  • MusicBrainz / ListenBrainz — music metadata (no API key required)
  • Last.fm — music metadata and scrobbling history
  • TMDB — movie and TV show metadata
  • Trakt / Simkl / TVMaze — movie and TV tracking
  • Open Library / Google Books / Hardcover — book metadata
  • RAWG / BoardGameGeek — game metadata
  • Podcast Index — podcast metadata
  • Foursquare — venue information
  • OpenStreetMap / Nominatim — geocoding and map data
  • Letterboxd — fetched when you paste a Letterboxd URL into a Watch Card, to find the matching movie
  • Amazon (read.amazon.com) — Kindle book previews embedded in read posts load in the browser directly from Amazon

Each external service has its own privacy policy. API calls retrieve public metadata for the items you look up.

Credits

  • Author: Courtney Robertson
  • Original plugin: Post Kinds
  • Built for the IndieWeb community
  • Uses open data from MusicBrainz, TMDB, Open Library, RAWG, OpenStreetMap, and other services
Freeon paid plans
Tested up to
WordPress 7.0.2
This plugin is available for download for your site.