content management system

A  content management system  (often abbreviated as CMS ) is software used to create, enter, edit, update, delete content on websites; some CMSs are used for IndieWeb sites, see the tables on this page for current usage.

Why
CMS are meant to make creating and managing content easier. In many ways, they can give you the ease-of-use that silos generally provide. In addition, a CMS usually comes with well defined structures for your content and with plugins to give you indie functionality such as webmentions. If a CMS isn't good enough to change your behaviour to post to your own site first / instead of a silo (e.g. plenty of "old school" bloggers that tweet but fail to post notes on their own site), then that CMS is not good (and you should thus write your own or improve another, whichever is easier.).

To CMS or not to CMS?
Using an existing, proven CMS can be the most effortless way of getting an indieweb site, though it nearly always requires a little bit of tinkering.

 Nearly all CMSs have a web-based editor that is easy to use for creating, updating, deleting posts, whereas SSGs typically* require you to edit text files, often in Markdown format, and deal with syncing them to your server, regenerating, and setting up / maintaining external services for features like Webmention sending/receiving, Micropub support etc. *There are also static site CMSs with the friendly user interface of a CMS combined with the freedom of not needing to "run" a CMS to serve your pages/posts.

Many members of our community use a CMS. However, many don't. Some use static pages which they edit in an editor or use a static site generator (SSG). While not as convenient as a CMS, those solutions may work just as well for you.

Use an existing CMS or write your own?
"'Hmmm I want to write a blog post maybe I should build my own blogging engine' — @iamdevloper 2021-04-09"

The question of whether to use an existing CMS or to write your own could (and should) be expanded to:
 * Service. Using a service like micro.blog, Tumblr, Blogger)
 * CMS. Setup and maintain a CMS like one listed in the below
 * SSG. Setup and maintain and tinker with a static site generator (too many to list)
 * Write your own CMS (or SSG, or some other approach!), inspired by existing projects

Why re-use a CMS
Why you should re-use an existing CMS, and help contribute to it:
 * There's no way around a little bit of tinkering. But using an existing, proven CMS can be the most effortless way of getting an indie website.
 * Leverage the fruits of labor (millions of hours!) other people and CMS communities have invested.
 * Benefit from domain experts in those communities. Watching for exploits and quickly shipping security patches is a key example. Small independent CMSes may generally be smaller targets, but are also less secure and hardened.
 * Spend your time and energy on other projects that are more likely to be adopted by others and benefit the community
 * It takes a large amount of duplicated effort to get even a *barely* decent CMS, and almost all of that effort is duplicated
 * It's usually a better use of effort, more collaborative and inspiring, and more community-oriented to join and improve an existing CMS like Known than build your own from scratch
 * If you're not scratching your own itches as easily or fast as you'd like or making your CMS as or more awesome/beautiful than silos, then yes, stop writing your own CMS and use an existing one.

Why write your own
Why you should write your own CMS for your personal web site, in short:
 * Scratch your own itches
 * As long as people are posting to silos *instead of* posting to their own site, we lack good CMSs, and you should help by starting with your own.
 * Make it as awesome / beautiful or more than any silo you currently use
 * Nearly all existing CMSs suck at UI/UX compared to silos.
 * A "barely decent" CMS may be exactly what more people can use - not these overdesigned behemoths that require nasty sysadmin work and have tons of regular security exploits
 * People here have built amazing things because they started with the freedom and low learning curve of their own CMS
 * More CMSs means more ways to rapidly iterate with UI - catching up in UI/UX is the #1 thing we're behind on compared to silos
 * Existing communities tend to be monoculture laden and slower to change, slower to iterate, and may not share your priorities (e.g feature parity with silos).

From Twitter:
 * https://twitter.com/helenhousandi/status/998379752133218305
 * "By age 35, you should have written your own CMS at least once." @helenhousandi May 20, 2018

Articles advocating your own

 * 2003-04-23 Jeffrey Zeldman Unsyndicate
 * 2003-04-23 undefined Rolling your own

Examples
A list of CMS that IndieWeb community members use and which you too can use!

If you use any of these, please also add yourself to the rightmost column (bolded if you're a founder/primary developer of that CMS), and to the IndieWeb Examples section of that CMSs page.

Please also see our projects where community members show how their sites are built.

There's more. Please help keep this register updated. Here is a list of all pages marked as CMSes in the wiki:

To add to this list, create a page for the CMS and include

These should be added to the table above:

Microblog.pub
microblog.pub is self-hostable, single-user, IndieWeb friendly microblogging open source software based on ActivityPub which supports many IndieWeb building blocks including IndieAuth, microformats2, Micropub, and Webmention. See also documentation at https://sr.ht/~tsileo/microblog.pub/

Elgg
Elgg is a self-hostable social networking CMS. As of 2023-01-03 it can support microformats2, Webmention, and Microsub via a plugin.

Private Examples
Some CMS are used by indieweb community members but are not (yet?) available for others to install or use. They're still good to check out for ideas:

Other Examples
Some CMS are not currently used by any indieweb community members may be available for others to install or use. Take a look and if you use one of these, move it to the first table, and add yourself in the right column!