diff --git a/docz/docs/02-getting-started/01-installation/05-extendscript.md b/docz/docs/02-getting-started/01-installation/05-extendscript.md
index 2d7fd3f..63a02a1 100644
--- a/docz/docs/02-getting-started/01-installation/05-extendscript.md
+++ b/docz/docs/02-getting-started/01-installation/05-extendscript.md
@@ -22,6 +22,20 @@ After downloading the script, it can be directly referenced with `#include`:
 #include "xlsx.extendscript.js"
 ```
 
-For local deployments, the scripts can be placed in the `Scripts` folder.  For
-Photoshop CS6 on Windows 10, the path is typically
-`C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Presets\Scripts`
+For local deployments, the scripts can be placed in the `Scripts` folder. The
+path is application-specific.
+
+| App       | Location                                                         |
+|:----------|:-----------------------------------------------------------------|
+| Photoshop | `\Presets\Scripts` within the Application folder                 |
+| InDesign  | Windows > Utilities > Scripts, click `☰` > "Reveal in Explorer" |
+
+:::note CEP usage
+
+The ExtendScript build should be used when performing spreadsheet operations
+from the host context (within a `jsx` script file).
+
+[The standalone scripts](/docs/getting-started/installation/standalone) should
+be added to CEP extension HTML.
+
+:::
\ No newline at end of file
diff --git a/docz/docs/03-demos/10-extensions/01-extendscript.md b/docz/docs/03-demos/10-extensions/01-extendscript.md
index ec99b64..28193f3 100644
--- a/docz/docs/03-demos/10-extensions/01-extendscript.md
+++ b/docz/docs/03-demos/10-extensions/01-extendscript.md
@@ -1,5 +1,5 @@
 ---
-title: Photoshop and Creative Suite
+title: Photoshop and InDesign
 pagination_prev: demos/cloud/index
 pagination_next: demos/bigdata/index
 ---
@@ -21,10 +21,27 @@ This demo intends to cover parts relevant to SheetJS.  General setup as well as
 general Adobe considerations are not covered here.  A basic familiarity with
 extension development is assumed.
 
-## ExtendScript Scripts
+:::note
 
-[Installation is straightforward:](/docs/getting-started/installation/extendscript) download a
-script and move it to your project directory.
+This demo was verified in the following deployments:
+
+| App       | Platform     | Date       |
+|:----------|:-------------|:-----------|
+| Photoshop | ExtendScript | 2023-04-15 |
+| InDesign  | ExtendScript | 2023-04-15 |
+| InDesign  | CEP          | 2023-04-15 |
+| InDesign  | UXP          | 2023-04-15 |
+
+:::
+
+## ExtendScript
+
+[The "ExtendScript" build](/docs/getting-started/installation/extendscript) can
+be included from a script in the same directory:
+
+```js
+#include "xlsx.extendscript.js"
+```
 
 ### Reading Files
 
@@ -47,46 +64,20 @@ var workbook = XLSX.readFile(thisFile.absoluteURI);
 
 Complete Example (click to hide)
 
+
+  
+
 In this example, the script will show a dialog to select a file.  After reading
 the file, the workbook Author property will be extracted and the Photoshop doc
 author (`activeDocument.info.author`) will be changed accordingly.
 
-This demo was verified in Photoshop CS6 64-bit on Windows 10.
-
-```js
-#target photoshop
-#include "xlsx.extendscript.js";
-
-function main_parse() {
-  /* Show File Picker */
-  var thisFile = File.openDialog("Select a spreadsheet");
-  if(!thisFile) { alert("File not found!"); return; }
-
-  /* Read file from disk */
-  var workbook = XLSX.readFile(thisFile.absoluteURI);
-
-  /* Get Workbook Author */
-  var Props = workbook.Props; if(!Props) { alert("Missing Author!"); return; }
-  var Author = Props.Author; if(!Author) { alert("Missing Author!"); return; }
-
-  /* Change Document Author to Workbook Author */
-  var info = activeDocument.info;
-  alert("Changing Author from |" + info.author + "| to |" + Author + "|");
-  info.author = Author;
-}
-
-main_parse();
-```
-
 0) Download the [test workbook](pathname:///files/SheetJS.xlsb).
 
 1) Download the following scripts:
 - [`xlsx.extendscript.js`](https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.extendscript.js)
-- [`parse.jsx`](pathname:///live/parse.jsx)
+- [`parse.jsx`](pathname:///extendscript/parse.jsx)
 
-and place in the scripts directory.  For CS6 Windows 10 the path is typically
-
-`C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Presets\Scripts`
+and place in the scripts directory.
 
 2) Restart Photoshop and open a file (or create a new one)
 
@@ -96,7 +87,40 @@ and place in the scripts directory.  For CS6 Windows 10 the path is typically
 
 
 
-5) File > File Info... should show the updated Author field!
+5) Check the Author field of the document in File > File Info...
+
+  
+  
+
+In this example, the script will show a dialog to select a file.  After reading
+the file, the script will store data in the document:
+
+- The first Text object in the "Title" TextFrame (the name of the TextFrame in
+the Layers window is "Title")  will be set to the name of the first worksheet.
+
+- The data from the first sheet will be added to the "Table Frame" TextFrame.
+
+0) Download the [test workbook](https://sheetjs.com/pres.xlsx) and
+[InDesign template](pathname:///extendscript/Template.indd)
+
+1) Download the following scripts:
+- [`xlsx.extendscript.js`](https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.extendscript.js)
+- [`esidparse.jsx`](pathname:///extendscript/esidparse.jsx)
+
+Move to the scripts directory. To find the directory, activate Scripts panel
+(Windows > Utilities > Scripts), click `☰`, and select "Reveal in Explorer".
+
+2) Open the template
+
+3) Activate the Scripts panel.  Expand the "User" folder and double-click
+`esidparse` in the list.
+
+4) In the "Select a spreadsheet" file picker, select the test file `pres.xlsx`
+
+A new table will be added and the title will be the name of the first worksheet.
+
+  
+
 
 Complete Example (click to hide)
 
+
+  
+
 In this example, the script will show a dialog to select an output file.  Once
 selected, the library will create a new workbook with one worksheet.  Cell `A1`
 will be "Author" and cell `B1` will be the active Photoshop document Author.
 The PS author is available as `activeDocument.info.author`.
 
-This demo was verified in Photoshop CS6 64-bit on Windows 10.
-
-```js
-#target photoshop
-#include "xlsx.extendscript.js";
-
-function main_write() {
-  /* Show File Picker */
-  var thisFile = File.saveDialog("Select an output file", "*.xlsx;*.xls");
-  if(!thisFile) { alert("File not found!"); return; }
-
-  /* Create new Worksheet */
-  var ws = XLSX.utils.aoa_to_sheet([
-    ["Author", activeDocument.info.author]
-  ]);
-
-  /* Create new Workbook and add worksheet */
-  var wb = XLSX.utils.book_new();
-  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
-
-  /* Write file to disk */
-  XLSX.writeFile(wb, thisFile.absoluteURI);
-  alert("Created File " + thisFile.absoluteURI);
-}
-
-main_write();
-```
-
 1) Download the following scripts:
 - [`xlsx.extendscript.js`](https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.extendscript.js)
-- [`write.jsx`](pathname:///live/write.jsx)
+- [`write.jsx`](pathname:///extendscript/write.jsx)
 
-and place in the scripts directory.  For CS6 Windows 10 the path is typically
-
-`C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Presets\Scripts`
+and place in the scripts directory.
 
 2) Restart Photoshop and open a file (or create a new one)
 
@@ -169,21 +166,129 @@ and place in the scripts directory.  For CS6 Windows 10 the path is typically
 4) File > Scripts > write and use the popup to select the Documents folder.
    Enter `SheetJSPSTest.xlsx` and press "Save"
 
-4) An alert will confirm that the file was created:
+5) An alert will confirm that the file was created:
 
 
 
-5) Open the generated `SheetJSPSTest.xlsx` file and compare to Photoshop author
+6) Open the generated `SheetJSPSTest.xlsx` file and compare to Photoshop author
+
+  
+  
+
+In this example, the script will show a dialog to select an output file.  Once
+selected, the library will scan all text frames for table objects.  Each table
+object will be scanned and a new worksheet will be created.
+
+0) Download the [InDesign document](pathname:///extendscript/Filled.indd)
+
+1) Download the following scripts:
+- [`xlsx.extendscript.js`](https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.extendscript.js)
+- [`esidwrite.jsx`](pathname:///extendscript/esidwrite.jsx)
+
+Move to the scripts directory. To find the directory, activate Scripts panel
+(Windows > Utilities > Scripts), click `☰`, and select "Reveal in Explorer".
+
+2) Open the document.
+
+3) Activate the Scripts panel.  Expand the "User" folder and double-click
+`esidwrite` in the list.  Use the popup to select the Documents folder. Enter
+`SheetJSIDTest.xlsx` and press "Save"
+
+4) An alert will confirm that the file was created. Open `SheetJSIDTest.xlsx`
+and compare to the InDesign doc.
+
+  
+