GMC Builder — Documentation (WordPress)
GMC Builder for WordPress builds landing pages, hero sections and full layouts through three authoring surfaces: a drag-and-drop visual editor, a validated raw JSON editor, and AI-assisted authoring through the included GMC Builder MCP server. All three write the same portable layout format, which the plugin renders server-side in PHP — no external page-builder service is involved. Requirements: WordPress on a supported release and PHP 8.1 or newer.
Installation
- In your WordPress admin, go to Plugins → Add New → Upload Plugin.
- Upload the
wp-gmc-builderzip you received with your purchase (you can re-download the latest build from your account at any time). - Click Install Now, then Activate.
The visual editor is bundled with the plugin, so no additional installation is needed to start building.
Configuration
- Download Key. After purchase you receive a Download Key with your licence email. Enter it on the plugin's settings screen — the field is shown after activation. The key unlocks licensed one-click updates from the update server; leave it in place so updates keep flowing while your subscription is active.
- Dynamic catalog blocks. The Tours, social-gallery and lead-form blocks pull data from the corresponding GMC product (Tours, gallery or Lead Capture). You only need that product installed if you actually use the block; if the data source is missing, the block fails gracefully instead of breaking the page.
- Theming. Layout appearance is driven by themes based on design tokens, and a YOOtheme migration helper is included for layouts coming from that builder.
Using the plugin
The visual editor
The drag-and-drop editor offers responsive desktop, tablet and mobile previews. You compose pages from fifteen safe elements covering structure, text, media, FAQ schema and accommodation maps, plus the catalog-native Tours, gallery and lead-form blocks. Everything you save passes through a strict server-side schema that normalizes the layout and removes unsupported markup. The plugin also adds automatic SEO context and Schema.org output, and runs a built-in accessibility audit on your work.
Editing as raw JSON
Every layout is stored as portable JSON, and you can edit that JSON directly. The raw editor writes the exact same validated format as the visual editor, so you can switch between the two freely. Because layouts are plain JSON, they can be exported, versioned and restored without relying on a hosted builder service — useful for backups and for moving layouts between sites.
AI-assisted authoring (MCP)
The plugin includes the GMC Builder MCP server, which lets an AI assistant author layouts for you. AI-generated layouts go through the same server-side validation and are saved in the same portable format, so the result is interchangeable with anything built visually or by hand.
Publishing a layout
To publish a saved layout, place the shortcode [gmc_builder id="my-layout"] in a post, a page or a Shortcode block. Rendering happens server-side in PHP and does not depend on any external service.
Updates & licence
Updates are automatic. The plugin checks the GMC / FuerteventuraTV update server on its own (about every 12 hours) and shows any new version under Plugins or Dashboard → Updates, as long as your subscription is active. The Download Key entered in the plugin settings is what authorizes these licensed one-click updates.
The software is released under the GNU GPL. The annual licence gives you the official build, licensed one-click updates and support for one site. If you let the licence lapse, everything you built keeps rendering — existing layouts remain on your site and continue to work; you only stop receiving updates and support. For use on more sites or in client projects, contact us about a volume or agency arrangement.
Support
For help, reply to your purchase email or message us on WhatsApp at +34 633 168 995 — the same line appears in your licence email. Please include the product name and version, your WordPress and PHP versions, and a public URL or screenshot (with any keys masked). We answer in English, Italian and Spanish.
If the product does not work as described and we cannot fix it for you, you can request a refund within 14 days of purchase.
Everything included
87 real capabilities, grouped by area — this is the actual depth of GMC Builder, not a highlight reel.
Three ways to author (one layout format)
- Visual drag-and-drop editor — assemble pages by dragging blocks onto a live canvas, no code required.
- Validated raw-JSON editor — paste or hand-write a layout and it is validated on save with a live preview; power users and version control stay first-class.
- AI / MCP authoring — let Claude, Codex or any MCP-capable assistant build, validate, render and save whole layouts for you.
- Every surface writes the same portable layout — switch between visual, JSON and AI freely; they never diverge, because all three go through one schema.
- Guaranteed-safe on every path — every layout (hand-built, imported, or AI-drafted) is held to the same server-side validation and escaping contract, so a bad or hostile input can only be rejected or rendered inert, never break the page.
AI page generation (BYOK)
- Prompt to page — describe the page in plain language ("landing for a surf school with a hero, 3 benefits, an FAQ and a CTA") and get a complete, valid layout back.
- Guaranteed-valid output — the model's reply is always run through the schema, with automatic retry-and-repair (feeds the exact validation errors back to the model) before anything is returned or saved.
- Bring your own key (BYOK) — works with any OpenAI-compatible provider: OpenAI, NVIDIA NIM, Groq, or a local/self-hosted gateway (vLLM/Ollama). Picking the provider auto-sets the right endpoint.
- Works out of the box with no key — a built-in deterministic offline generator produces a plausible layout (hero, benefits, tours, gallery, FAQ, CTA, lead form, accommodation map) with real copy when no API key is configured.
- Your key never leaves the server — the provider key is stored server-side only, used solely to call the provider, never sent to the browser, and redacted from any error message.
- Reachable from everywhere — the same generator powers the editor's "Generate with AI" button, the MCP
generate_layouttool, and the CLI generator.
Visual editor experience
- Full builder chrome — block palette, live canvas, a Settings/traits panel, a Style panel mapped to the theme's design tokens, and a Layers/outline tree.
- Responsive device previews — switch between desktop, tablet and mobile to see exactly how the page reflows.
- Undo / redo and unsaved-changes safety — dedicated undo/redo, a dirty indicator on Save, and a warning before you navigate away with unsaved work.
- Server preview — a one-click preview renders the authoritative HTML through the real engine, so what you see is exactly what visitors get (the browser never fakes the render).
- Media picker, not base64 — insert images from the native media library (WordPress wp.media / Joomla com_media) instead of pasting URLs or embedding heavy base64 blobs.
- Generate-with-AI and A11y-check built into the toolbar — draft with AI and run an accessibility audit without leaving the canvas.
- Usable on a phone — at small admin viewports the toolbar wraps and the panels stack so Save stays reachable and the canvas keeps working.
- Fully translatable UI — every editor label (save, undo, redo, previews, AI, a11y, media) is localizable.
Elements library (16 safe blocks)
- Section — full-width band with vertical padding, background style (none/muted/light/primary/dark) and inner content width (narrow/default/wide/full).
- Row + Column — a 12-column responsive grid; set each column's span (1–12), vertical alignment and text alignment; columns stack on mobile automatically.
- Heading — choose the HTML level (h1–h6) independently of the visual size, with alignment and colour presets.
- Text — rich text with a safe inline-formatting allow-list (bold, links, lists, quotes…), size and alignment.
- Image — source, alt text, dimensions, optional link, alignment and corner radius; lazy-loaded with a reserved aspect ratio to avoid layout shift.
- Button — label, URL, primary/secondary/outline/link styles, size, full-width option and alignment; external links get
rel="noopener noreferrer"automatically. - Spacer & Divider — precise vertical spacing and styled horizontal rules.
- HTML / Embed — drop in custom markup, sanitised against a broad allow-list (scripts, styles, iframes and event handlers are stripped).
- FAQ — an accessible accordion (native details/summary) that also emits schema.org FAQPage rich-results markup generated from your escaped content.
- Stay22 map — an embeddable accommodation map for tourism pages; the embed host is fixed and only your affiliate id and address are used, sanitised and lazy-loaded.
- SEO element — invisible page-level metadata (page type, name, description, breadcrumb, schema override) that feeds the structured-data output.
Catalog-native dynamic content
- Tours grid — a live card grid of your GMC Tours (columns, item limit, price and meta line toggles, custom CTA label).
- Social gallery grid — a live media grid from your Instagram or Facebook feed (columns, limit, link target).
- Lead form block — drop a saved GMC Lead Capture form into any layout by its slug.
- Fail-open by design — if the matching GMC product (Tours, gallery, Lead Capture) isn't installed, the block degrades to a harmless HTML comment instead of breaking the page.
- No shortcode-pasting — these are first-class blocks bound to your own catalog, not third-party embeds glued in by hand.
SEO & structured data
- Automatic schema.org JSON-LD — each page emits one clean
@graphblock combining WebPage (or Article/Product/Event), BreadcrumbList, Organization and FAQPage — generated from your content, no manual markup. - One block, no duplicates — every FAQ on the page folds into the single page-level graph, so you never ship duplicate FAQPage nodes.
- Per-page control — the SEO element lets you set page type, name, description and a breadcrumb trail, and force schema on/off for that page.
- Plays nice with Yoast / Rank Math — a global off-switch suppresses GMC Builder's structured data so sites that already output schema don't get duplicates.
- Best-effort by default — even without an SEO element, a sensible WebPage node is derived from the first heading and first text block.
- Safe output — JSON-LD is hex-escaped so structured data can never break out of its script tag.
Accessibility
- Built-in WCAG audit — check a layout for common accessibility problems while you build, something typical page builders don't offer.
- Concrete, low-noise findings — flags missing image alt text, nameless linked images, skipped heading levels, missing or multiple h1, empty control labels, empty or incomplete FAQ entries, suspect colour contrast and a missing page language.
- Read-only and safe — the audit reads the layout and reports errors/warnings; it never changes your content or renders anything.
- Reachable from everywhere — run it from the editor's A11y-check button, the MCP
audit_layouttool, or the CLI auditor.
Themes & kits
- Design-token theming — colours, typography, spacing, padding, gaps, radius and container width live as simple tokens compiled to CSS variables; restyle a whole site by swapping tokens.
- Site-wide theme override — apply a JSON token map globally without touching individual layouts.
- Portable kits — export theme tokens plus every layout as one JSON kit, and import it into another install to seed a new site.
- One-click kit import/export — from the admin (with an "apply theme" toggle), plus REST/authoring endpoints; imports are size- and type-gated and can't clobber unrelated layouts.
- Tourism-ready Surf Camp kit — a full themed page (hero, benefits, tours grid, gallery, FAQ with schema, Stay22 map) on a swappable colour theme, ready to import.
Migration from YOOtheme Pro
- One-way importer — convert an existing YOOtheme Pro layout into a GMC Builder layout instead of rebuilding page by page.
- Safe mapping — sections, grids, headings, text, images and buttons are converted; anything unsupported is skipped rather than dumped in as raw HTML, so nothing unsafe slips through.
- Available headless — run the importer from the CLI for batch conversions.
Render engine, performance & reliability
- One framework-free engine, identical output — the same PHP renderer runs on Joomla and WordPress, so a layout looks the same on both; no UIkit or theme framework required.
- 100% server-side render — the authoritative HTML is always produced in PHP; the browser never re-implements the renderer.
- Hardened against XSS/clickjacking — everything is escaped, HTML/rich-text run through strict allow-lists, URLs and inline styles are sanitised, and positioning that enables clickjacking is dropped.
- Self-healing schema — layouts are normalised on save and render: defaults filled, values clamped, illegal nodes dropped, so stored pages are always render-safe.
- Version history & undo — every save snapshots the previous version (up to 20 retained); list and restore earlier versions, and restores are themselves undoable.
- Safe concurrent editing — optimistic-concurrency checks reject a stale overwrite (HTTP 409) instead of silently clobbering someone else's edit.
- Duplicate & delete layouts — copy a layout into a fresh collision-safe slug, or remove a layout and its history.
- Fast front-end — per-request renderer/schema reuse, a cached rendered-HTML transient (WordPress) keyed to the layout's version and theme, lazy-loaded images and reserved aspect ratios (no layout shift).
- Responsive & motion-aware CSS — mobile-first grid, overflow-safe tables/long words, and honouring
prefers-reduced-motion.
Publishing & shortcodes
- Joomla shortcode — drop
{gmcbuilder id=my-layout}into any article, category or custom module. - WordPress shortcode — use
[gmc_builder id="my-layout"]anywhere shortcodes run. - WordPress Gutenberg block — a dynamic "GMC Layout" block for the block editor (shortcode still supported).
- Flexible id resolution — layouts resolve by slug (option/meta), numeric post id (post meta) or an uploads-folder JSON file fallback.
- Stylesheet loads itself — the base CSS is emitted automatically whenever a layout renders; nothing to enqueue by hand.
Developer, API & automation
- Built-in MCP server — a self-contained Model Context Protocol server (Python standard library only, no dependencies) exposing
list_elements,validate_layout,render_layout,get_layout,set_layout,generate_layoutandaudit_layout. - Two MCP modes — LOCAL mode drives the core CLIs with no CMS install (author a page and see the rendered HTML offline); REST mode reads/writes the real layouts on a live Joomla or WordPress site with live dynamic data.
- REST authoring API — read the element contract, get/save/delete layouts, list/restore snapshots, render inline drafts, and export/import kits (WordPress
gmc-builder/v1/*; Joomla via corecom_ajax). - CLI toolkit — describe elements, validate, render, AI-generate (with an offline
--mockmode), accessibility-audit, import from YOOtheme, and build/apply kits — all scriptable and headless. - Stable extender API — add or replace dynamic data sources, post-process the final rendered HTML, and render your own custom element types (WordPress filters / Joomla events); custom-element markup is re-sanitised through the same allow-list.
- Portable, git-friendly layouts — layouts are plain JSON you can export, diff, version and restore without any hosted builder service.
Security & privacy
- Admin-gated everywhere — authoring requires real admin capability (Joomla
core.manage/core.admin, WordPressmanage_options) plus CSRF/nonce protection on every state change. - Secrets never leak to the browser — stored licence/AI keys are never returned to the DOM; a blank submit preserves the key, an explicit control removes it, and fields use
autocomplete="new-password". - Path-traversal safe — the file store is confined to the site root; absolute paths, dot segments and symlink escapes are rejected.
- Nothing phones home to render — pages render entirely on your own server with no external page-builder dependency.
Trust & licensing
- GPLv2-or-later, owned not rented — you keep the software; a lapsed licence never blanks your live pages, disables the editor, or stops rendering. The licence covers updates and support.
- Self-hosted, portable data — layouts are JSON on your own site; themes are simple token files; nothing depends on a hosted service to display a page.
- Licensed one-click updates — enter your Download Key (from your licence email) and the extension checks the GMC / FuerteventuraTV update server on its own and offers new versions in the normal CMS update screen while your subscription is active.
- Bundled visual editor, no external CDN required — GrapesJS (MIT) ships vendored locally with a pinned, integrity-checked CDN only as a fallback; third-party licences (GrapesJS, CodeMirror, Spectrum) are included.
- One-site licence, agency-friendly — €49/year per site covers the official build, updates and support for one site; multi-site/agency arrangements on request.
- Honest support & refund — support in English, Italian and Spanish; 14-day refund if it doesn't work as described.
Joomla & WordPress
- Full Joomla ↔ WordPress parity, released in lockstep — the same 16 elements, the same schema, the same visual editor bytes and byte-identical rendered output on both CMS; the two builds move version-for-version together.
- Compatibility — Joomla 5.x and 6.x (requires 5.0+, tested to 6.9) and WordPress 6.0+ (tested to 6.8); PHP 8.1 or newer on both.
- Joomla specifics — publishes via a content plugin shortcode, uses the native com_media picker, and exposes authoring through core
com_ajax; the visual editor and settings live in thecom_gmcbuilderadmin component (SEO/AI/theme options as plugin params). - WordPress specifics — adds a top-level "GMC Builder" admin menu with a layout list and a Licence & AI screen, a Gutenberg "GMC Layout" block, the wp.media image picker, a rendered-HTML transient cache, and REST auth via nonce or Application Password.


