diff --git a/docz/docs/03-demos/01-math/21-pandas.md b/docz/docs/03-demos/01-math/21-pandas.md
index efe033b..ff21179 100644
--- a/docz/docs/03-demos/01-math/21-pandas.md
+++ b/docz/docs/03-demos/01-math/21-pandas.md
@@ -40,7 +40,7 @@ This demo was tested in the following deployments:
 
 | Architecture | JS Engine       | Pandas | Python | Date       |
 |:-------------|:----------------|:-------|:-------|:-----------|
-| `darwin-x64` | Duktape `2.7.0` | 2.0.3  | 3.11.7 | 2024-01-29 |
+| `darwin-x64` | Duktape `2.7.0` | 2.2.1  | 3.12.2 | 2024-03-15 |
 | `darwin-arm` | Duktape `2.7.0` | 2.0.3  | 3.11.7 | 2024-02-13 |
 | `linux-x64`  | Duktape `2.7.0` | 1.5.3  | 3.11.3 | 2024-01-29 |
 
@@ -219,6 +219,23 @@ sudo pacman -Syu python-pandas
 
 :::
 
+:::caution pass
+
+On macOS systems with a Python version from Homebrew, the install will fail:
+
+```
+error: externally-managed-environment
+```
+
+When the demo was last tested, Homebrew did not have a pre-built Pandas formula.
+Instead, Pandas should be installed with the `--break-system-packages` option:
+
+```bash
+sudo python3 -m pip install pandas --break-system-packages
+```
+
+:::
+
 1) Build the Duktape shared library:
 
 ```bash
@@ -356,11 +373,11 @@ The Pandas example requires a few slight changes to work with Polars:
 
 This demo was tested in the following deployments:
 
-| Architecture | JS Engine       | Polars | Python | Date       |
-|:-------------|:----------------|:-------|:-------|:-----------|
-| `darwin-x64` | Duktape `2.7.0` | 0.20.6 | 3.11.7 | 2024-01-30 |
-| `darwin-arm` | Duktape `2.7.0` | 0.20.7 | 3.11.7 | 2024-02-13 |
-| `linux-x64`  | Duktape `2.7.0` | 0.20.6 | 3.11.3 | 2024-01-30 |
+| Architecture | JS Engine       | Polars  | Python | Date       |
+|:-------------|:----------------|:--------|:-------|:-----------|
+| `darwin-x64` | Duktape `2.7.0` | 0.20.15 | 3.12.2 | 2024-03-15 |
+| `darwin-arm` | Duktape `2.7.0` | 0.20.7  | 3.11.7 | 2024-02-13 |
+| `linux-x64`  | Duktape `2.7.0` | 0.20.6  | 3.11.3 | 2024-01-30 |
 
 :::
 
@@ -428,7 +445,7 @@ It is recommended to use a virtual environment for Polars:
 ```bash
 mkdir sheetjs-polars
 cd sheetjs-polars
-python -m venv .
+python3 -m venv .
 ./bin/pip install polars
 ```
 
diff --git a/docz/docs/03-demos/03-net/08-headless.md b/docz/docs/03-demos/03-net/08-headless.md
index dd5fbc7..054f03e 100644
--- a/docz/docs/03-demos/03-net/08-headless.md
+++ b/docz/docs/03-demos/03-net/08-headless.md
@@ -404,7 +404,7 @@ This demo was tested in the following environments:
 
 | Architecture | PhantomJS | Date       |
 |:-------------|:----------|:-----------|
-| `darwin-x64` | `2.1.1`   | 2024-02-23 |
+| `darwin-x64` | `2.1.1`   | 2024-03-15 |
 | `win10-x64`  | `2.1.1`   | 2024-02-23 |
 
 :::
diff --git a/docz/docs/03-demos/12-static/07-eleventy.md b/docz/docs/03-demos/12-static/07-eleventy.md
index f9ee830..ffbf8f1 100644
--- a/docz/docs/03-demos/12-static/07-eleventy.md
+++ b/docz/docs/03-demos/12-static/07-eleventy.md
@@ -116,11 +116,8 @@ This demo was tested in the following environments:
 
 | Eleventy        | Date       |
 |:----------------|:-----------|
-| `2.0.1`         | 2023-10-08 |
-| `3.0.0-alpha.1` | 2023-12-04 |
-
-At the time of writing, the `3.0.0-alpha.1` ("Alpha") release was only available
-through the Git repository. Steps for `2.0.1` ("Stable") and Alpha are included.
+| `2.0.1`         | 2024-03-15 |
+| `3.0.0-alpha.5` | 2024-03-15 |
 
 :::
 
@@ -140,14 +137,14 @@ npm init -y
   
 
 {`\
-npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz @11ty/eleventy`}
+npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz @11ty/eleventy@2.0.1`}
 
 
   
   
 
 {`\
-npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz 11ty/eleventy`}
+npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz @11ty/eleventy@3.0.0-alpha.5`}
 
 
   
@@ -190,8 +187,8 @@ The server will generate `index.html` from `index.njk` and show the server URL:
 
 6) Open the URL in a web browser. The page should include a table.
 
-7) Open `_data/pres.xlsx` in a spreadsheet editor.  Add a new row to the end
-of the list and save the file.
+7) Open `_data/pres.xlsx` in a spreadsheet editor. Add a row to the bottom of
+the "Sheet1" sheet (set `A7` to "SheetJS Dev" and `B7` to `47`). Save the file.
 
 The server log will note that the file changed:
 
diff --git a/docz/docs/03-demos/19-desktop/01-electron.md b/docz/docs/03-demos/19-desktop/01-electron.md
index a10cd21..5e96dd4 100644
--- a/docz/docs/03-demos/19-desktop/01-electron.md
+++ b/docz/docs/03-demos/19-desktop/01-electron.md
@@ -188,7 +188,7 @@ This demo was tested in the following environments:
 
 | OS and Version | Architecture | Electron | Date       |
 |:---------------|:-------------|:---------|:-----------|
-| macOS 13.5.1   | `darwin-x64` | `27.1.3` | 2023-12-09 |
+| macOS 14.4     | `darwin-x64` | `29.1.4` | 2024-03-15 |
 | macOS 14.1.2   | `darwin-arm` | `27.1.3` | 2023-12-01 |
 | Windows 10     | `win10-x64`  | `28.2.0` | 2024-03-04 |
 | Windows 11     | `win11-arm`  | `27.1.3` | 2023-12-01 |
diff --git a/docz/docs/03-demos/19-desktop/03-wails.md b/docz/docs/03-demos/19-desktop/03-wails.md
index 66344ba..5f7a8ff 100644
--- a/docz/docs/03-demos/19-desktop/03-wails.md
+++ b/docz/docs/03-demos/19-desktop/03-wails.md
@@ -297,7 +297,7 @@ This demo was tested in the following environments:
 
 | OS and Version | Architecture | Wails    | Date       |
 |:---------------|:-------------|:---------|:-----------|
-| macOS 13.6     | `darwin-x64` | `v2.6.0` | 2023-11-05 |
+| macOS 14.4     | `darwin-x64` | `v2.8.0` | 2024-03-15 |
 | macOS 14.1.2   | `darwin-arm` | `v2.6.0` | 2023-12-01 |
 | Windows 10     | `win10-x64`  | `v2.8.0` | 2024-03-10 |
 | Windows 11     | `win11-arm`  | `v2.6.0` | 2023-12-01 |
@@ -368,15 +368,10 @@ sudo pacman -Syu base-devel gtk3 glib2 pango harfbuzz cairo gdk-pixbuf2 atk libs
 
 ```bash
 wails init -n sheetjs-wails -t svelte-ts
-```
-
-2) Enter the directory:
-
-```bash
 cd sheetjs-wails
 ```
 
-3) Install front-end dependencies:
+2) Install front-end dependencies:
 
 {`\
 cd frontend
@@ -385,7 +380,7 @@ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz
 cd ..`}
 
 
-4) Download source files:
+3) Download source files:
 
 - Download [`app.go`](pathname:///wails/app.go) and replace `app.go`
 - Download [`App.svelte`](pathname:///wails/App.svelte) and replace
@@ -396,7 +391,7 @@ curl -o app.go https://docs.sheetjs.com/wails/app.go
 curl -o frontend/src/App.svelte https://docs.sheetjs.com/wails/App.svelte
 ```
 
-5) Build the app with
+4) Build the app:
 
 ```bash
 wails build
@@ -404,12 +399,12 @@ wails build
 
 It will print the path to the generated program (typically in `build/bin/`).
 
-6) Run the generated application.
+5) Run the generated application.
 
 **Testing**
 
-When run, the program will download [`pres.xlsx`](https://sheetjs.com/pres.xlsx)
-and display the contents of the first worksheet in a table.
+The program will download [`pres.xlsx`](https://sheetjs.com/pres.xlsx) and
+display the contents of the first worksheet in a table.
 
 To test export features, click "Export XLSX". The app will ask for a file name
 and location. After clicking Save, the app will export to XLSX. This file can be
diff --git a/docz/docs/03-demos/19-desktop/04-tauri.md b/docz/docs/03-demos/19-desktop/04-tauri.md
index 41439a7..4fbe5de 100644
--- a/docz/docs/03-demos/19-desktop/04-tauri.md
+++ b/docz/docs/03-demos/19-desktop/04-tauri.md
@@ -255,14 +255,14 @@ const save_button_callback = async() => {
 
 This demo was tested in the following environments:
 
-| OS and Version | Architecture | Tauri    | Date       |
-|:---------------|:-------------|:---------|:-----------|
-| macOS 14.1.1   | `darwin-x64` | `v1.5.6` | 2023-11-17 |
-| macOS 14.0     | `darwin-arm` | `v1.5.2` | 2023-10-18 |
-| Windows 10     | `win10-x64`  | `v1.5.0` | 2023-10-01 |
-| Windows 11     | `win11-arm`  | `v1.5.7` | 2023-12-01 |
-| Linux (HoloOS) | `linux-x64`  | `v1.5.9` | 2024-01-23 |
-| Linux (Debian) | `linux-arm`  | `v1.5.7` | 2023-12-01 |
+| OS and Version | Architecture | Tauri     | Date       |
+|:---------------|:-------------|:----------|:-----------|
+| macOS 14.4     | `darwin-x64` | `v1.5.11` | 2024-03-15 |
+| macOS 14.0     | `darwin-arm` | `v1.5.2`  | 2023-10-18 |
+| Windows 10     | `win10-x64`  | `v1.5.0`  | 2023-10-01 |
+| Windows 11     | `win11-arm`  | `v1.5.7`  | 2023-12-01 |
+| Linux (HoloOS) | `linux-x64`  | `v1.5.9`  | 2024-01-23 |
+| Linux (Debian) | `linux-arm`  | `v1.5.7`  | 2023-12-01 |
 
 :::
 
@@ -287,15 +287,15 @@ If required dependencies are installed, the output will show a checkmark next to
 
 ```
 [✔] Environment
-    - OS: Mac OS 14.1.1 X64
+    - OS: Mac OS 14.4.0 X64
     ✔ Xcode Command Line Tools: installed
-    ✔ rustc: 1.74.0 (79e9716c9 2023-11-13)
-    ✔ cargo: 1.74.0 (ecb9851af 2023-10-18)
-    ✔ rustup: 1.26.0+198 (393e187b7 2023-11-16)
+    ✔ rustc: 1.76.0 (07dca489a 2024-02-04)
+    ✔ cargo: 1.76.0 (c84b36747 2024-01-18)
+    ✔ rustup: 1.27.0 (bbb9276d2 2024-03-08)
     ✔ Rust toolchain: stable-x86_64-apple-darwin (default)
-    - node: 20.9.0
-    - npm: 10.1.0
-    - bun: 1.0.2
+    - node: 20.11.1
+    - npm: 10.2.4
+    - bun: 1.0.31
 ```
 
 :::caution pass
@@ -325,7 +325,7 @@ npm i --save-dev @tauri-apps/cli`}
 3) Add the highlighted lines to `src-tauri/tauri.conf.json` in the
    `tauri.allowlist` section:
 
-```json title="src-tauri/tauri.conf.json"
+```json title="src-tauri/tauri.conf.json (add highlighted lines)"
   "tauri": {
     "allowlist": {
 // highlight-start
@@ -345,7 +345,7 @@ npm i --save-dev @tauri-apps/cli`}
 
 In the same file, look for the `"identifier"` key and replace the value with `com.sheetjs.tauri`:
 
-```json title="src-tauri/tauri.conf.json"
+```json title="src-tauri/tauri.conf.json (edit highlighted line)"
         "icons/icon.ico"
       ],
       // highlight-next-line
diff --git a/docz/docs/03-demos/19-desktop/05-neutralino.md b/docz/docs/03-demos/19-desktop/05-neutralino.md
index 5a8e8e0..b6a09d9 100644
--- a/docz/docs/03-demos/19-desktop/05-neutralino.md
+++ b/docz/docs/03-demos/19-desktop/05-neutralino.md
@@ -190,14 +190,14 @@ const save_button_callback = async() => {
 
 This demo was tested in the following environments:
 
-| OS and Version | Architecture | Server    | Client    | Date       |
-|:---------------|:-------------|:----------|:----------|:-----------|
-| macOS 13.5.1   | `darwin-x64` | `v4.14.1` | `v3.12.0` | 2023-12-13 |
-| macOS 14.0     | `darwin-arm` | `v4.14.1` | `v3.12.0` | 2023-10-18 |
-| Windows 10     | `win10-x64`  | `v4.14.1` | `v3.12.0` | 2023-12-09 |
-| Windows 11     | `win11-arm`  | `v4.14.1` | `v3.12.0` | 2023-12-01 |
-| Linux (HoloOS) | `linux-x64`  | `v4.14.1` | `v3.12.0` | 2024-01-26 |
-| Linux (Debian) | `linux-arm`  | `v4.14.1` | `v3.12.0` | 2023-12-01 |
+| OS and Version | Architecture | Server   | Client   | Date       |
+|:---------------|:-------------|:---------|:---------|:-----------|
+| macOS 14.4     | `darwin-x64` | `5.0.0`  | `5.0.1`  | 2024-03-15 |
+| macOS 14.0     | `darwin-arm` | `4.14.1` | `3.12.0` | 2023-10-18 |
+| Windows 10     | `win10-x64`  | `4.14.1` | `3.12.0` | 2023-12-09 |
+| Windows 11     | `win11-arm`  | `4.14.1` | `3.12.0` | 2023-12-01 |
+| Linux (HoloOS) | `linux-x64`  | `4.14.1` | `3.12.0` | 2024-01-26 |
+| Linux (Debian) | `linux-arm`  | `4.14.1` | `3.12.0` | 2023-12-01 |
 
 :::
 
diff --git a/docz/docs/03-demos/19-desktop/06-reactnative.md b/docz/docs/03-demos/19-desktop/06-reactnative.md
index a3fbdf2..296d55f 100644
--- a/docz/docs/03-demos/19-desktop/06-reactnative.md
+++ b/docz/docs/03-demos/19-desktop/06-reactnative.md
@@ -49,7 +49,7 @@ This demo was tested in the following environments:
 | Windows 10     | `win10-x64`  | `v0.72.16`  | 2023-10-27 |
 | Windows 11     | `win11-x64`  | `v0.72.12`  | 2023-10-14 |
 | Windows 11     | `win11-arm`  | `v0.72.20`  | 2023-12-01 |
-| MacOS 14.1     | `darwin-x64` | `v0.72.5`   | 2023-10-27 |
+| MacOS 14.4     | `darwin-x64` | `v0.73.21`  | 2024-03-15 |
 | MacOS 14.1.2   | `darwin-arm` | `v0.72.11`  | 2023-12-01 |
 
 :::
@@ -643,7 +643,7 @@ Native for macOS required React Native `0.71`.
 
 **The official documentation is out of date.**
 
-There exist official `react-native-macos` releases compatible with RN `0.72`
+There exist official `react-native-macos` releases compatible with RN `0.73`
 
 :::
 
@@ -652,19 +652,38 @@ There exist official `react-native-macos` releases compatible with RN `0.72`
 
 ### Project Setup
 
-1) Create a new React Native project using React Native `0.72`:
+1) Create a new React Native project using React Native `0.73`:
 
 ```bash
-npx -y react-native init SheetJSmacOS --template react-native@^0.72.0
+npx -y react-native init SheetJSmacOS --template react-native@^0.73.0
 cd SheetJSmacOS
 ```
 
+If prompted to install CocoaPods, type `Y`.
+
 2) Create the MacOS part of the application:
 
 ```bash
 npx -y react-native-macos-init --no-telemetry
 ```
 
+:::caution pass
+
+In the most recent x64 test, the build failed due to `visionos` errors:
+
+```
+[!] Failed to load 'React-RCTFabric' podspec: 
+[!] Invalid `React-RCTFabric.podspec` file: undefined method `visionos' for #.
+```
+
+This error was resolved by upgrading CocoaPods to `1.15.2`:
+
+```bash
+sudo gem install cocoapods
+```
+
+:::
+
 3) Install the SheetJS library:
 
 {`\
@@ -679,6 +698,19 @@ npx react-native run-macos
 
 Close the running app from the dock and close the Metro terminal window.
 
+:::warning pass
+
+When the demo was last tested on x64, the app failed with a warning
+
+> No bundle URL present.
+
+**As this affects the default app, this is a bug in React Native macOS!**
+
+The production builds work as expected. If there are errors, the recommended
+approach is to [make a release build](#production) every time.
+
+:::
+
 ### Native Module
 
 5) Create the file `macos/SheetJSmacOS-macOS/RCTDocumentPicker.h` with the
@@ -884,6 +916,16 @@ curl -LO https://docs.sheetjs.com/reactnative/rnm/App.tsx
 
 #### Development
 
+:::info pass
+
+In some test runs, the development mode app failed with a "bundle URL" error:
+
+> No bundle URL present.
+
+The ["Production" section](#production) section covers release builds and tests.
+
+:::
+
 11) Launch the app again:
 
 ```bash
@@ -899,7 +941,14 @@ Close the running app from the dock and close the Metro terminal window.
 
 #### Production
 
-13) Make a release build:
+13) Remove all existing `SheetJSmacOS.app` release builds. They will be stored
+in the `~/Library/Developer/Xcode/DerivedData` folder.
+
+```bash
+find ~/Library/Developer/Xcode/DerivedData -name SheetJSmacOS.app | grep Release | while read x; do rm -rf "$x"; done
+```
+
+14) Make a release build:
 
 ```bash
 xcodebuild -workspace macos/SheetJSmacOS.xcworkspace -scheme SheetJSmacOS-macOS -config Release
@@ -918,13 +967,13 @@ If there are no instances, the app path can be found in the `DerivedData` folder
 find ~/Library/Developer/Xcode/DerivedData -name SheetJSmacOS.app | grep Release
 ```
 
-14) Run the release app:
+15) Run the release app:
 
 ```bash
 open -a "$(find ~/Library/Developer/Xcode/DerivedData -name SheetJSmacOS.app | grep Release | head -n 1)"
 ```
 
-15) Click "Click here to Open File!" and use the file picker to select
+16) Click "Click here to Open File!" and use the file picker to select
 `pres.xlsx` from the Downloads folder.
 
 The app will refresh and display the data from the file.
diff --git a/docz/docs/03-demos/19-desktop/09-cli.md b/docz/docs/03-demos/19-desktop/09-cli.md
index b8404a6..9dee21c 100644
--- a/docz/docs/03-demos/19-desktop/09-cli.md
+++ b/docz/docs/03-demos/19-desktop/09-cli.md
@@ -51,7 +51,7 @@ This demo was tested in the following deployments:
 
 | Architecture | Version      | NodeJS    | Source    | Date       |
 |:-------------|:-------------|:----------|:----------|:-----------|
-| `darwin-x64` | `4.0.0-rc.2` | `14.15.3` | Pre-built | 2023-10-10 |
+| `darwin-x64` | `4.0.0-rc.4` | `14.15.3` | Pre-built | 2024-03-15 |
 | `darwin-arm` | `4.0.0-rc.2` | `18.18.0` | Compiled  | 2023-12-01 |
 | `win10-x64`  | `4.0.0-rc.4` | `14.15.3` | Pre-built | 2024-03-04 |
 | `win11-arm`  | `4.0.0-rc.2` | `20.10.0` | Compiled  | 2023-12-01 |
@@ -63,7 +63,7 @@ This demo was tested in the following deployments:
 
 | Architecture | Version | NodeJS   | Date       |
 |:-------------|:--------|:---------|:-----------|
-| `darwin-x64` | `5.8.1` | `18.5.0` | 2023-10-11 |
+| `darwin-x64` | `5.8.1` | `18.5.0` | 2024-03-15 |
 | `darwin-arm` | `5.8.1` | `18.5.0` | 2023-12-01 |
 | `win10-x64`  | `5.8.1` | `18.5.0` | 2023-10-09 |
 | `win11-arm`  | `5.8.1` | `18.5.0` | 2023-12-01 |
@@ -75,7 +75,7 @@ This demo was tested in the following deployments:
 
 | Architecture | Version | NodeJS    | Date       |
 |:-------------|:--------|:----------|:-----------|
-| `darwin-x64` | `2.1.2` | `20.8.0`  | 2023-10-12 |
+| `darwin-x64` | `2.4.0` | `21.7.1`  | 2024-03-15 |
 | `darwin-arm` | `2.3.0` | `21.3.0`  | 2023-12-01 |
 | `win10-x64`  | `2.1.2` | `16.20.2` | 2023-10-09 |
 | `linux-x64`  | `2.3.0` | `21.6.1`  | 2024-01-26 |
@@ -228,14 +228,14 @@ Run `boxednode`:
   
 
 ```bash
-npx boxednode@2.3.0 -s xlsx-cli.js -t xlsx-cli
+npx boxednode@2.4.0 -s xlsx-cli.js -t xlsx-cli
 ```
 
   
   
 
 ```bash
-npx boxednode@2.1.2 -s xlsx-cli.js -t xlsx-cli.exe -n 16.20.2
+npx boxednode@2.4.0 -s xlsx-cli.js -t xlsx-cli.exe -n 16.20.2
 ```
 
 :::info pass
@@ -305,7 +305,7 @@ This demo was last tested in the following deployments:
 
 | Architecture | V8 Version    | Crate    | Date       |
 |:-------------|:--------------|:---------|:-----------|
-| `darwin-x64` | `11.8.172.13` | `0.79.2` | 2023-10-12 |
+| `darwin-x64` | `12.3.219.9`  | `0.88.0` | 2024-03-15 |
 | `darwin-arm` | `11.8.172.13` | `0.79.2` | 2023-10-18 |
 | `win10-x64`  | `11.8.172.13` | `0.79.2` | 2023-10-09 |
 | `win11-x64`  | `11.8.172.13` | `0.79.2` | 2023-10-14 |
@@ -416,7 +416,7 @@ This demo was last tested in the following deployments:
 
 | Architecture | Version  | Date       |
 |:-------------|:---------|:-----------|
-| `darwin-x64` | `1.37.1` | 2023-10-12 |
+| `darwin-x64` | `1.41.3` | 2024-03-15 |
 | `darwin-arm` | `1.37.2` | 2023-10-18 |
 | `win10-x64`  | `1.37.1` | 2023-10-09 |
 | `win11-x64`  | `1.37.2` | 2023-10-14 |
diff --git a/docz/docs/03-demos/27-local/02-websql.md b/docz/docs/03-demos/27-local/02-websql.md
index 08274ab..a6633ed 100644
--- a/docz/docs/03-demos/27-local/02-websql.md
+++ b/docz/docs/03-demos/27-local/02-websql.md
@@ -157,8 +157,8 @@ Browsers that do not support WebSQL will throw errors:
 | Browser     | Date       | Error Message                 |
 |:------------|:-----------|:------------------------------|
 | Chrome 120  | 2024-02-11 | `openDatabase is not defined` |
-| Safari 17.3 | 2024-02-11 | `Web SQL is deprecated`       |
-| Firefox 118 | 2023-10-13 | `openDatabase is not defined` |
+| Safari 17.4 | 2024-03-15 | `Web SQL is deprecated`       |
+| Firefox 122 | 2024-03-15 | `openDatabase is not defined` |
 
 :::
 
diff --git a/docz/docs/03-demos/42-engines/01-duktape.md b/docz/docs/03-demos/42-engines/01-duktape.md
index a2114d1..f8573f4 100644
--- a/docz/docs/03-demos/42-engines/01-duktape.md
+++ b/docz/docs/03-demos/42-engines/01-duktape.md
@@ -130,7 +130,7 @@ This demo was tested in the following deployments:
 
 | Architecture | Version | Date       |
 |:-------------|:--------|:-----------|
-| `darwin-x64` | `2.7.0` | 2023-12-05 |
+| `darwin-x64` | `2.7.0` | 2024-03-15 |
 | `darwin-arm` | `2.7.0` | 2023-10-18 |
 | `win10-x64`  | `2.7.0` | 2023-10-27 |
 | `win11-arm`  | `2.7.0` | 2023-12-01 |
@@ -406,16 +406,21 @@ This demo was tested in the following deployments:
 
 | Architecture | Version | PHP Version | Date       |
 |:-------------|:--------|:------------|:-----------|
-| `darwin-x64` | `2.7.0` | `8.3.2`     | 2024-01-26 |
+| `darwin-x64` | `2.7.0` | `8.3.4`     | 2024-03-15 |
 | `darwin-arm` | `2.7.0` | `8.3.2`     | 2024-02-13 |
 | `linux-x64`  | `2.7.0` | `8.2.7`     | 2024-01-29 |
 
 :::
 
-0) Ensure `php` is installed and available on the system path.
+0) Ensure `php` is installed and available on the system path
 
-1) Inspect the `php.ini` configuration file. The location of the file can be
-found by running `php --ini`. The following output is from the last macOS test:
+1) Find the `php.ini` file:
+
+```bash
+php --ini
+```
+
+The following output is from the last macOS test:
 
 ```text pass
 Configuration File (php.ini) Path: /usr/local/etc/php/8.3
@@ -425,6 +430,8 @@ Scan for additional .ini files in: /usr/local/etc/php/8.3/conf.d
 Additional .ini files parsed:      /usr/local/etc/php/8.3/conf.d/ext-opcache.ini
 ```
 
+2) Edit the `php.ini` configuration file.
+
 The following line should appear in the configuration:
 
 ```ini title="php.ini (add to end)"
@@ -434,7 +441,7 @@ extension=ffi
 If this line is prefixed with a `;`, remove the semicolon. If this line does not
 appear in the file, add it to the end.
 
-2) Build the Duktape shared library:
+3) Build the Duktape shared library:
 
 ```bash
 curl -LO https://duktape.org/duktape-2.7.0.tar.xz
@@ -444,7 +451,7 @@ make -f Makefile.sharedlibrary
 cd ..
 ```
 
-3) Copy the shared library to the current folder. When the demo was last tested,
+4) Copy the shared library to the current folder. When the demo was last tested,
 the shared library file name differed by platform:
 
 | OS     | name                      |
@@ -456,7 +463,7 @@ the shared library file name differed by platform:
 cp duktape-*/libduktape.* .
 ```
 
-4) Download the SheetJS Standalone script, shim script and test file. Move all
+5) Download the SheetJS Standalone script, shim script and test file. Move all
 three files to the project directory:
 
 
@@ -471,13 +478,13 @@ curl -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.min.js
 curl -LO https://sheetjs.com/pres.numbers`}
 
-5) Download [`SheetJSDuk.php`](pathname:///duk/SheetJSDuk.php):
+6) Download [`SheetJSDuk.php`](pathname:///duk/SheetJSDuk.php):
 
 ```bash
 curl -LO https://docs.sheetjs.com/duk/SheetJSDuk.php
 ```
 
-6) Edit the `SheetJSDuk.php` script.
+7) Edit the `SheetJSDuk.php` script.
 
 The `$sofile` variable declares the path to the library:
 
@@ -511,7 +518,7 @@ $sofile = './libduktape.so.207.20700';
   
 
 
-7) Run the script:
+8) Run the script:
 
 ```bash
 php SheetJSDuk.php pres.numbers
@@ -533,7 +540,7 @@ This demo was tested in the following deployments:
 
 | Architecture | Version | Python   | Date       |
 |:-------------|:--------|:---------|:-----------|
-| `darwin-x64` | `2.7.0` | `3.11.7` | 2024-01-29 |
+| `darwin-x64` | `2.7.0` | `3.12.2` | 2024-03-15 |
 | `darwin-arm` | `2.7.0` | `3.11.7` | 2024-02-13 |
 | `linux-x64`  | `2.7.0` | `3.11.3` | 2024-01-29 |
 
@@ -937,7 +944,7 @@ This demo was tested in the following deployments:
 
 | Architecture | Version | Date       |
 |:-------------|:--------|:-----------|
-| `darwin-x64` | `2.2.0` | 2024-01-26 |
+| `darwin-x64` | `2.2.0` | 2024-03-15 |
 | `darwin-arm` | `2.2.0` | 2024-02-13 |
 | `linux-x64`  | `2.2.0` | 2024-01-26 |
 
diff --git a/docz/docs/03-demos/42-engines/02-v8.md b/docz/docs/03-demos/42-engines/02-v8.md
index 816d8ad..5f276f1 100644
--- a/docz/docs/03-demos/42-engines/02-v8.md
+++ b/docz/docs/03-demos/42-engines/02-v8.md
@@ -124,7 +124,7 @@ This demo was tested in the following deployments:
 
 | V8 Version    | Platform     | OS Version    | Compiler         | Date       |
 |:--------------|:-------------|:--------------|:-----------------|:-----------|
-| `12.1.131`    | `darwin-x64` | macOS 14.1    | `clang 15.0.0`   | 2023-11-15 |
+| `12.4.253`    | `darwin-x64` | macOS 14.4    | `clang 15.0.0`   | 2024-03-15 |
 | `12.1.283`    | `darwin-arm` | macOS 14.1.2  | `clang 15.0.0`   | 2023-12-01 |
 | `12.0.265`    | `win10-x64`  | Windows 10    | `CL 19.37.32822` | 2023-10-28 |
 | `12.3.50`     | `linux-x64`  | HoloOS 3.5.7  | `gcc 13.1.1`     | 2024-01-26 |
@@ -406,11 +406,11 @@ The recommended fix is to delete the referenced folder and re-run `gclient sync`
 
 
 
-5) Checkout the desired version. The following command pulls `12.3.50`:
+5) Checkout the desired version. The following command pulls `12.4.253`:
 
 
 ```bash
-git checkout tags/12.3.50 -b sample
+git checkout tags/12.4.253 -b sample
 ```
 
 :::caution pass
@@ -418,14 +418,14 @@ git checkout tags/12.3.50 -b sample
 The official documentation recommends:
 
 ```bash
-git checkout refs/tags/12.3.50 -b sample -t
+git checkout refs/tags/12.4.253 -b sample -t
 ```
 
 This command failed in local testing:
 
 ```
-E:\v8\v8>git checkout refs/tags/12.3.50 -b sample -t
-fatal: cannot set up tracking information; starting point 'refs/tags/12.3.50' is not a branch
+E:\v8\v8>git checkout refs/tags/12.4.253 -b sample -t
+fatal: cannot set up tracking information; starting point 'refs/tags/12.4.253' is not a branch
 ```
 
 :::
@@ -564,11 +564,24 @@ ninja -C out.gn\x64.release.sample v8_monolith
 
 ```bash
 g++ -I. -Iinclude samples/hello-world.cc -o hello_world -fno-rtti -lv8_monolith \
-    -lv8_libbase -lv8_libplatform -ldl -Lout.gn/x64.release.sample/obj/ -pthread \
+    -ldl -Lout.gn/x64.release.sample/obj/ -pthread \
     -std=c++17 -DV8_COMPRESS_POINTERS=1 -DV8_ENABLE_SANDBOX
 ./hello_world
 ```
 
+:::info pass
+
+In older V8 versions, the flags `-lv8_libbase -lv8_libplatform` were required.
+
+Linking against `libv8_libbase` or `libv8_libplatform` in V8 version `12.4.253`
+elicited linker errors:
+
+```
+ld: multiple errors: unknown file type in '/Users/test/dev/v8/v8/out.gn/x64.release.sample/obj/libv8_libplatform.a'; unknown file type in '/Users/test/dev/v8/v8/out.gn/x64.release.sample/obj/libv8_libbase.a'
+```
+
+:::
+
   
   
 
@@ -706,6 +719,25 @@ g++ -I. -Iinclude hello-world.cc -o hello_world -fno-rtti -lv8_monolith \
 ./hello_world
 ```
 
+:::caution pass
+
+In some V8 versions, the command failed in the linker stage:
+
+```
+ld: multiple errors: unknown file type in '/Users/test/dev/v8/v8/out.gn/x64.release.sample/obj/libv8_libplatform.a'; unknown file type in '/Users/test/dev/v8/v8/out.gn/x64.release.sample/obj/libv8_libbase.a'
+```
+
+The build succeeds after removing `libv8_libbase` and `libv8_libplatform`:
+
+```bash
+g++ -I. -Iinclude hello-world.cc -o hello_world -fno-rtti -lv8_monolith \
+    -ldl -Lobj/ -pthread -std=c++17 \
+    -DV8_COMPRESS_POINTERS=1 -DV8_ENABLE_SANDBOX
+./hello_world
+```
+
+:::
+
   
   
 
@@ -749,6 +781,24 @@ g++ -I. -Iinclude sheetjs.v8.cc -o sheetjs.v8 -fno-rtti -lv8_monolith \
     -DV8_COMPRESS_POINTERS=1 -DV8_ENABLE_SANDBOX
 ```
 
+:::caution pass
+
+In some V8 versions, the command failed in the linker stage:
+
+```
+ld: multiple errors: unknown file type in '/Users/test/dev/v8/v8/out.gn/x64.release.sample/obj/libv8_libplatform.a'; unknown file type in '/Users/test/dev/v8/v8/out.gn/x64.release.sample/obj/libv8_libbase.a'
+```
+
+The build succeeds after removing `libv8_libbase` and `libv8_libplatform`:
+
+```bash
+g++ -I. -Iinclude sheetjs.v8.cc -o sheetjs.v8 -fno-rtti -lv8_monolith \
+    -ldl -Lobj/ -pthread -std=c++17 \
+    -DV8_COMPRESS_POINTERS=1 -DV8_ENABLE_SANDBOX
+```
+
+:::
+
   
   
 
@@ -813,7 +863,7 @@ This demo was last tested in the following deployments:
 
 | Architecture | V8 Crate | Date       |
 |:-------------|:---------|:-----------|
-| `darwin-x64` | `0.81.0` | 2023-11-14 |
+| `darwin-x64` | `0.88.0` | 2024-03-15 |
 | `darwin-arm` | `0.82.0` | 2023-12-01 |
 | `win10-x64`  | `0.81.0` | 2023-11-14 |
 | `linux-x64`  | `0.83.1` | 2024-01-26 |
diff --git a/docz/docs/03-demos/42-engines/04-jsc.md b/docz/docs/03-demos/42-engines/04-jsc.md
index 961eeb9..817fe78 100644
--- a/docz/docs/03-demos/42-engines/04-jsc.md
+++ b/docz/docs/03-demos/42-engines/04-jsc.md
@@ -133,7 +133,7 @@ This demo was tested in the following environments:
 
 | Architecture | Swift   | Date       |
 |:-------------|:--------|:-----------|
-| `darwin-x64` | `5.9.2` | 2024-02-21 |
+| `darwin-x64` | `5.10`  | 2024-03-15 |
 | `darwin-arm` | `5.9.2` | 2024-02-21 |
 
 :::
diff --git a/docz/docs/03-demos/42-engines/05-jint.md b/docz/docs/03-demos/42-engines/05-jint.md
index b00e401..4b2cac0 100644
--- a/docz/docs/03-demos/42-engines/05-jint.md
+++ b/docz/docs/03-demos/42-engines/05-jint.md
@@ -41,7 +41,7 @@ setting the environment variable on supported platforms.
 :::note pass
 
 Most of the integration functions are not documented. This explanation is based
-on version `3.0.0`.
+on version `3.0.1`.
 
 :::
 
@@ -163,7 +163,7 @@ This demo was tested in the following deployments:
 
 | Architecture | Jint Version      | Date       |
 |:-------------|:------------------|:-----------|
-| `darwin-x64` | `3.0.0`           | 2024-01-22 |
+| `darwin-x64` | `3.0.1`           | 2024-03-15 |
 | `darwin-arm` | `3.0.0-beta-2056` | 2023-12-01 |
 | `win10-x64`  | `3.0.0`           | 2024-03-04 |
 | `win11-arm`  | `3.0.0-beta-2056` | 2023-12-01 |
@@ -183,7 +183,7 @@ This demo was tested in the following deployments:
 
 Add the following line to `.profile`, `.bashrc` and `.zshrc`:
 
-```bash
+```bash title="(add to .profile , .bashrc , and .zshrc)"
 export DOTNET_CLI_TELEMETRY_OPTOUT=1
 ```
 
@@ -246,7 +246,7 @@ dotnet run
 
 ```bash
 dotnet nuget add source https://www.myget.org/F/jint/api/v3/index.json
-dotnet add package Jint --version 3.0.0
+dotnet add package Jint --version 3.0.1
 ```
 
 To verify Jint is installed, replace `Program.cs` with the following:
@@ -382,11 +382,7 @@ tested platforms are listed below:
 | Linux (x64)      | `linux-x64`   |
 | Linux (ARM)      | `linux-arm64` |
 
-9) Build the standalone application. Replace `$RID` with the real value in:
-
-```bash
-dotnet publish -c Release -r $RID --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true
-```
+9) Build the standalone application.Tested platforms (click to hide)
 
@@ -463,7 +459,7 @@ The last line of the output from Step 9 will print the output folder.
 For Intel Mac, the RID is `osx-x64` and the command is:
 
 ```bash
-cp bin/Release/net6.0/osx-x64/publish/SheetJSJint .
+cp bin/Release/net*/osx-x64/publish/SheetJSJint .
 ```