diff --git a/__tests__/src/components/WorkspaceExport.test.js b/__tests__/src/components/WorkspaceExport.test.js
index 5d309538978c74c92b8463ebc3cc2a21b5c3ce92..c56584884e17accedb4ece1a198106896bddc0f4 100644
--- a/__tests__/src/components/WorkspaceExport.test.js
+++ b/__tests__/src/components/WorkspaceExport.test.js
@@ -5,14 +5,17 @@ import WorkspaceExport from '../../../src/components/WorkspaceExport';
 describe('WorkspaceExport', () => {
   let wrapper;
   let handleClose;
+  let mockState;
 
   beforeEach(() => {
     handleClose = jest.fn();
+    mockState = { windows: { }, config: { }, manifests: { } };
 
     wrapper = shallow(
       <WorkspaceExport
         open
         handleClose={handleClose}
+        state={mockState}
       />,
     );
   });
@@ -20,4 +23,13 @@ describe('WorkspaceExport', () => {
   it('renders without an error', () => {
     expect(wrapper.find('WithStyles(Dialog)').length).toBe(1);
   });
+
+  it('renders an exportable version of state', () => {
+    expect(wrapper.find('pre').length).toBe(1);
+    console.log(wrapper.find('pre').debug());
+    debugger; // eslint-disable-line
+    expect(wrapper.find('pre').text()).toMatch('"config":');
+    expect(wrapper.find('pre').text()).toMatch('"windows":');
+    expect(wrapper.find('pre').text()).not.toMatch('"manifests":');
+  });
 });
diff --git a/src/components/WorkspaceExport.js b/src/components/WorkspaceExport.js
index ec7be597b53f205f5d3000fe09abad3508b084fd..8bbbb6e50d81673d155a65185b5f002609ae9221 100644
--- a/src/components/WorkspaceExport.js
+++ b/src/components/WorkspaceExport.js
@@ -7,6 +7,19 @@ import PropTypes from 'prop-types';
 /**
  */
 class WorkspaceExport extends Component {
+  /**
+   * @private
+   */
+  exportableState() {
+    const { state } = this.props;
+    const { config, windows } = state;
+
+    return JSON.stringify({
+      config,
+      windows,
+    }, null, 2);
+  }
+
   /**
    * render
    * @return
@@ -20,6 +33,9 @@ class WorkspaceExport extends Component {
         <DialogTitle id="form-dialog-title">Download/Export</DialogTitle>
         <DialogContent>
           {children}
+          <pre>
+            {this.exportableState()}
+          </pre>
         </DialogContent>
       </Dialog>
     );
@@ -30,6 +46,7 @@ WorkspaceExport.propTypes = {
   handleClose: PropTypes.func.isRequired,
   open: PropTypes.bool, // eslint-disable-line react/forbid-prop-types
   children: PropTypes.node,
+  state: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
 };
 
 WorkspaceExport.defaultProps = {
diff --git a/src/components/WorkspaceMenu.js b/src/components/WorkspaceMenu.js
index 2282803d3510bfc4420f556cdb3aceead2ed88e4..3b8b74a215e2907070ea19c1c0a3c8a901489bb9 100644
--- a/src/components/WorkspaceMenu.js
+++ b/src/components/WorkspaceMenu.js
@@ -10,7 +10,7 @@ import ViewHeadlineIcon from '@material-ui/icons/ViewHeadline';
 import PropTypes from 'prop-types';
 import WindowList from '../containers/WindowList';
 import WorkspaceSettings from './WorkspaceSettings';
-import WorkspaceExport from './WorkspaceExport';
+import WorkspaceExport from '../containers/WorkspaceExport';
 
 /**
  */
diff --git a/src/containers/WorkspaceExport.js b/src/containers/WorkspaceExport.js
new file mode 100644
index 0000000000000000000000000000000000000000..a90a4670fb89a2dc0a37338be8349c198726f9ae
--- /dev/null
+++ b/src/containers/WorkspaceExport.js
@@ -0,0 +1,17 @@
+import { compose } from 'redux';
+import { connect } from 'react-redux';
+import WorkspaceExport from '../components/WorkspaceExport';
+
+/**
+ * mapStateToProps - to hook up connect
+ * @memberof Workspace
+ * @private
+ */
+const mapStateToProps = state => ({ state });
+
+const enhance = compose(
+  connect(mapStateToProps, {}),
+  // further HOC go here
+);
+
+export default enhance(WorkspaceExport);