[{"data":1,"prerenderedAt":230},["ShallowReactive",2],{"news-post":3},{"id":4,"date":5,"date_gmt":5,"guid":6,"modified":5,"modified_gmt":5,"slug":8,"status":9,"type":10,"link":11,"title":12,"content":14,"excerpt":17,"author":19,"featured_media":20,"comment_status":21,"ping_status":21,"sticky":16,"template":22,"format":23,"meta":24,"categories":25,"tags":28,"class_list":29,"acf":38,"_links":39,"_embedded":83},13110,"2026-07-08T11:40:52",{"rendered":7},"https://data.uipress.co/?p=13110","introducing-admin-framework-wordpress-admin-rebuilt","publish","post","https://data.uipress.co/introducing-admin-framework-wordpress-admin-rebuilt/",{"rendered":13},"Introducing Admin Framework: WordPress Admin, Rebuilt",{"rendered":15,"protected":16},"\n\u003Cp class=\"wp-block-paragraph\">wp-admin hasn&#8217;t fundamentally changed in over a decade. It works, but it was never designed for the way people actually manage WordPress sites today — teams with different roles, sites running WooCommerce alongside SEO tools alongside caching plugins, agencies managing dozens of installs. Every plugin bolts on its own settings page with its own design language, and the result is a patchwork that gets harder to navigate with every activation.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">That&#8217;s the problem Admin Framework is built to solve.\u003C/p>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"what-is-admin-framework\">What is Admin Framework?\u003C/h2>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Admin Framework is a standalone admin experience that replaces wp-admin entirely. It&#8217;s a Vue 3 single-page application served at its own URL — by default \u003Ccode>/uix-admin/\u003C/code> — with its own navigation, its own layout system, and its own approach to building admin screens.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">The key difference from everything else in this space: most of the UI isn&#8217;t hard-coded. Screens are \u003Cstrong>declarative JSON view definitions\u003C/strong> — structured documents that describe what a screen should show, where the data comes from, and what actions are available. A built-in render engine takes those definitions and produces the actual interface. List views, detail pages, edit forms, dashboards — they all come from the same engine.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">This means you can define an entirely new admin screen for a custom post type, a WooCommerce product list, or a plugin&#8217;s settings page without writing a single Vue component. Describe it in JSON, register it, and the engine builds it.\u003C/p>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"the-three-pillars\">The three pillars\u003C/h2>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"1-declarative-views\">1. Declarative views\u003C/h3>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">A view definition is a JSON file that describes a screen. It specifies the data source (a WordPress post type, a REST endpoint, an internal provider), the layout (list, detail, form, dashboard), and the nodes that make up the UI — tables, grids, charts, stats cards, tabs, modals, form fields, and about twenty other types.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Views support field binding, conditional visibility, formatters, and declarative actions like save, delete, navigate, and REST calls. The render engine handles the rest. You don&#8217;t need to think about state management, API calls, or component rendering — you describe what you want, and the engine produces it.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">For most use cases, you won&#8217;t even need to write these by hand. Admin Framework includes auto-discovery: it inspects your site&#8217;s REST schema, detects editor modes, maps taxonomy facets, and suggests list, detail, and form screens automatically.\u003C/p>\n\n\n\n\u003Cfigure class=\"wp-block-image size-large\">\u003Cimg decoding=\"async\" width=\"1024\" height=\"672\" src=\"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.41-1024x672.png\" alt=\"\" class=\"wp-image-13114\" srcset=\"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.41-1024x672.png 1024w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.41-300x197.png 300w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.41-768x504.png 768w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.41-1536x1008.png 1536w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.41-2048x1345.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" />\u003C/figure>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"2-the-render-engine\">2. The render engine\u003C/h3>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">The render engine is what makes declarative views work. It takes a JSON view tree and recursively renders it into a full UI using a library of around 25 node types. Tables with sortable columns and pagination. Grids with configurable layouts. Charts and stat cards for dashboards. Tabs, drawers, and modals for complex workflows. Repeater fields and related lists for nested data. Async action buttons that call REST endpoints and handle responses.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">One engine powers every screen in Admin Framework. The built-in managers — Dashboard, Content, Media, Plugins, Themes, Users, Comments, Updates, Profile, Settings — all run on the same render engine that your custom views use. There&#8217;s no distinction between &#8220;core screens&#8221; and &#8220;custom screens&#8221; at the rendering level.\u003C/p>\n\n\n\n\u003Cfigure class=\"wp-block-image size-large\">\u003Cimg decoding=\"async\" width=\"1024\" height=\"481\" src=\"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.17-1024x481.png\" alt=\"\" class=\"wp-image-13112\" srcset=\"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.17-1024x481.png 1024w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.17-300x141.png 300w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.17-768x361.png 768w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.17-1536x722.png 1536w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.17-2048x963.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" />\u003C/figure>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"3-connectors\">3. Connectors\u003C/h3>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Connectors are how third-party plugins and themes integrate with Admin Framework. A Connector is a JSON definition that bundles everything a plugin needs to live inside the admin: views (full admin screens), settings pages, sidebar menu groups, quick actions (the bolt-icon actions panel in the sidebar), and user form extensions.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">A single WooCommerce Connector, for example, can ship product and order list views, a WooCommerce settings page, quick actions for cache purging or stock syncing, and additional fields on the user edit form — all registered through one definition file, all merged into the admin at runtime.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Connectors can be hand-authored, installed from the Connector marketplace, or generated automatically using the \u003Cstrong>AI Connector Builder\u003C/strong>, which inspects a plugin&#8217;s REST API and produces a working Connector definition. Enable a Connector and its views, menus, and actions fold into the admin. Disable it and they disappear. No code changes, no redeployment.\u003C/p>\n\n\n\n\u003Cfigure class=\"wp-block-image size-large\">\u003Cimg decoding=\"async\" width=\"1024\" height=\"589\" src=\"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-1024x589.png\" alt=\"\" class=\"wp-image-13111\" srcset=\"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-1024x589.png 1024w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-300x173.png 300w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-768x442.png 768w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-1536x884.png 1536w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-2048x1178.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" />\u003C/figure>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"extensible-at-every-layer\">Extensible at every layer\u003C/h2>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">This is the part I&#8217;m most proud of. Admin Framework isn&#8217;t a closed UI that you&#8217;re stuck with as-is. Extension points exist at every level of the stack:\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>JSON definitions\u003C/strong> — Register new views and settings pages by dropping in JSON files. No Vue components required for standard CRUD screens.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>PHP filters and actions\u003C/strong> — Register views, sidebar items, settings pages, quick actions, connector action handlers, user form nodes, content row actions, and schema modifications through WordPress filters. If you&#8217;ve ever used \u003Ccode>add_filter\u003C/code>, you already know how this works.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>JavaScript hooks\u003C/strong> — Client-side extension mirrors the server. Register sidebar items, dashboard cards and categories, and field adapters at runtime. Dashboard widgets can be Vue or React components.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>REST API\u003C/strong> — A unified REST surface powers the SPA and exposes view registries, schema discovery, internal CRUD, settings, connector management, and content configuration to external tooling.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>Connectors as the integration unit\u003C/strong> — One Connector definition can ship views, settings, actions, user form extensions, and sidebar groups. It&#8217;s the cleanest way to integrate a plugin without touching Admin Framework&#8217;s core.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">The result is that you can go from &#8220;I need an admin screen for this custom post type&#8221; to a working list/detail/form UI without writing any frontend code. And if you need something the render engine doesn&#8217;t cover, you can drop down to Vue components, React widgets, or server-side action handlers.\u003C/p>\n\n\n\n\u003Cfigure class=\"wp-block-image size-large\">\u003Cimg decoding=\"async\" width=\"1024\" height=\"652\" src=\"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.30-1024x652.png\" alt=\"\" class=\"wp-image-13113\" srcset=\"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.30-1024x652.png 1024w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.30-300x191.png 300w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.30-768x489.png 768w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.30-1536x978.png 1536w, https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.39.30-2048x1304.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" />\u003C/figure>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"what-about-wp-admin\">What about wp-admin?\u003C/h2>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">It&#8217;s still there. Admin Framework replaces the shell and most management screens, but wp-admin remains available as a compatibility layer. Gutenberg and the Site Editor run in stripped iframes inside Admin Framework. Legacy plugin pages that haven&#8217;t been Connector-ised are accessible through wp-admin. You can set which roles get redirected to Admin Framework and which stay on wp-admin — administrators can access both.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">The mental model is simple:\u003C/p>\n\n\n\n\u003Cpre class=\"wp-block-code\">\u003Ccode>/uix-admin/  →  Admin Framework (modern shell, JSON views, Connectors)\n/wp-admin/   →  Legacy layer (Gutenberg, Site Editor, unconverted plugin pages)\u003C/code>\u003C/pre>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Admin Framework replaces wp-admin for your team. It doesn&#8217;t replace WordPress.\u003C/p>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"beta-what-that-means\">Beta — what that means\u003C/h2>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Admin Framework ships today as an opt-in beta in uiXpress 1.3.0. You can enable it in uiXpress settings, configure your route and redirect roles, and start using it immediately with the built-in managers and any available Connectors.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Beta means a few things:\u003C/p>\n\n\n\n\u003Cul class=\"wp-block-list\">\n\u003Cli>The core experience is stable and usable for daily admin work\u003C/li>\n\n\n\n\u003Cli>The view definition schema and Connector format may evolve based on feedback before we lock them down\u003C/li>\n\n\n\n\u003Cli>The Connector marketplace is early — official Connectors for major plugins are rolling out over the coming weeks\u003C/li>\n\n\n\n\u003Cli>We&#8217;re actively looking for feedback on what works, what&#8217;s missing, and what Connectors you need first\u003C/li>\n\u003C/ul>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">If you&#8217;re running uiXpress, update to 1.3.0 and turn it on. If you&#8217;re building plugins and want to ship a Connector, the definition format is documented and the AI Connector Builder can get you started in minutes.\u003C/p>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"whats-next\">What&#8217;s next\u003C/h2>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">The roadmap from here is driven by two things: stabilising the view definition and Connector schemas based on real-world usage, and shipping official Connectors for the plugins people use most. WooCommerce, Yoast, WP Rocket, ACF, Gravity Forms — if your plugin has a REST API, it can have a Connector.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Admin Framework is the biggest thing I&#8217;ve shipped in uiXpress. It&#8217;s the difference between a better-looking wp-admin and a genuinely different approach to WordPress administration. I&#8217;m excited to see what people build with it.\u003C/p>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Enable it in uiXpress 1.3.0 and let me know what you think.\u003C/p>\n",false,{"rendered":18,"protected":16},"\u003Cp>wp-admin hasn&#8217;t fundamentally changed in over a decade. It works, but it was never designed for the way people actually manage WordPress sites today — teams with different roles, sites running WooCommerce alongside SEO tools alongside caching plugins, agencies managing dozens of installs. Every plugin bolts on its own settings page with its own design [&hellip;]\u003C/p>\n",1,13111,"open","","standard",{"_acf_changed":16,"_eb_attr":22,"footnotes":22},[26,27],7,5,[],[30,10,31,32,33,34,35,36,37],"post-13110","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-news",[],{"self":40,"collection":46,"about":49,"author":52,"replies":56,"version-history":59,"predecessor-version":62,"wp:featuredmedia":66,"wp:attachment":69,"wp:term":72,"curies":79},[41],{"href":42,"targetHints":43},"https://data.uipress.co/wp-json/wp/v2/posts/13110",{"allow":44},[45],"GET",[47],{"href":48},"https://data.uipress.co/wp-json/wp/v2/posts",[50],{"href":51},"https://data.uipress.co/wp-json/wp/v2/types/post",[53],{"embeddable":54,"href":55},true,"https://data.uipress.co/wp-json/wp/v2/users/1",[57],{"embeddable":54,"href":58},"https://data.uipress.co/wp-json/wp/v2/comments?post=13110",[60],{"count":19,"href":61},"https://data.uipress.co/wp-json/wp/v2/posts/13110/revisions",[63],{"id":64,"href":65},13115,"https://data.uipress.co/wp-json/wp/v2/posts/13110/revisions/13115",[67],{"embeddable":54,"href":68},"https://data.uipress.co/wp-json/wp/v2/media/13111",[70],{"href":71},"https://data.uipress.co/wp-json/wp/v2/media?parent=13110",[73,76],{"taxonomy":74,"embeddable":54,"href":75},"category","https://data.uipress.co/wp-json/wp/v2/categories?post=13110",{"taxonomy":77,"embeddable":54,"href":78},"post_tag","https://data.uipress.co/wp-json/wp/v2/tags?post=13110",[80],{"name":81,"href":82,"templated":54},"wp","https://api.w.org/{rel}",{"author":84,"wp:featuredmedia":104,"wp:term":185},[85],{"id":19,"name":86,"url":87,"description":22,"link":88,"slug":89,"avatar_urls":90,"acf":95,"_links":96},"mark.ashton","http://home.uipress.co","https://data.uipress.co/author/mark-ashton/","mark-ashton",{"24":91,"48":92,"96":93,"128":94},"https://secure.gravatar.com/avatar/27fafe7ca4d54e25aa91f001a17d4da4b5ec5a58b0d5236358218dd39413eb83?s=24&d=mm&r=g","https://secure.gravatar.com/avatar/27fafe7ca4d54e25aa91f001a17d4da4b5ec5a58b0d5236358218dd39413eb83?s=48&d=mm&r=g","https://secure.gravatar.com/avatar/27fafe7ca4d54e25aa91f001a17d4da4b5ec5a58b0d5236358218dd39413eb83?s=96&d=mm&r=g","https://secure.gravatar.com/avatar/27fafe7ca4d54e25aa91f001a17d4da4b5ec5a58b0d5236358218dd39413eb83?s=128&d=mm&r=g",[],{"self":97,"collection":101},[98],{"href":55,"targetHints":99},{"allow":100},[45],[102],{"href":103},"https://data.uipress.co/wp-json/wp/v2/users",[105],{"id":20,"date":106,"slug":107,"type":108,"link":109,"title":110,"author":19,"featured_media":112,"acf":113,"caption":114,"alt_text":22,"media_type":115,"mime_type":116,"media_details":117,"source_url":160,"_links":165},"2026-07-08T11:38:46","screenshot-2026-07-08-at-19-33-23","attachment","https://data.uipress.co/introducing-admin-framework-wordpress-admin-rebuilt/screenshot-2026-07-08-at-19-33-23/",{"rendered":111},"Screenshot 2026-07-08 at 19.33.23",0,[],{"rendered":22},"image","image/png",{"width":118,"height":119,"file":120,"filesize":121,"sizes":122,"image_meta":161,"original_image":164},2560,1473,"2026/07/Screenshot-2026-07-08-at-19.33.23-scaled.png",659770,{"medium":123,"large":129,"thumbnail":135,"medium_large":140,"1536x1536":146,"2048x2048":152,"full":158},{"file":124,"width":125,"height":126,"filesize":127,"mime_type":116,"source_url":128},"Screenshot-2026-07-08-at-19.33.23-300x173.png",300,173,22878,"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-300x173.png",{"file":130,"width":131,"height":132,"filesize":133,"mime_type":116,"source_url":134},"Screenshot-2026-07-08-at-19.33.23-1024x589.png",1024,589,170350,"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-1024x589.png",{"file":136,"width":137,"height":137,"filesize":138,"mime_type":116,"source_url":139},"Screenshot-2026-07-08-at-19.33.23-150x150.png",150,12156,"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-150x150.png",{"file":141,"width":142,"height":143,"filesize":144,"mime_type":116,"source_url":145},"Screenshot-2026-07-08-at-19.33.23-768x442.png",768,442,108944,"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-768x442.png",{"file":147,"width":148,"height":149,"filesize":150,"mime_type":116,"source_url":151},"Screenshot-2026-07-08-at-19.33.23-1536x884.png",1536,884,315039,"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-1536x884.png",{"file":153,"width":154,"height":155,"filesize":156,"mime_type":116,"source_url":157},"Screenshot-2026-07-08-at-19.33.23-2048x1178.png",2048,1178,478686,"https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-2048x1178.png",{"file":159,"width":118,"height":119,"mime_type":116,"source_url":160},"Screenshot-2026-07-08-at-19.33.23-scaled.png","https://data.uipress.co/wp-content/uploads/2026/07/Screenshot-2026-07-08-at-19.33.23-scaled.png",{"aperture":162,"credit":22,"camera":22,"caption":22,"created_timestamp":162,"copyright":22,"focal_length":162,"iso":162,"shutter_speed":162,"title":22,"orientation":162,"keywords":163,"alt":22},"0",[],"Screenshot-2026-07-08-at-19.33.23.png",{"self":166,"collection":170,"about":173,"author":176,"replies":178,"wp:attached-to":181,"curies":183},[167],{"href":68,"targetHints":168},{"allow":169},[45],[171],{"href":172},"https://data.uipress.co/wp-json/wp/v2/media",[174],{"href":175},"https://data.uipress.co/wp-json/wp/v2/types/attachment",[177],{"embeddable":54,"href":55},[179],{"embeddable":54,"href":180},"https://data.uipress.co/wp-json/wp/v2/comments?post=13111",[182],{"embeddable":54,"post_type":10,"id":4,"href":42},[184],{"name":81,"href":82,"templated":54},[186,229],[187,209],{"id":26,"link":188,"name":189,"slug":190,"taxonomy":74,"acf":191,"_links":192},"https://data.uipress.co/category/blog/","Blog","blog",[],{"self":193,"collection":198,"about":201,"wp:post_type":204,"curies":207},[194],{"href":195,"targetHints":196},"https://data.uipress.co/wp-json/wp/v2/categories/7",{"allow":197},[45],[199],{"href":200},"https://data.uipress.co/wp-json/wp/v2/categories",[202],{"href":203},"https://data.uipress.co/wp-json/wp/v2/taxonomies/category",[205],{"href":206},"https://data.uipress.co/wp-json/wp/v2/posts?categories=7",[208],{"name":81,"href":82,"templated":54},{"id":27,"link":210,"name":211,"slug":212,"taxonomy":74,"acf":213,"_links":214},"https://data.uipress.co/category/news/","News","news",[],{"self":215,"collection":220,"about":222,"wp:post_type":224,"curies":227},[216],{"href":217,"targetHints":218},"https://data.uipress.co/wp-json/wp/v2/categories/5",{"allow":219},[45],[221],{"href":200},[223],{"href":203},[225],{"href":226},"https://data.uipress.co/wp-json/wp/v2/posts?categories=5",[228],{"name":81,"href":82,"templated":54},[],1784103076015]