unsubbed.co

Textpattern

Textpattern gives you flexible, elegant and easy-to-use CMS on your own infrastructure.

Open-source content management, honestly reviewed. No marketing fluff, just what you get when you self-host it.

TL;DR

  • What it is: A free, GPL-licensed PHP CMS built around tag-based templating and clean semantic HTML output. No bloat injected into your markup, no vendor lock-in, no SaaS tier to upsell you on [homepage].
  • Who it’s for: Developers and designers who want full control over their HTML and a genuine alternative to WordPress without migrating to a JavaScript-heavy stack. Also: anyone who needs a capable CMS that runs on a $5/mo shared hosting plan with zero containers.
  • Cost savings: There is no SaaS tier to escape — Textpattern has always been free software, and it runs on the same cheap LAMP stack hosting you’ve had since 2004 [homepage].
  • Key strength: Genuinely lean architecture that doesn’t inject framework dependencies, script libraries, or class soup into your rendered HTML. The templates are yours, the output is yours [homepage][README].
  • Key weakness: 859 GitHub stars and a design philosophy that hasn’t fundamentally changed since 2003. The ecosystem is small, there is no REST API worth mentioning, no block editor, no headless mode, and the plugin catalog is a fraction of WordPress’s. This is a tool for people who specifically want it, not a default choice.

What is Textpattern

Textpattern is a PHP CMS that has been in continuous development since 2003 — over 23 years, which makes it older than most of its current users’ professional careers [homepage]. It was originally built by Dean Allen as a blogging platform before “blog” was a word people used without embarrassment, and it has quietly survived the rise of WordPress, the static site generator wave, the headless CMS trend, and the AI-generated content era largely by doing one thing: getting out of the way.

The core premise is simple. You write content in an admin panel. You write templates using Textpattern’s own tag language (TXP tags) — XML-style tags like <txp:article_list />, <txp:if_section>, <txp:image /> — and the CMS assembles pages by substituting those tags with real content at request time. There are no page builders, no Gutenberg-style blocks, no drag-and-drop sections. The HTML in your templates is the HTML that goes to the browser [homepage][README].

The project describes itself plainly as “A flexible, elegant, fast and easy-to-use content management system written in PHP” [README]. The homepage tagline is “The small content management system that can handle big ideas” [homepage]. Both are accurate and neither oversells it.

As of this writing, the current production release is 4.9.1 (February 2026), with 4.9.0 adding PHP 8.5 and MySQL 8.4 support released in December 2025 [homepage]. The software is GPL-2.0 licensed, fully open source, and has no commercial entity behind it — development is community-driven and funded by donations and GitHub sponsors [README][homepage].


Why people choose it

Textpattern has never been a popular choice in the sense that WordPress or Ghost are popular. Its 859 GitHub stars put it firmly in the “specialist tool” bracket — Ghost has 46K+ stars, WordPress’s GitHub mirror has 19K+. People who end up at Textpattern do so deliberately, usually after being burned by one of the alternatives.

The WordPress escape route. A meaningful slice of Textpattern’s users are former WordPress users who hit a point where WordPress’s weight became the problem. WordPress installs jQuery on every page by default. It forces you into a block editor model whether you want it or not. Every plugin you add is another vector for PHP execution and another wp_enqueue_script() call. Textpattern explicitly refuses this philosophy: “it doesn’t muddy your HTML with additional code dependencies or script libraries” [homepage]. If you need a CMS for a small-to-medium editorial site and you care that the rendered HTML is clean enough to be proud of, Textpattern’s architecture delivers that in a way WordPress no longer does without significant effort.

The shared-hosting reality. Not every deployment needs or wants Docker, Kubernetes, or a container orchestration platform. Textpattern runs on PHP + MySQL on any standard shared host — DigitalOcean, Namecheap, Hostinger, whatever your registrar offers for $3-8/mo. No memory requirements beyond the default PHP FPM pool, no Redis, no message queues. For a founder or freelancer who manages sites for clients who can’t afford a VPS, this is a material advantage [README].

The longevity argument. Twenty-three years of releases without a corporate acquisition, a pivot, or a licensing change is a credible signal. The GPL-2.0 license means the software is yours and the code will never be relicensed away from you [homepage][README]. There is a meaningful community (the support forum at forum.textpattern.com sees active posts as recently as March 2026 [homepage]) and an “Awesome List” of community resources maintained on GitHub.

The template philosophy. Textpattern’s tag-based templates produce markup you write. There’s no theme layer injecting wrapper divs, no “Customizer” generating inline CSS, no plugin leaving <!-- WP_DEBUG --> comments in your source. Designers who care about the output — not just the content — appreciate this enough to stick with it for over a decade.


Features

Based on the README, website, and current release documentation:

Core publishing engine:

  • Multi-section, multi-category content architecture [README]
  • Full article lifecycle: draft, pending, live, sticky [README]
  • Custom fields on articles [README]
  • Media library with image management [README]
  • File downloads management built-in [README]
  • Link management section [README]
  • Comments system built-in [README]

Templating:

  • Tag-based template language (TXP tags) — conditional tags, form snippets, loops [homepage][README]
  • Pages, sections, and forms map to a logical hierarchy [README]
  • No framework-specific markup injected into output [homepage]
  • Custom form includes for template reuse [README]

Content formatting:

  • Built-in Textile support (the markup language Dean Allen also created) [homepage]
  • Markdown via plugin [homepage]
  • Plain HTML input also supported [homepage]

Multi-site and localization:

  • Multi-site functionality supported in tar.gz/.xz archive builds [README]
  • UI localized into 50+ languages via Crowdin translation project [README][homepage]

Extensibility:

  • Plugin architecture with hundreds of community plugins [homepage]
  • Active plugin authors, though no central curated repository with quality metrics [homepage]
  • No official REST API; external integration relies on plugins [data not available in provided sources]

Admin interface:

  • Clean, minimal admin panels with accessibility as a stated design goal [homepage]
  • “We try to avoid needless clutter” — this is the actual design philosophy [homepage]

What it doesn’t have (relevant for 2026 evaluation):

  • No block/visual editor (no Gutenberg equivalent)
  • No Docker-native deployment path or Compose file in the repository
  • No GraphQL or REST API in core
  • No headless/decoupled mode
  • No managed hosting or SaaS tier
  • No built-in image optimization pipeline
  • No built-in caching layer

Pricing: SaaS vs self-hosted math

This section is short because Textpattern doesn’t have SaaS pricing. There is one tier: free.

Textpattern itself: $0. GPL-2.0. Download, install, done [homepage][README].

What you actually pay:

OptionMonthly costNotes
Shared LAMP hosting$3–8/moHostinger, Namecheap, SiteGround; often includes MySQL and cPanel
Budget VPS (DigitalOcean, Hetzner)$4–6/moMore control, same stack
Managed WordPress.com equivalentN/ATextpattern has no managed cloud offering

Compare this to Ghost Pro, which starts at $9/mo and scales to $25–$199/mo depending on traffic and members. Or WordPress.com Personal at $4/mo (but locked into WordPress’s ecosystem). Textpattern self-hosted on shared hosting is cheaper than either, indefinitely, with no upsell path because there is nothing to upsell [homepage].

The catch: there is no safety net. No support team, no automatic backups in the control panel (unless your host provides them), no SLA. You’re running community-supported software on infrastructure you manage. For experienced developers this is a feature. For non-technical founders, it’s a risk calculation.


Deployment reality check

Textpattern’s deployment model is traditional and deliberately so. The install path has not changed substantially in 20 years: download the archive, upload files via FTP or SSH, create a MySQL database, run the install script at /textpattern/setup/, follow a five-step wizard [README].

What you need:

  • PHP (vendor-supported versions; Textpattern 4.9.x supports PHP 8.x) [README]
  • MySQL (Textpattern 4.9.0 added support for MySQL 8.4) [homepage]
  • Apache or Nginx (standard config, no exotic modules) [README]
  • A web host — shared or VPS both work

What can go sideways:

  • No Docker Compose file ships with Textpattern. Setting up a containerized local dev environment requires rolling your own — there are community Docker images, but nothing officially maintained by the project.
  • The plugin ecosystem has no official quality scoring, versioning guarantees, or security audit process. Installing plugins requires judgment about author reputation and code quality that WordPress’s plugin directory at least attempts to provide via ratings and active install counts.
  • The TXP tag language has a learning curve. If you’ve spent three years in WordPress templates with PHP, you’ll find the tag approach different enough to slow you down initially.
  • The project has no commercial backing, which means security patches depend on volunteer availability. The 4.9.1 release was explicitly a “security fixes, patches and tweaks” release [homepage] — the project does patch security issues, but the response timeline is community-paced.
  • Multi-site functionality requires the tar.gz or tar.xz archive specifically — not all hosts make this obvious [README].

Realistic time estimate for a developer: 20–40 minutes to a working installation on a fresh shared host. Realistic time to a production-quality site with custom templates: significantly longer, because you’re writing templates from scratch using TXP tags you’ll need to learn.


Pros and cons

Pros

  • Genuinely free, genuinely open. GPL-2.0 with no commercial tier to guilt-trip you into, no “Community Edition” with features arbitrarily cut [homepage][README]. The software you download is the complete software.
  • Clean HTML output. The CMS does not inject framework dependencies, inline styles, or JavaScript libraries into your pages unless your templates include them. Your markup is your markup [homepage].
  • 23 years of stability. The architecture, the database schema, the tag language — these have evolved without breaking. Textpattern sites from 2010 can often be upgraded to 4.9.x [homepage].
  • Minimal server requirements. Runs on the cheapest shared hosting. No Redis, no container runtime, no Node.js sidecar [README].
  • 50+ language admin UI — well above most niche PHP CMSes [homepage][README].
  • Active community for its size. The forum shows recent posts as of March 2026 [homepage]. For a project with 859 GitHub stars, that’s notable.
  • Multi-site support built into the standard distribution [README].

Cons

  • 859 GitHub stars. This is not a number problem in isolation — it’s a proxy for ecosystem health. Fewer stars means fewer plugin authors, fewer tutorials, fewer Stack Overflow answers, fewer third-party integrations. If you hit an edge case, you may be on your own [merged profile].
  • No REST API in core. You cannot easily connect Textpattern to a headless frontend, mobile app, or automation tool without third-party plugins. This is a meaningful architectural limitation in 2026 [data from profile analysis].
  • No block editor. The admin interface is functional and clean, but content editing is text-field-based. Non-technical clients accustomed to Squarespace’s drag-and-drop or WordPress’s Gutenberg will find this jarring.
  • Plugin ecosystem is small and unpoliced. Hundreds of plugins exist [homepage], but there’s no install-count data, no automated compatibility testing, no security review pipeline. You are trusting individual authors.
  • No official Docker support. Modern development workflows expect a Compose file. Textpattern doesn’t provide one [README analysis].
  • Zero commercial backing. No company is paid to fix critical bugs on a deadline. Security patches arrive on volunteer time [homepage].
  • Not designed for headless/JAMstack. If you want to use a React or Svelte frontend pulling content from an API, Textpattern is the wrong tool — use Ghost, Strapi, or Directus.

Who should use this / who shouldn’t

Use Textpattern if:

  • You’re a developer or designer who writes templates by hand and wants a CMS that respects your HTML.
  • You’re running a content site (blog, editorial, portfolio, small publication) that doesn’t need a visual page builder.
  • You need something that works on a $5/mo shared host with no container overhead.
  • You value long-term software stability and are comfortable with community support.
  • You specifically want GPL-2.0 licensed software with no commercial tiers and no relicensing risk.

Skip it (use WordPress) if:

  • You need a large plugin ecosystem, e-commerce integrations, or page builder support.
  • Your clients expect a familiar visual editor.
  • You want a CMS with a commercial support option.

Skip it (use Ghost) if:

  • You’re building a modern publication or newsletter-based business.
  • You want a polished editing experience and managed hosting with auto-scaling.
  • You want a built-in membership/subscriber model.

Skip it (use Statamic or Kirby) if:

  • You want a flat-file or more modern PHP CMS architecture with first-class REST APIs and a design community around it.

Skip it (use Strapi or Directus) if:

  • You need a headless CMS with a proper REST or GraphQL API for a decoupled frontend.

Alternatives worth considering

  • WordPress — the obvious comparison. Much larger ecosystem, page builder support, managed hosting options. The cost of that is complexity and code bloat that Textpattern deliberately avoids. GPL-2.0 as well.
  • Ghost — modern, Node.js-based, built for publishing and newsletters. Open source core with a well-funded commercial SaaS tier. Much larger community. Better fit if you want a contemporary writing/publishing platform.
  • Kirby — commercial license ($99/site for commercial use), flat-file or database, excellent template flexibility, actively developed. A more modern equivalent if you like the “developer controls the output” philosophy.
  • Statamic — commercial PHP CMS (free for solo, paid for teams), Laravel-based, flat-file option, REST API, strong developer tooling. Worth serious consideration over Textpattern for new projects.
  • Grav — free, flat-file, PHP, no database required, active development. Easier self-hosting, similar philosophy.
  • Hugo — static site generator. If Textpattern’s appeal is clean HTML output and simplicity, Hugo goes further in the same direction by eliminating the server-side PHP runtime entirely.

For a non-technical founder specifically, none of these are the “obvious” choice over Textpattern because none of them are obviously simpler. The honest advice is: if you need a simple blog and don’t have developer time, Ghost.io’s free tier or a $9/mo Ghost Pro plan will give you a better experience. Textpattern rewards people who are comfortable in a code editor and want to stay there.


Bottom line

Textpattern is one of the most honest pieces of CMS software in existence: it is exactly what it says it is, charges you nothing, and has been doing it since before most of its alternatives were founded. The 859 GitHub stars are not a sign of failure — they’re a sign of a small, self-selected community that specifically chose this tool after considering alternatives. For that community, Textpattern delivers on its promise: clean output, tag-based templates you control, cheap hosting requirements, and software that will not change its license or get acquired.

For anyone else — particularly non-technical founders looking to escape SaaS bills — the math doesn’t work in Textpattern’s favor the way it does for tools like Activepieces or Nextcloud. There’s no SaaS to escape from. The tool is free. The limiting factors are the small ecosystem, the absent REST API, and the learning curve of a 23-year-old template language. If you want a PHP CMS with clean HTML and can spare two days to learn TXP tags, Textpattern is a serious choice. If you want something with a 2026 developer experience and a path to headless, look at Statamic or Ghost.


Sources

  1. Textpattern CMS Official Website — Homepage, feature overview, blog announcements (4.9.0, 4.9.1). https://textpattern.com/
  2. Textpattern GitHub Repository README — System requirements, installation instructions, development roadmap (v4.9.1, GPL-2.0). https://github.com/textpattern/textpattern

Features

Integrations & APIs

  • Plugin / Extension System