{"id":270173,"date":"2026-01-22T18:27:48","date_gmt":"2026-01-22T18:27:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/headless-bridge\/"},"modified":"2026-03-06T19:57:17","modified_gmt":"2026-03-06T19:57:17","slug":"headless-bridge-by-crux","status":"closed","type":"plugin","link":"https:\/\/sk.wordpress.org\/plugins\/headless-bridge-by-crux\/","author":23427479,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.4","stable_tag":"1.0.4","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Headless Bridge by Crux","header_author":"Crux Advisors","header_description":"Zero-runtime headless WordPress API with pre-compiled responses for maximum performance","assets_banners_color":"1d1f22","last_updated":"2026-03-06 19:57:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.headless-bridge.com","header_author_uri":"https:\/\/cruxadvisors.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":118,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"andyryan","date":"2026-02-28 16:14:10"},"1.0.4":{"tag":"1.0.4","author":"andyryan","date":"2026-03-06 19:57:17"}},"upgrade_notice":{"1.0.0":"<p>Initial release of Headless Bridge - zero-runtime headless API with pre-compiled responses.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3471704,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3471704,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3471707,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3471707,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3445083,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3445083,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3445083,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Dashboard with cache statistics and queue status","2":"Settings page for configuration","3":"API Keys management","4":"License activation (Pro)","5":"Example JSON response"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[141196,169165,190739,247,23853],"plugin_category":[54],"plugin_contributors":[254494],"plugin_business_model":[],"class_list":["post-270173","plugin","type-plugin","status-closed","hentry","plugin_tags-headless","plugin_tags-jamstack","plugin_tags-next-js","plugin_tags-performance","plugin_tags-rest-api","plugin_category-security-and-spam-protection","plugin_contributors-andyryan","plugin_committers-andyryan"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/headless-bridge-by-crux_1d1f22.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/headless-bridge-by-crux\/assets\/screenshot-1.png?rev=3445083","caption":"Dashboard with cache statistics and queue status"},{"src":"https:\/\/ps.w.org\/headless-bridge-by-crux\/assets\/screenshot-2.png?rev=3445083","caption":"Settings page for configuration"},{"src":"https:\/\/ps.w.org\/headless-bridge-by-crux\/assets\/screenshot-3.png?rev=3445083","caption":"API Keys management"}],"raw_content":"<!--section=description-->\n<p><strong>Headless Bridge by Crux<\/strong> is a high-performance headless solution that pre-compiles your content into optimized JSON responses. Unlike traditional approaches that calculate data on-the-fly, Headless Bridge compiles everything when you save a post, resulting in fast API responses.<\/p>\n\n<h4>Why Headless Bridge?<\/h4>\n\n<p>Traditional headless setups can suffer from runtime overhead:\n* They calculate data <strong>on-the-fly<\/strong>, leading to slow TTFB (Time To First Byte)\n* Complex, nested JSON structures that frontend developers struggle with\n* Every request hits the database and runs PHP logic\n* Performance degrades as your site grows<\/p>\n\n<p><strong>Headless Bridge uses a \"Zero-Runtime\" architecture:<\/strong>\n* Pre-calculates the entire API response when a post is <strong>SAVED<\/strong>\n* Stores flat, optimized JSON in a custom database table\n* Serves responses via a single, fast REST endpoint\n* Includes SEO metadata and responsive images automatically<\/p>\n\n<h4>How It Works<\/h4>\n\n<p>Traditional headless setups calculate data on every request, running multiple database queries and PHP logic each time. Headless Bridge takes a different approach:<\/p>\n\n<ul>\n<li><strong>Pre-compiles content<\/strong> when you save a post, not when a visitor requests it<\/li>\n<li><strong>Serves flat JSON<\/strong> from a single optimized database query<\/li>\n<li><strong>Reduces response size<\/strong> with a streamlined, flat data structure<\/li>\n<li><strong>Eliminates runtime overhead<\/strong> by removing on-the-fly calculations<\/li>\n<\/ul>\n\n<h4>Free Features<\/h4>\n\n<ul>\n<li>\u2705 <strong>Pre-compiled JSON<\/strong> - Zero runtime overhead<\/li>\n<li>\u2705 <strong>Flat JSON structure<\/strong> - Intuitive for React\/Next.js developers<\/li>\n<li>\u2705 <strong>SEO ready<\/strong> - Auto-includes Yoast\/RankMath metadata<\/li>\n<li>\u2705 <strong>Image optimization<\/strong> - Srcset data for next\/image<\/li>\n<li>\u2705 <strong>Background processing<\/strong> - Uses Action Scheduler or WP-Cron<\/li>\n<li>\u2705 <strong>API key authentication<\/strong> - Secure preview access<\/li>\n<li>\u2705 <strong>Rate limiting<\/strong> - Built-in DDoS protection<\/li>\n<li>\u2705 <strong>UUID-based IDs<\/strong> - Prevents ID enumeration attacks<\/li>\n<li>\u2705 <strong>Multi-language<\/strong> - WPML &amp; Polylang support<\/li>\n<\/ul>\n\n<h4>Pro Features (Separate Plugin)<\/h4>\n\n<p>Upgrade to the Pro addon plugin for advanced functionality:<\/p>\n\n<ul>\n<li>\ud83d\ude80 <strong>ACF Integration<\/strong> - Automatically include Advanced Custom Fields in your API responses<\/li>\n<li>\ud83d\ude80 <strong>Webhooks<\/strong> - Trigger external services (Vercel, Netlify, etc.) on content updates<\/li>\n<li>\ud83d\ude80 <strong>Priority Support<\/strong> - Email support with 24-hour response time<\/li>\n<li>\ud83d\ude80 <strong>Automatic Updates<\/strong> - Seamless plugin updates through WordPress<\/li>\n<\/ul>\n\n<p><strong>Pro is a separate addon plugin<\/strong> that extends the free version.<\/p>\n\n<p><a href=\"https:\/\/www.headless-bridge.com\/pro\">Learn more &amp; Download Pro \u2192<\/a><\/p>\n\n<h4>Built For<\/h4>\n\n<ul>\n<li>Next.js websites<\/li>\n<li>React applications<\/li>\n<li>Jamstack sites<\/li>\n<li>Mobile apps<\/li>\n<li>High-traffic headless WordPress sites<\/li>\n<\/ul>\n\n<h4>API Endpoints<\/h4>\n\n<p><strong>Base URL:<\/strong> <code>https:\/\/your-wordpress-site.com\/wp-json\/bridge\/v1<\/code><\/p>\n\n<ul>\n<li><code>GET \/page?slug={slug}<\/code> - Get page by slug<\/li>\n<li><code>GET \/page\/{uuid}<\/code> - Get page by UUID<\/li>\n<li><code>GET \/pages?type={type}&amp;limit=20<\/code> - List pages<\/li>\n<li><code>GET \/stats<\/code> - Get cache statistics (admin only)<\/li>\n<\/ul>\n\n<h4>Developer Friendly<\/h4>\n\n<ul>\n<li>Clean, flat JSON structure<\/li>\n<li>TypeScript-ready responses<\/li>\n<li>Comprehensive hooks and filters<\/li>\n<li>Well-documented codebase<\/li>\n<li>Built with security in mind<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>For support, please visit:\n* <a href=\"https:\/\/www.headless-bridge.com\/docs\">Documentation<\/a>\n* <a href=\"https:\/\/github.com\/cruxadvisors\/headless-bridge-by-crux\/issues\">GitHub Issues<\/a><\/p>\n\n<p><strong>Pro users:<\/strong> Priority email support included with your license.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/headless-bridge<\/code>, or install through the WordPress plugins screen<\/li>\n<li>Activate the plugin through the 'Plugins' screen<\/li>\n<li>Go to <strong>Headless Bridge \u2192 Dashboard<\/strong> to verify installation<\/li>\n<li>Click <strong>\"Recompile All Content\"<\/strong> to process existing posts<\/li>\n<li>Use the API endpoints in your frontend application<\/li>\n<\/ol>\n\n<h4>Next.js Integration Example<\/h4>\n\n<pre><code>`javascript\n<\/code><\/pre>\n\n<p>\/\/ lib\/wordpress.ts\nconst WP_API_URL = process.env.NEXT_PUBLIC_WP_API_URL;<\/p>\n\n<p>export async function getPage(slug) {\n  const res = await fetch(\n        ${WP_API_URL}\/bridge\/v1\/page?slug=${slug},\n    { next: { revalidate: 3600 } }\n  );\n  return res.ok ? res.json() : null;\n}\n    `<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20this%20replace%20other%20headless%20solutions%3F\"><h3>Can this replace other headless solutions?<\/h3><\/dt>\n<dd><p>For most standard content delivery use cases, yes. If you need complex nested queries, a GraphQL-based solution might be more suitable, but Headless Bridge excels at fast, pre-compiled content delivery.<\/p><\/dd>\n<dt id=\"how%20does%20it%20handle%20content%20updates%3F\"><h3>How does it handle content updates?<\/h3><\/dt>\n<dd><p>Content is automatically recompiled in the background when you save a post. There's no manual cache invalidation needed.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20acf%20%28advanced%20custom%20fields%29%3F\"><h3>Does it work with ACF (Advanced Custom Fields)?<\/h3><\/dt>\n<dd><p>Yes! ACF support is available in the <strong>Pro addon plugin<\/strong> (sold separately). The Pro addon extends this free plugin with ACF integration, webhooks, and more.<\/p>\n\n<p><a href=\"https:\/\/www.headless-bridge.com\/pro\">Get Pro addon \u2192<\/a><\/p><\/dd>\n<dt id=\"what%20about%20custom%20post%20types%3F\"><h3>What about custom post types?<\/h3><\/dt>\n<dd><p>Yes! Enable them in <strong>Settings \u2192 Enabled Post Types<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20invalidate%20the%20cache%3F\"><h3>How do I invalidate the cache?<\/h3><\/dt>\n<dd><p>The cache auto-updates when you save a post. For manual clearing: <strong>Dashboard \u2192 Clear All Cache<\/strong><\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20wpml%2Fpolylang%3F\"><h3>Can I use this with WPML\/Polylang?<\/h3><\/dt>\n<dd><p>Yes! Multi-language support is <strong>FREE<\/strong> and works automatically with WPML and Polylang. See MULTILINGUAL.md for setup instructions.<\/p><\/dd>\n<dt id=\"how%20do%20i%20preview%20draft%20content%3F\"><h3>How do I preview draft content?<\/h3><\/dt>\n<dd><p>Generate an API key in <strong>Headless Bridge \u2192 API Keys<\/strong>, then use it in your requests with the <code>preview=true<\/code> parameter.<\/p><\/dd>\n<dt id=\"is%20it%20secure%3F\"><h3>Is it secure?<\/h3><\/dt>\n<dd><p>Yes! Built with security in mind:\n* API keys stored as SHA-256 hashes\n* Rate limiting to prevent DDoS\n* UUID-based IDs to prevent enumeration\n* Preview access requires authentication<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Version bump and rebuild for distribution<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix: Resolved fatal error from undefined constants (HEADBRIDGE_PLUGIN_URL, HEADBRIDGE_VERSION) in admin, license, and updater classes<\/li>\n<li>Fix: Aligned all constant references to use HB_VERSION, HB_PLUGIN_URL, HB_PLUGIN_FILE<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: WordPress.org compliance - Removed all license validation code from free version<\/li>\n<li>Fix: WordPress.org compliance - Changed all prefixes from \"hb\" to \"headbridge\" (4+ character requirement)<\/li>\n<li>Enhancement: All features now fully functional in free version with zero restrictions<\/li>\n<li>Info: Pro features (ACF, Webhooks, Auto-updates) available as separate addon plugin<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: Added locale fallback for post queries to ensure posts appear in API<\/li>\n<li>Fix: Improved database query handling for multi-locale environments<\/li>\n<li>Enhancement: Better error handling when posts have strict locale matching<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Core API endpoints (\/page, \/pages, \/stats)<\/li>\n<li>SEO metadata support (Yoast, RankMath)<\/li>\n<li>Image optimization with srcset<\/li>\n<li>Background compilation with Action Scheduler<\/li>\n<li>API key authentication<\/li>\n<li>Rate limiting<\/li>\n<li>UUID-based public IDs<\/li>\n<li>Multi-language support (WPML\/Polylang)<\/li>\n<li>License validation system<\/li>\n<li>Pro features: ACF integration, Webhooks<\/li>\n<li>Auto-update mechanism for Pro users<\/li>\n<\/ul>","raw_excerpt":"Zero-runtime headless API with pre-compiled JSON responses for fast content delivery.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/270173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=270173"}],"author":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/andyryan"}],"wp:attachment":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=270173"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=270173"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=270173"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=270173"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=270173"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=270173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}