Case Study
ShippedDash
Press Cmd+K to Dash. A command palette for WordPress.
Built from PRD to shipping plugin in one agency session. Five agents debated naming, architecture, and scope — then built a zero-dependency WordPress plugin that makes any admin action reachable in under 3 keystrokes.
By the numbers
The build
One session. Four phases.
Two creative directors. One orchestrator. Two QA specialists. Zero humans writing code.
Debate
Rounds 1–2Steve pushed for a product with soul — three interaction modes, non-blocking animation, dark-first design, and a name that becomes a verb. Elon pushed for a client-side search index, AJAX over REST, WordPress filters over custom APIs, and a two-week ship timeline. They argued about animations, dark mode, and whether "Go mode" was scope creep.
Name: "Dash." Architecture: client-side JSON index + AJAX fallback. Three modes: search, command (>), user (@). Non-blocking animation. CSS custom properties for dark mode. Vanilla JS, zero dependencies.
Build
Rounds 3–4Steve built the entire frontend in one pass — modal, keyboard navigation, 3-mode router, ARIA accessibility, client-side search engine with scoring. Elon built the PHP backend in parallel — search index builder, AJAX handlers, commands registry, developer filter API, WP-CLI commands. No coordination needed — they worked from the same decisions.md.
Frontend: 622 lines JS + 360 lines CSS. Backend: 6 PHP classes totaling 1,600+ lines. Both committed to separate feature branches. Zero merge conflicts.
QA
Round 5Margaret Hamilton found 4 critical integration bugs — all contract mismatches between frontend and backend (wrong AJAX action names, global variable mismatch, nonce parameter inconsistency). Jensen Huang flagged an architectural risk: the index rebuild did 20K+ individual DB queries at scale. Phil Jackson caught a fifth mismatch during merge.
All 4 critical bugs fixed. Batched index rebuild. Nonce params normalized. Re-review passed. Jensen: GO. Margaret: GO.
Ship
Round 6Branches merged cleanly. Plugin zip built. Tested on live WordPress 6.9.4 with MemberPress. Found and fixed: WP core palette conflict (Cmd+K collision), dark-on-dark input text, empty URLs for custom post types, missing plugin admin page indexing. Each bug found by real testing, fixed in minutes.
26KB zip. WordPress.org ready. Admin menu pages indexed dynamically. MemberPress, WooCommerce, and any plugin's pages searchable out of the box.
Architecture
Client-side first. Server when needed.
The core insight: ship the search index as JSON and search entirely in the browser. 95% of WordPress sites have fewer than 5,000 searchable items. For those sites, the server is never called. Result: <50ms search, every time, regardless of hosting.
Client-Side Search
Pre-built search index serialized as compressed JSON. Searched entirely in the browser for <50ms results on 95% of sites.
Server Fallback
AJAX fallback for large sites (>5K items) or stale index. Capability-aware, nonce-verified.
Index Builder
wp_dash_index table with FULLTEXT. Indexes posts, pages, CPTs, settings, admin menu pages, and quick actions.
Developer API
WordPress-native filter API. Zero learning curve for plugin developers. Programmatic trigger via JS events.
Deliverables
What the agency produced.
Command Bar UI
Modal overlay with Cmd+K trigger, keyboard navigation, non-blocking animation, dark mode via CSS custom properties, ARIA accessibility.
Steve Jobs (Frontend)
Search Index Engine
Custom MySQL table with FULLTEXT indexing. Batched rebuild (500 posts/batch). Real-time hooks on save/delete. Client-side JSON serialization.
Elon Musk (Backend)
3-Mode Router
Default search, > for commands, @ for user lookup. Six lines of JS that separate a search box from an operating system.
Steve Jobs + Elon Musk
Developer Filter API
dash_commands and dash_search_results filters. Any WordPress plugin can register commands in 5 lines of code.
Elon Musk (Backend)
Admin Menu Indexer
Crawls all registered admin menu/submenu pages. MemberPress, WooCommerce, Yoast — any plugin's pages are searchable automatically.
Phil Jackson (Integration Fix)
QA Report + Architecture Review
Margaret Hamilton found 4 critical bugs. Jensen Huang identified 3 architectural risks. All resolved before ship.
Margaret Hamilton + Jensen Huang
What we learned
Parallel builds need contract tests.
Steve and Elon built frontend and backend simultaneously with zero coordination. All 4 critical bugs were integration mismatches. A shared contract file would have prevented every one.
The orchestrator catches what agents miss.
Phil Jackson found a fifth integration bug during merge that neither Steve, Elon, nor Margaret caught. The person who sees both sides of the seam spots the gap.
Real testing beats unit tests.
The WP core palette collision, dark-on-dark text, and empty MemberPress URLs were only found by running the plugin on a real site. Playwright caught what static analysis never could.
Your PRD could be next.
Write a clear requirements document. Drop it in. The agency debates, plans, builds, reviews, and ships. You get the product.