Clodd CMS

From IndieWeb

Clodd CMS is an open source CMS by Jim Mitchell, written in PHP with a SQLite database. It has its own Micropub server and IndieAuth server, and serves its public pages as static HTML.

Posts and pages are written in Markdown in a PHP admin panel. Publishing generates plain HTML files that Nginx serves directly, so no PHP runs when a visitor reads the site. That makes it a cross between a static site generator and a dynamic CMS: you edit in a dynamic admin, and visitors get static pages.

Clodd CMS is released under the MIT License. Development started in February 2026.

IndieWeb Features

Micropub

Clodd CMS has a Micropub endpoint at /micropub.php, which it advertises with <link rel="micropub">.

  • Create using form-encoded, JSON or multipart requests, including uploading photos with the post.
  • Update, delete and undelete. Deleting a post is a soft delete, so action=undelete can restore it.
  • Queries: q=config, q=source, q=syndicate-to and q=category.
  • Post List: q=source without a URL lists your posts, as in the Query for Post List extension. It supports limit, offset, post-type and post-status.
  • Post types: q=config lists the post types Clodd CMS stores, which are note, article, photo, reply, repost, like and bookmark. Video, audio, RSVP and checkin aren't listed, because the server can't store those yet.
  • Media endpoint at /media.php.
  • Syndication targets: Mastodon, Bluesky and Pixelfed, when they're configured.
  • Scheduled posts: a post sent with a future publish date is scheduled.

IndieAuth

Clodd CMS has its own IndieAuth server, so the site can be used to sign in to IndieAuth apps, and can authorize Micropub clients without using a third-party service.

  • Authorization endpoint (/indieauth.php) with a consent screen. Approving a sign-in needs the admin login, including two-factor authentication if it's turned on.
  • Token endpoint (/token.php) with token revocation and introspection.
  • IndieAuth server metadata document (rel="indieauth-metadata").
  • PKCE using S256.
  • Scoped tokens: create, update, delete and media.
  • A single shared Micropub token can also be generated in Settings, for clients that don't use IndieAuth.

Other IndieWeb features

  • h-entry markup on posts and listings. Short titleless posts, which the admin calls "asides", are marked up as notes with no p-name.
  • POSSE to Mastodon, Bluesky and Pixelfed when a post is first published. Pixelfed only receives photo posts. When a post is edited the copies are updated, and when it's deleted or unpublished the copies are removed. Notes are posted in full as native posts, with no title and no link back. Each post links to its copies under "Also on:".
  • Webmentions: incoming webmentions are received through webmention.io and shown on posts, with reactions shown as avatars and replies as threads. Outgoing webmentions are sent by a command-line script that can run from cron.
  • Feeds: Atom, RSS 2.0 and JSON Feed.
  • Other clients: Clodd CMS also has a WordPress-compatible XML-RPC API, so MarsEdit works with it too.

Clients

These clients have been used with Clodd CMS's Micropub endpoint:

IndieWeb Examples

See Also