diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -358,7 +358,7 @@
     'rsrc/js/application/conpherence/behavior-pontificate.js' => '53f6f2dd',
     'rsrc/js/application/conpherence/behavior-widget-pane.js' => '40b1ff90',
     'rsrc/js/application/countdown/timer.js' => '889c96f3',
-    'rsrc/js/application/dashboard/behavior-dashboard-async-panel.js' => 'fd965b41',
+    'rsrc/js/application/dashboard/behavior-dashboard-async-panel.js' => 'f1375ea5',
     'rsrc/js/application/dashboard/behavior-dashboard-move-panels.js' => 'fa187a68',
     'rsrc/js/application/differential/DifferentialInlineCommentEditor.js' => 'f2441746',
     'rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js' => '533a187b',
@@ -553,7 +553,7 @@
     'javelin-behavior-conpherence-widget-pane' => '40b1ff90',
     'javelin-behavior-countdown-timer' => '889c96f3',
     'javelin-behavior-dark-console' => 'e9fdb5e5',
-    'javelin-behavior-dashboard-async-panel' => 'fd965b41',
+    'javelin-behavior-dashboard-async-panel' => 'f1375ea5',
     'javelin-behavior-dashboard-move-panels' => 'fa187a68',
     'javelin-behavior-device' => '03d6ed07',
     'javelin-behavior-differential-add-reviewers-and-ccs' => '533a187b',
@@ -1965,6 +1965,12 @@
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
+    'f1375ea5' =>
+    array(
+      0 => 'javelin-behavior',
+      1 => 'javelin-dom',
+      2 => 'javelin-workflow',
+    ),
     'f2441746' =>
     array(
       0 => 'javelin-dom',
@@ -2033,12 +2039,6 @@
       0 => 'phabricator-busy',
       1 => 'javelin-behavior',
     ),
-    'fd965b41' =>
-    array(
-      0 => 'javelin-behavior',
-      1 => 'javelin-dom',
-      2 => 'javelin-workflow',
-    ),
     'fe2e0ba4' =>
     array(
       0 => 'javelin-behavior',
diff --git a/src/applications/dashboard/controller/PhabricatorDashboardPanelRenderController.php b/src/applications/dashboard/controller/PhabricatorDashboardPanelRenderController.php
--- a/src/applications/dashboard/controller/PhabricatorDashboardPanelRenderController.php
+++ b/src/applications/dashboard/controller/PhabricatorDashboardPanelRenderController.php
@@ -37,13 +37,14 @@
       ->setViewer($viewer)
       ->setPanel($panel)
       ->setParentPanelPHIDs($parent_phids)
+      ->setHeaderless($request->getBool('headerless'))
       ->renderPanel();
 
     if ($request->isAjax()) {
       return id(new AphrontAjaxResponse())
         ->setContent(
           array(
-            'panelMarkup' => $rendered_panel,
+            'panelMarkup' => hsprintf('%s', $rendered_panel),
           ));
     }
 
diff --git a/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php b/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php
--- a/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php
+++ b/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php
@@ -6,6 +6,16 @@
   private $viewer;
   private $enableAsyncRendering;
   private $parentPanelPHIDs;
+  private $headerless;
+
+  public function setHeaderless($headerless) {
+    $this->headerless = $headerless;
+    return $this;
+  }
+
+  public function getHeaderless() {
+    return $this->headerless;
+  }
 
   /**
    * Allow the engine to render the panel via Ajax.
@@ -75,9 +85,14 @@
   }
 
   private function renderErrorPanel($title, $body) {
-    return id(new PHUIObjectBoxView())
-      ->setHeaderText($title)
-      ->setFormErrors(array($body));
+    if ($this->getHeaderless()) {
+      return id(new AphrontErrorView())
+        ->setErrors(array($body));
+    } else {
+      return id(new PHUIObjectBoxView())
+        ->setHeaderText($title)
+        ->setFormErrors(array($body));
+    }
   }
 
   private function renderAsyncPanel(PhabricatorDashboardPanel $panel) {
@@ -88,16 +103,28 @@
       array(
         'panelID' => $panel_id,
         'parentPanelPHIDs' => $this->getParentPanelPHIDs(),
+        'headerless' => $this->getHeaderless(),
         'uri' => '/dashboard/panel/render/'.$panel->getID().'/',
       ));
 
-    return id(new PHUIObjectBoxView())
-      ->addSigil('dashboard-panel')
-      ->setMetadata(array(
-        'objectPHID' => $panel->getPHID()))
-      ->setHeaderText($panel->getName())
-      ->setID($panel_id)
-      ->appendChild(pht('Loading...'));
+    $content = pht('Loading...');
+
+    if ($this->headerless) {
+      return phutil_tag(
+        'div',
+        array(
+          'id' => $panel_id,
+        ),
+        $content);
+    } else {
+      return id(new PHUIObjectBoxView())
+        ->addSigil('dashboard-panel')
+        ->setMetadata(array(
+          'objectPHID' => $panel->getPHID()))
+        ->setHeaderText($panel->getName())
+        ->setID($panel_id)
+        ->appendChild($content);
+    }
   }
 
   /**
diff --git a/src/applications/dashboard/paneltype/PhabricatorDashboardPanelType.php b/src/applications/dashboard/paneltype/PhabricatorDashboardPanelType.php
--- a/src/applications/dashboard/paneltype/PhabricatorDashboardPanelType.php
+++ b/src/applications/dashboard/paneltype/PhabricatorDashboardPanelType.php
@@ -47,6 +47,10 @@
 
     $content = $this->renderPanelContent($viewer, $panel, $engine);
 
+    if ($engine->getHeaderless()) {
+      return $content;
+    }
+
     return id(new PHUIObjectBoxView())
       ->addSigil('dashboard-panel')
       ->setMetadata(array(
diff --git a/src/applications/dashboard/paneltype/PhabricatorDashboardPanelTypeTabs.php b/src/applications/dashboard/paneltype/PhabricatorDashboardPanelTypeTabs.php
--- a/src/applications/dashboard/paneltype/PhabricatorDashboardPanelTypeTabs.php
+++ b/src/applications/dashboard/paneltype/PhabricatorDashboardPanelTypeTabs.php
@@ -91,9 +91,10 @@
           ->setEnableAsyncRendering(true)
           ->setParentPanelPHIDs($parent_phids)
           ->setPanel($panel)
+          ->setHeaderless(true)
           ->renderPanel();
       } else {
-        $panel_content = 'nope';
+        $panel_content = pht('(Invalid Panel)');
       }
 
       $content[] = phutil_tag(
diff --git a/webroot/rsrc/js/application/dashboard/behavior-dashboard-async-panel.js b/webroot/rsrc/js/application/dashboard/behavior-dashboard-async-panel.js
--- a/webroot/rsrc/js/application/dashboard/behavior-dashboard-async-panel.js
+++ b/webroot/rsrc/js/application/dashboard/behavior-dashboard-async-panel.js
@@ -9,8 +9,13 @@
   var panel = JX.$(config.panelID);
   panel.style.opacity = '0.5';
 
+  var data = {
+    parentPanelPHIDs: config.parentPanelPHIDs.join(','),
+    headerless: config.headerless ? 1 : 0
+  };
+
   new JX.Workflow(config.uri)
-    .setData({parentPanelPHIDs: config.parentPanelPHIDs.join(',')})
+    .setData(data)
     .setHandler(function(r) {
       JX.DOM.replace(panel, JX.$H(r.panelMarkup));
     })