WORDPRESS PLUGIN

Your AI builds it.
Wonderful Relations
keeps it in shape.

Data apps inside WordPress – CRMs, member portals, registrations, dashboards – built from projects, entities, queries, forms and views instead of piles of generated code. Your AI assistant builds and changes them from the command line. Every change stays structured, versioned and portable to the next install.

Current version 1.0.77 · WordPress 6.4+ · PHP 8.2+

THE PROBLEM

Fast to build. Hard to keep.

An AI assistant writes a working form, a table and an admin page in minutes. Six months later you have a dozen of those, each with its own tables, its own queries and its own idea of what a “customer” is. Nobody knows which code is still used, and every change risks breaking something you cannot see.

Generating code has become cheap. Keeping structure has not.

Wonderful Relations is the structure. Data, relations, queries and views are stored as configuration with stable identities. You change the model, not a pile of files – and you can see, review and ship every change.

HOW IT WORKS

Start with the data.
Build up from there.

Wonderful Relations is a framework for data applications on top of WordPress. You define your data, how it relates, and what people do with it – layer by layer, in the WordPress admin. Underneath is a clean relational database with real tables, so you are not writing query after query by hand.

06 · Bundles

The whole application as one JSON file with stable UUIDs. Import it on another install and it updates the right rows.

05 · Views

DataTables, templates, dashboards and PDF templates show the results. Embed them with a shortcode or as an admin page.

04 · Queries

Fields, joins, filters, grouping and unions are configured, not typed. Queries reuse other queries and are cached.

03 · Forms

Every form writes into its own database table, not into post meta. The table is created for you.

02 · Entities and relations

Describe your data: people, courses, invoices. Relations are links Wonderful Relations manages – no join tables, no insert/update/delete code.

01 · WordPress – the foundation

Users, roles, login and the admin come from WordPress. Wonderful Relations builds on them instead of rebuilding them.

Docs: Entities · Forms · Queries · Views · Bundles

FOR YOUR AI

Post this to your AI agent

Wonderful Relations works with AI coding assistants that can run shell commands, such as Claude Code or Codex. Your assistant uses WP-CLI on your WordPress install and a skill file that explains the model, the build order and the common mistakes. Copy this into your agent once.

1

Install Wonderful Relations on your WordPress site and make sure WP-CLI works. During early access you get the plugin once your spot is ready – join the waitlist.

2

Copy the text below into Claude Code, Codex or another assistant with shell access.

3

Ask for what you need – your agent builds it, you review it in WordPress.

SETUP FOR YOUR AI AGENT

Set up Wonderful Relations for me.
1. Check that you can run WP-CLI against my WordPress site: run `wp plugin get wonderful-relations --field=version`. If WP-CLI or the plugin is missing, tell me and stop.
2. Run `wp wr agent skill install --dir=.claude/skills/wonderful-relations` and read SKILL.md in that folder.
3. Run `wp wr agent health-check` and show me the result.
4. Then build what I describe, following the skill's build order: group → project → entity → query → form → datatable → template → service. Verify every create with a get, and never write into the project "wonderful_relations".

Then ask for what you need, for example

“Build a course registration: courses, participants, a sign-up form and a list of participants per course with a waiting list.”

“Add a status to registrations – open, confirmed, cancelled – with coloured badges in the list and a filter.”

“Add a CSV download to the participant list.”

“Export the project as a bundle so I can install it on the staging site.”

FILMS

Watch it work

FILM 1 · BUILD

Your AI builds a data app, you keep the structure

From a one-paragraph request to a working course registration: entities, relations, a form and a list, created step by step and visible in WordPress.

FILM 2 · CHANGE

Change it without breaking it

A new requirement arrives. The model changes, the bundle is exported and the same change lands on a second install without touching its data.

FILM 3 · SEE

See the whole app at a glance

Queries with their SQL preview, lists with sub-tables, dashboards per user group: what the app does, without reading code.

WHAT IT DOES

What it does

Forms that write real tables

Each form stores its entries in its own database table, created for you, or in WordPress options for settings pages. Twenty field types – from date and file to signature pad and rich text – validation, and optional change history per entry.

Relations without join tables

Link records one-to-many or many-to-many, with a role on the link itself – a person can be a participant in one course and on the waiting list of another. Wonderful Relations creates, updates and removes the links.

Queries you configure, not type

Fields, joins, where, group by, having, unions and sub-queries in a structured editor. Preview the generated SQL and run EXPLAIN before you use it.

Tables for large data

DataTables load only the current page from the server, with search, filters, footer sums and a sub-table per row. One click exports the filtered result to Excel.

Templates and dashboards

Nest templates, place lists, forms and buttons, and embed the result with a shortcode on a page or in the WordPress admin. Services turn templates into dashboard entries.

PDF documents from your data

Combine static pages and data-driven sections – a cover, a participant list that runs over several pages, your terms – into one PDF.

Permissions beyond WordPress roles

Groups decide who sees which template, button and dashboard service. Redirects send each group to the right page after login, after logout or when access is denied.

No overwritten entries

When someone opens an entry, it is locked for everyone else, and the lock shows who is editing. Administrators can release locks.

Your code where you need it

Tasks run before or after insert, update and delete – in the same request or in the background. Child plugins add their own actions, tasks and workers on a shared lifecycle.

Configuration that ships

A project’s configuration exports as one JSON bundle with stable UUIDs. Sync takes a database backup first, refuses to touch rows owned by another project, and running it twice changes nothing.

Caching you can see

Compiled queries and render plans are cached in files or in Redis/Memcached. A settings page shows every cache group with its size and lets you flush it.

BUILT FOR PRODUCTION

Built for our own production.

We built Wonderful Relations because we run real applications on it – line-of-business apps for our clients and our own tools, every day. Every change is tested and measured against fixed limits for memory, time and database queries before it ships.

In development since April 2019.

7,252

commits in the plugin repository

6,092

automated unit tests in the full test run

~820

PHP classes in the shipped plugin

41

database migrations, each running fully on update – no manual steps

We do not name clients and we do not show their data. All screenshots and films come from demo installs with invented data.

What it deliberately does not do

It is not a page builder and not a form plugin for a single contact form – if you need one form and one email, a smaller tool will serve you better. It does not store your data in post meta. It does not host your data anywhere but your own WordPress database. It does not hide its SQL: every query can be previewed. It does not change data on update without a migration, and those migrations run fully – there is no opt-in switch to forget.

Privacy

Wonderful Relations runs inside your WordPress install. Your entries live in your database, in tables you can inspect. There is no Wonderful Relations cloud and no analytics in the plugin. Updates and licence checks connect to our update server.

Requirements

  • WordPress 6.4 or newer (tested up to 7.1)
  • PHP 8.2 or newer
  • MySQL or MariaDB as used by WordPress
  • Optional: WP-CLI for bundle export, import and sync
  • Optional: Redis or Memcached as WordPress object cache
  • Optional, for the AI part: an assistant with shell access to your site, such as Claude Code or Codex

EARLY ACCESS

Join the waitlist

€99 per site and year

Includes updates and new versions for one WordPress install for twelve months.

We open early access site by site. Write to us and we’ll let you know as soon as your spot is ready – or when the release is out.

Need it on several sites or for client projects? Get in touch.

Frequently asked questions

Who is it for?

For teams and agencies that run business applications inside WordPress – member administration, registrations, CRMs, internal dashboards – and want them to stay maintainable. You should be comfortable with WordPress; for custom logic, with PHP.

Do I need to write code?

No, for the model: projects, entities, forms, queries, tables, templates and PDFs are configured. Yes, if you want custom tasks, actions or integrations – those are written in PHP in your own child plugin.

Where is my data stored?

In your WordPress database, in regular tables – one per form. You can read them with any SQL tool.

How do I move an app from staging to production?

Export the project as a bundle and sync it on the target site. Rows are matched by UUID, a backup is taken first, and existing entries are not touched.

Do I need an AI to use it?

No. Everything works from the WordPress backend. The AI part is optional.

Which AI assistants work with it?

Assistants that can run shell commands on your server or in your development environment, for example Claude Code or Codex. They use WP-CLI and the Wonderful Relations skill; there is no separate service in between.

Is it a wordpress.org plugin?

No. Wonderful Relations is a commercial plugin with its own update server.

Who is it not for?

If you need one contact form, a newsletter sign-up or a visual page builder, a smaller plugin will serve you better.

Read the documentation

Concepts, parameters, hooks and code examples for configurators and plugin developers.