Skip to content

Free and PRO ​

PageBlocks ships as two packages: free and paid. Not two sources, but one tree built from two different sets of files — the free build has the paid controllers, routes, tab panels and the license check itself cut out of it. The paid parts are not locked, they are simply not there, so there is nothing to patch.

What the (PRO) mark means

Pages and sidebar entries marked (PRO) describe what the paid build adds. Everything without the mark is in the free build too.

What the free build looks like from the inside

The rule is hide the capability, not the mention of it. The paid tabs and buttons stay where they are and show a padlock with a line about what they do; the API and Multilingual menu entries stay in the menu for the same reason — you open them and see what the money buys.

The code behind them is another matter: in the free build the paid routes are not registered at all, so a request straight to one of them is an ordinary 404, not a "payment required". There is no runtime switch to flip, which is the whole point.

Where the line runs ​

Creating a table is free; building a managed section around it is paid.

That is the exact wording, and it is worth sticking to. The table and column constructor is free: you can create a table, describe its fields, put data in and render it with a snippet without paying anything.

What costs money is the apparatus that turns a table into a section an editor runs rather than a developer: a menu entry, schema changes from the manager, filters and search across thousands of rows, moderation, versions, your own buttons over a row, publishing over an API.

The slogan "pages are free, data is paid" is wrong

It has a nice ring to it and it has already misled people. Data — tables, columns and entering values — is free. What is paid is not the data itself but managing the section around it.

What the free build includes ​

  • The constructor — blocks, tables, fields, columns, tabs. Describe a section, describe a repeating structure, put them on a page.
  • The whole framework — models, routing, templates, file migrations, the request and response layer. It is not divisible: the blocks themselves stand on it.
  • The snippets — pbList, pbBlocks, pbResources, pbUsers, pbMenu, pbFilters, pbJson, with default chunks and one consistent &tpl meaning.
  • The recycle bin — a deleted block, row or field can be brought back.
  • Entering and exporting data — filling tables, uploading files and images, galleries, importing rows into a table, exporting a table.
  • Response cache and rate limiting — framework services, with no lock on them.
  • Mail: journal, queue, retry — deliberately unlocked. What is paid is running a section; mail is infrastructure, and a site on the free build needs to see whether a message went out just as much as anyone else.
  • PDF output, guest ownership by cookie, presets, the annotation generator.
  • 30 of the 39 field types — the whole everyday set: text, numbers, choices, files, images, video, dates, a table inside a block.

That is a working page builder, not a demo. A site can be built and run on it.

What PRO adds ​

CapabilityWhat it gives you
Resource and user sectionsYour own fields on the MODX resource and user forms
Menu builderThe site menu from the manager: entries, nesting, permissions
Migrations from the managerChange your tables' schema and get models without opening an editor
Import an existing tableDescribe a table the database already has: fields and grid columns are read off the schema
Filters and global searchFinding a row in a table of thousands
ModerationNew rows wait for review before they go live
Custom table actionsYour own buttons over a row or a selection, calling your controller
Reusable blocksOne block on many pages: edited in one place, changed everywhere
VersionsA change history for blocks and tables, with rollback to any snapshot
Routes and redirectsManaged from the manager instead of code
REST API with tokens and API docsPublishing an object to outside clients, with permissions and an expiry
Multilingual and translatorsPer-language values and machine translation
Constructor backupThe whole construction as one file: development to production
UTMDifferent blocks for different campaigns
Nine field typesSee below

The Block library is a different thing, and it arrives in 3.1

Reusable blocks in the list above work today. The "Block library" is something else: a gallery of ready-made blocks you add a block to the page from. That is a 3.1 task, and it will be paid as well.

The old readyblocks field type has been removed from the component: it never worked for a single day. Blocks inside a record are a live field type — Blocks — and it is paid.

The paid field types ​

Nine of the thirty-nine. They appear in the type list with a padlock rather than being hidden: a type that has been removed tells you nothing about itself.

Relationship · Gallery · Map · Blocks · Key-value · JsonGrid · Status · Composite · EditorJS

The Table field is deliberately free

The "Tables" tab is in the free build, and without the field that attaches a table to a block it would be half useless.

Moving from free to paid ​

  1. Buy a license — you receive an api_key.
  2. Install the paid package over the free one: to MODX that is an update, since the editions share a package name.
  3. Paste the key into the Customer API key field in the install window.
  4. Clear the MODX cache and reload the manager with Ctrl+F5.

There is no need to uninstall the free version. You do not have to name your domain when buying — the component supplies it itself.

Your data stays where it is

The update copies files and creates the missing settings; it does not touch database rows. Blocks, tables, fields and their contents stay exactly as they were.

More about the key on the License page, step by step on Installation.

© PageBlocks 2019-present