I rebuilt the entire WordPress admin because wp-admin is hostile to the people who actually use it. GLASS is a complete admin shell, canvas page builder, Robot AI assistant, portal system, form engine, and themeless rendering engine, all in one lightweight package. This entire website, every page, the header, the footer, is built and rendered by GLASS.
A floating windowed desktop environment inside WordPress. Drag to reposition, resize from any edge, snap to screen edges, minimise to a taskbar. Run multiple admin panels side by side, edit a page while checking invoices, write a post while monitoring tickets. Alt+W toggles desktop mode. Each window is an isolated iframe with tab promotion: if the plugin inside has tabs, they float up into the window chrome.
Ctrl+K opens a command palette that searches across every app, page, user, setting, and action registered in GLASS. Substring matching with keyboard navigation. Results include the app icon, title, and deep-link URL. It's the fastest way to navigate WordPress, one shortcut gets you anywhere. Every AJT plugin registers its own Spotlight provider, so Stripe Pro invoices, MSP Hub tickets, and Robot workflows are all searchable from the same bar.
The GLASS desktop is a grid of Beads, customisable tiles that act as app launchers, quick links, or information widgets. Drag to rearrange, group by folder, and pin your most-used tools. Beads show live badge counts (unread form submissions, pending updates, open tickets) so you see what needs attention the moment you log in. Group notes let teams pin shared messages to tile clusters.
Restrict non-admin users to the GLASS interface. When Glass Lock is active, staff, editors, and contributors never see raw wp-admin, they're redirected to the clean shell automatically. Per-role access rules control exactly which apps each role can access. Combine with the menu suppressor to completely hide WordPress's native admin menu items.
GLASS serves its admin on clean frontend URLs: /glass/ for the dashboard, /glass/infinite for the page builder, /glass/users for user management. Old wp-admin URLs 301 redirect to their clean equivalents. The base slug is configurable, change it to /portal/, /dashboard/, or /admin/ from settings. When combined with white-label branding, the entire admin can be presented as a bespoke platform with zero WordPress fingerprint.
Any WordPress plugin can be "adopted" into GLASS. Adopted plugins render inside iframes within the shell, no code changes required in the adopted plugin. WooCommerce, Yoast, Gravity Forms, anything with an admin page can be pulled into the GLASS tab bar. The adoption system detects sub-tabs within the iframe and promotes them into the window chrome for a native feel.
The Canvas editor turns the builder into a WYSIWYG experience. The page IS the editor. Click any element to select it, drag to reposition, resize handles on every edge. A property panel slides in from the right with the selected element's styles, colours, spacing, typography, borders, shadows. Changes render in real-time. Undo/redo with Ctrl+Z/Y. Contenteditable text means you type directly into headings and paragraphs on the live page.
From hero banners and feature grids to pricing tables, testimonial carousels, before/after comparisons, horizontal scrollers, Lottie animations, image mosaics, editorial layouts, portfolio galleries, progress bars, countdown timers, FAQ accordions, tabbed content, comparison tables, stats counters, team grids, logo tickers, timeline sections, and more. Each type has deep configuration, not just text fields but layout variants, animation options, responsive controls, and style overrides.
A vertical layer panel shows every section on the page in a reorderable list. Drag to rearrange. Right-click context menu on any section: duplicate, copy, paste, move up/down, delete, toggle visibility. The clipboard is persistent, copy a section on one page, paste it on another. Copy/paste works across browser sessions because it's stored in user meta, not the browser clipboard.
33 page presets cover Business, SaaS, Portfolio, Blog, Landing Page, and more, each a complete page with header, footer, and 6-10 sections of real content. 132 section templates let you drop in pre-designed sections and customise from there. Import/export as JSON bundles. Site kits bundle pages + header + footer as a single transferable package.
Every section has per-breakpoint responsive controls for padding, font size, and visibility. Frontend JS uses IntersectionObserver for scroll-triggered animations, no scroll event listeners, no jank. Six animation types: fade-up, fade-in, slide-left, slide-right, zoom-in, none. The engine respects prefers-reduced-motion for accessibility. Above-fold sections render at full opacity immediately, no flash of animated content.
30+ tokens that resolve at render time in any text field. Matt Artley Online, https://mattartley.online/, , , 2026, May 6, 2026, {page:title}, and Stripe Pro data tags like , {stripe:next_payment_date}, . Dynamic tags turn static page sections into personalised, real-time content without any code.
Map any WordPress template type to an Infinite page. Single posts, pages, archives, search results, 404, each gets its own visual template built in the page builder. A dedicated Theme Engine admin panel shows all assignments at a glance with one-click creation of missing templates.
A standalone stylesheet for WordPress post content (the_content) rendered inside Infinite template pages. Headings, paragraphs, lists, blockquotes, code blocks, tables, images, and embeds all get carefully designed typographic styling that matches the GLASS design language without bleeding into section layouts.
The WordPress login page inherits GLASS branding, custom logo, background colour, button styles, and form layout. Combined with clean URLs, even the login experience feels like part of the platform rather than a generic WordPress screen.
10 blog-specific section types: post_content renders the actual post body, post_loop shows a grid of posts, post_meta_bar shows date/author/categories, comments renders the comment form and list, breadcrumbs for navigation context, post_navigation for previous/next links, related_posts, author_box, sidebar, and search_results.
Every Infinite page has dedicated meta title and meta description fields. The engine outputs proper tags, Open Graph meta, and canonical URLs. No SEO plugin required for basic meta, though GLASS coexists cleanly with Yoast or Rank Math if you want advanced features.
One toggle puts the entire site behind a maintenance page, an Infinite page of your design, not a generic "briefly unavailable" message. Logged-in admins still see the live site. The maintenance page can be as elaborate as any other Infinite page: branded, animated, with a countdown timer if you want.
Dashboard overview, invoices list with payment status, active subscriptions with management actions, payment method vault, download library, profile editor with password change, support ticket viewer with reply capability, quote acceptance with e-signatures, service contract details, and a services catalogue, all rendered as Infinite sections pulling live data from Stripe Pro and MSP Hub.
Contracts Manager dashboard with at-a-glance KPIs, customer list with search and filters, ticket queue with status badges and priority sorting, approval workflow queue, finance overview with revenue charts, and team management panel. Staff sections are gated by custom roles, Contracts Managers see customer data without touching the admin shell.
A step-by-step wizard creates new portals from 7 starter templates: billing-only (Stripe invoices + subscriptions), MSP Essential, MSP Teal, MSP Dark, MSP Full (all MSP Hub data surfaces), Staff Essential, and Staff Full. Each template pre-populates the portal with the right section types, navigation, and role restrictions. Publish in minutes.
4 dedicated Stripe Pro section types: a product storefront with grid/list layouts, a billing portal with subscription management, a payment form for one-off charges, and an invoice viewer. These sections render Stripe data with the GLASS design language, cards, badges, status pills, and responsive tables that look like a SaaS product, not a WordPress plugin.
Portal pages maintain their own internal navigation that stays in sync with which sections are on the page. Add an invoices section and the nav automatically gains an Invoices link. Remove it and the link disappears. No manual menu management, the navigation reflects the portal's actual content at all times.
Portals inherit branding from the GLASS appearance settings or from MSP Hub's white-label module. Custom logos, accent colours, and typography flow through to every portal section. No AJT branding leaks into customer-facing surfaces. The portal looks like your platform, not ours.
Robot can search companies, pull customer dossiers, view ticket details and activity, create and update tickets, add notes, manage service changes with approval gates, list and send invoices, void invoices, mark paid, send payment reminders, query finance overviews, run diagnostics, execute raw data queries, manage Infinite pages and sections, interact with the Design System, build and manage workflows, and more. Each tool has structured input/output with validation.
A visual workflow system with triggers, conditions, and actions. Triggers fire on events, form submission, ticket created, invoice paid, user registered, schedule (cron). Conditions gate execution, if user role is X, if amount exceeds Y, if field contains Z. Actions execute the response, send email, create user, update meta, call webhook, log activity, advance a process step. Workflows are created visually in the Robot app or programmatically via AI.
Robot integrates with Microsoft Teams via Adaptive Cards and webhook channels. Ticket updates, invoice alerts, form submissions, and custom notifications can post directly to Teams channels as rich, interactive cards with action buttons. A bot endpoint allows two-way communication, respond to cards from Teams and the action flows back into GLASS. Multiple channels with per-channel HMAC authentication.
Monitors are live watches on business metrics, outstanding invoice total, open ticket count, overdue payments, subscription churn rate. When a monitor's value crosses a threshold, it triggers a notification or workflow. The Report Designer lets admins build structured reports with sections, charts, and data tables, rendered as PDFs via WeasyPrint. Report presets cover QBR reports, health reports, and improvement summaries.
Certain AI tool actions, service changes, invoice voids, large refunds, require human approval before execution. Robot pauses the action, notifies the appropriate approver (via GLASS notification or Teams), and waits for explicit confirmation. The approval system integrates with the staff portal so Contracts Managers can approve or reject from their dashboard without touching the admin shell.
Robot has its own terminal for direct command execution and a comprehensive logging system that records every AI interaction, tool call, workflow execution, and approval decision. Logs are searchable, filterable by persona and action type, and exportable. The Garage lets admins test tool calls in isolation before deploying them in workflows.
Text, email, phone, textarea, number, select, multi-select, checkbox, radio, date, time, file upload, hidden, heading, paragraph, divider, HTML, signature, rating, and more. Each field has validation rules, placeholder text, conditional visibility, and custom CSS classes. File uploads support drag-and-drop with type and size restrictions.
Customers can upload logos, documents, network diagrams, contracts, and supporting files directly through forms. Uploaded files are stored securely with randomised filenames, MIME type validation, and configurable size limits. Files are accessible from the entries viewer with download links. Orphaned temp files are cleaned up automatically by a daily cron job.
Every form submission fires a workflow trigger. Robot can send notification emails, create WordPress users, update user meta, push data to external systems via webhooks, advance onboarding pipelines, create support tickets, or any other registered action, all configurable visually in the workflow builder. No code required to connect a form to a business process.
A dedicated entries viewer shows submissions in a searchable, filterable table with read/unread status, star marking, and bulk actions. Entry detail view shows all field values with edit capability and a notes timeline for internal comments. Export to CSV or XLSX with column selection and date range filters. Entries containing PII can be encrypted at rest.
Invisible reCAPTCHA v3 integration with configurable score thresholds protects forms from spam without adding friction. Server-side rate limiting prevents submission flooding. Honeypot fields catch basic bots. AJAX submission with inline validation means the page never reloads, errors highlight the offending fields in real-time.
Contact form, feedback survey, newsletter signup, event registration, job application, MSP customer onboarding, IT support request, change request, site audit, employee equipment request, customer satisfaction survey, and new starter form. Each template is a complete, ready-to-use form definition that can be imported and customised.
Pewter Plum (default, warm neutral with brand-tinted greys), Midnight, Ocean, Slate, Forest, Rosé, and Custom. Each theme sets the sidebar, tab bar, header, and content area colours. The Custom theme lets you pick any combination of background, text, accent, and border colours.
None, Mesh Gradient, Subtle Dots, Purple Haze, Ocean Breeze, Sunset, Northern Lights, Warm Ember, Solid Colour, and Custom Image. Wallpapers apply to the GLASS desktop background behind the Beads grid, adding visual personality to the admin without affecting readability.
Custom logo, wordmark text, and accent colour applied across the entire admin shell. The logo appears in the tab bar, the wordmark replaces "GLASS" in the header, and the accent colour tints interactive elements throughout. Combined with a custom admin slug, the entire admin can be presented under your brand.
A centralised set of CSS custom properties that define colours, font families, font sizes, line heights, border radii, shadows, and spacing for every Infinite page and portal. Change the primary colour once and it updates across every published page. The Design System editor lives in the Theme Engine admin with real-time preview.
Reusable style definitions that can be applied to any section. Define a style class once, background colour, text colour, padding, border, shadow, and apply it by name to multiple sections across multiple pages. Change the class definition and every section using it updates automatically. A precursor to global style systems found in dedicated builders.
Per-user preferences for sidebar position, default app on login, dashboard layout, notification settings, and more. Each user customises their own GLASS experience without affecting others. Preferences persist in user meta and follow the user across devices.
Home screen with app grid, quick actions, environment info, and live badge counts showing what needs attention.
User CRUD, role management, password resets, and bulk actions, a complete user management panel.
Plugin list with activate/deactivate, adoption into Glass, and one-click updates.
Posts and pages CRUD with quick edit, trash/restore, search, and pagination.
Full media library with drag-and-drop upload, grid/list views, and file management.
WordPress nav menu management with the Glass design language.
Category and tag CRUD for all registered taxonomies.
General, reading, writing, and discussion settings in one organised panel.
A chromeless text editor persisted in user meta. Quick notes that survive sessions.
A fully functional calculator app within the admin, useful during invoicing and quoting.
A persistent clipboard manager that stores copied text snippets across sessions.
A WP-CLI-like command line interface within the browser. Run commands without SSH access.
Filesystem browser and editor. Navigate, view, and edit files on the server from the admin.
An audit trail of admin actions, who did what, when. Custom table with search and filters.
Server info, PHP version, memory limits, opcache status, and WordPress environment diagnostics.
WordPress Site Health checks integrated into the Glass shell with the Glass design language.
check_ajax_referer() on every AJAX handler. wp_nonce_field() and check_admin_referer() on every admin form. No endpoint is accessible without a valid nonce. No exceptions.
Every admin function gates on current_user_can('manage_options'). Portal functions gate on is_user_logged_in() or verified magic-link tokens. Role-based access control on every surface.
Every user input passes through sanitize_text_field(), sanitize_email(), intval(), or sanitize_textarea_field(). Every output is escaped with esc_html(), esc_attr(), esc_url(), or wp_kses_post().
Blocks author archive scanning, REST API user enumeration, and oEmbed author discovery. Attackers can't build a list of valid usernames from your WordPress install.
Infinite pages render as standalone HTML documents. Typical payload: ~60KB CSS + ~15KB JS + content. No theme stylesheet, no jQuery, no wp_head() plugin bloat. Every kilobyte is earned.
Delete the plugin and it removes everything: all options, all user meta, all custom post types, all custom tables, all transients, all cron hooks, all uploaded files. Zero residue. The uninstall handler is comprehensive and tested.
Show or hide any section based on user role, login status, device type, or URL parameter. A logged-out visitor sees the pricing table; a logged-in customer sees their dashboard. A mobile user sees a simplified layout; desktop gets the full experience. No code, just toggles in the section settings panel.
Export any Infinite page as a JSON file. Import to recreate it on another site. Site kits bundle multiple pages + Blinds header + Mats footer as a single transferable package. Page transfer lets you move pages between GLASS installs with one click. The .infinite file format preserves every section, setting, and style override.
glass_register_section_type() lets any plugin register its own section types that appear in the Infinite builder alongside native sections. Define a render callback, settings schema, and preview template. MSP Hub and Stripe Pro both use this API to add their portal and storefront sections to the builder without modifying Glass core.
Create popups as a custom post type with five trigger modes: on load (with delay), on exit intent, on scroll percentage, on click (CSS selector), and on element visibility. Popups use Infinite sections for their content, so they have the full power of the page builder. Frequency controls prevent popup fatigue, show once per session, once per day, or once ever.
Forms can trigger Stripe payment flows on submission. Collect a payment alongside form data, event registration with fees, service requests with deposits, product orders with pricing. The Stripe action creates a PaymentIntent server-side (never trusting client-submitted amounts) and confirms it after successful form validation.
Dedicated admin apps for managing a customer-facing knowledgebase and blog within the GLASS shell. The Knowledgebase app organises articles by category with search and reordering. The Blog app provides a streamlined post management interface focused on writing and publishing rather than WordPress's cluttered post editor.