diff --git a/app/pages/lab-pages-editor/PagesEditor.jsx b/app/pages/lab-pages-editor/PagesEditor.jsx
new file mode 100644
index 0000000000..cba24e27f5
--- /dev/null
+++ b/app/pages/lab-pages-editor/PagesEditor.jsx
@@ -0,0 +1,44 @@
+/*
+Pages Editor
+Main component of the Pages Editor feature.
+ */
+
+// ESLint: don't import global React, and don't use .defaultProps.
+/* eslint-disable no-console */
+/* eslint-disable react/react-in-jsx-scope */
+/* eslint-disable react/require-default-props */
+
+import { StrictMode } from 'react';
+import PropTypes from 'prop-types';
+
+import DataManager from './DataManager.jsx';
+import Tester from './Tester.jsx';
+import WorkflowHeader from './components/WorkflowHeader.jsx';
+import WorkflowSettingsPage from './components/WorkflowSettingsPage.jsx';
+
+function PagesEditor({ params }) {
+ const { workflowID: workflowId, projectID: projectId } = params;
+
+ return (
+
+
+
+
+
+
+
+
+ );
+}
+
+PagesEditor.propTypes = {
+ params: PropTypes.shape({
+ projectID: PropTypes.string,
+ workflowID: PropTypes.string
+ })
+};
+
+export default PagesEditor;
diff --git a/app/pages/lab-pages-editor/README.md b/app/pages/lab-pages-editor/README.md
index 954ed02757..f3eb94f66b 100644
--- a/app/pages/lab-pages-editor/README.md
+++ b/app/pages/lab-pages-editor/README.md
@@ -2,3 +2,14 @@
The "Pages Editor" is a variant of the Workflow Editor used in the Project Builder.
+This experiment started development in late August/early September 2023, and runs parallel to the [FEM Lab](../lab-fem)
+
+### Dev Notes: Changes to Other PFE Files
+
+The Pages Editor aims to be standalone, with minimum changes to other parts of the PFE code base. However, some changes are necessary, so please note the changes on the following PFE files:
+
+- `app/router.jsx`: modified to add PagesEditor route (`lab/{projectId}/workflows/editor/{workflowId}`)
+- `css/lab-pages-editor.syl`: added style sheet.
+- `css/main.styl`: modified to import PagesEditor stylesheet.
+- `app/pages/lab/project.jsx`: modified to include "isPartOfPagesEditorExperiment" flag, which adds a special style to the PagesEditor's container.
+
\ No newline at end of file
diff --git a/app/pages/lab-pages-editor/components/WorkflowHeader.jsx b/app/pages/lab-pages-editor/components/WorkflowHeader.jsx
new file mode 100644
index 0000000000..cb9e24825e
--- /dev/null
+++ b/app/pages/lab-pages-editor/components/WorkflowHeader.jsx
@@ -0,0 +1,44 @@
+/* eslint-disable no-console */
+/* eslint-disable react/react-in-jsx-scope */
+/* eslint-disable react/require-default-props */
+
+import PropTypes from 'prop-types';
+import { Link } from 'react-router';
+
+import ReturnIcon from '../icons/ReturnIcon.jsx';
+import { useWorkflowContext } from '../context.js';
+import strings from '../strings.json';
+
+export default function WorkflowHeader({
+ projectId = ''
+}) {
+ const { workflow } = useWorkflowContext();
+ const returnUrl = `/lab/${projectId}/workflows`;
+
+ function onClick() {
+ console.log('TODO');
+ }
+
+ if (!workflow) return null;
+
+ return (
+