diff --git a/docz/docs/03-demos/04-grid/index.md b/docz/docs/03-demos/04-grid/index.md
index d6e7775..08ee8ed 100644
--- a/docz/docs/03-demos/04-grid/index.md
+++ b/docz/docs/03-demos/04-grid/index.md
@@ -93,21 +93,21 @@ and idioms.  The same `sheet_to_json` and `json_to_sheet` / `aoa_to_sheet`
 methods are used, but they pull from a shared state object that can be mutated
 with other buttons and components on the page.
 
-### React Data Grid
+#### React Data Grid
 
 **[The exposition has been moved to a separate page.](/docs/demos/grid/rdg)**
 
-### Glide Data Grid
+#### Glide Data Grid
 
 **[The exposition has been moved to a separate page.](/docs/demos/grid/gdg)**
 
-### Material UI Data Grid
+#### Material UI Data Grid
 
 **[The exposition has been moved to a separate page.](/docs/demos/grid/mui#material-ui-data-grid)**
 
 <!-- spellchecker-disable -->
 
-### vue3-table-lite
+#### vue3-table-lite
 
 <!-- spellchecker-enable -->
 
diff --git a/docz/docs/03-demos/20-cli/23-deno.md b/docz/docs/03-demos/20-cli/23-deno.md
index 77404c6..01792ac 100644
--- a/docz/docs/03-demos/20-cli/23-deno.md
+++ b/docz/docs/03-demos/20-cli/23-deno.md
@@ -99,7 +99,7 @@ This demo was last tested in the following deployments:
 
 | Architecture | Deno     | Date       |
 |:-------------|:---------|:-----------|
-| `darwin-x64` | `1.41.3` | 2024-03-15 |
+| `darwin-x64` | `1.43.1` | 2024-05-08 |
 | `darwin-arm` | `1.37.2` | 2023-10-18 |
 | `win10-x64`  | `1.41.3` | 2024-03-24 |
 | `win11-x64`  | `1.37.2` | 2023-10-14 |
diff --git a/docz/docs/03-demos/27-local/index.md b/docz/docs/03-demos/27-local/index.md
index bbecbb7..c875ab9 100644
--- a/docz/docs/03-demos/27-local/index.md
+++ b/docz/docs/03-demos/27-local/index.md
@@ -7,18 +7,34 @@ pagination_next: demos/cloud/index
 import DocCardList from '@theme/DocCardList';
 import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
 
+[SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing
+data from spreadsheets.
+
 There is no standard cross-platform approach to read and write files and data.
-`XLSX.readFile` and `XLSX.writeFile` rely on platform-specific APIs to perform
-the file read and write operations.  Not all platforms support the APIs used in
-the library.
+The `readFile`[^1] and `writeFile`[^2] methods rely on platform-specific APIs to
+perform the file read and write operations.
 
-Demos in this section cover local APIs that are not embedded in the library:
+Many platforms do not support the techniques used by `readFile` and `writeFile`
+but offer other methods. Typically those methods process `Uint8Array` objects or
+binary strings and play nice with the `read`[^3] and `write`[^4] methods.
 
-<ul>{useCurrentSidebarCategory().items.map((item, index) => {
+Demos in this section cover common local APIs:
+
+<ul>
+{useCurrentSidebarCategory().items.map((item, index) => {
   const listyle = (item.customProps?.icon) ? {
     listStyleImage: `url("${item.customProps.icon}")`
   } : {};
   return (<li style={listyle} {...(item.customProps?.class ? {className: item.customProps.class}: {})}>
     <a href={item.href}>{item.label}</a>{item.customProps?.summary && (" - " + item.customProps.summary)}
   </li>);
-})}</ul>
+})}
+</ul>
+
+The [desktop](/docs/demos/desktop/) and [mobile](/docs/demos/mobile/) demos
+cover APIs for iOS, Android, Windows, macOS and Linux applications.
+
+[^1]: See [`readFile` in "Reading Files"](/docs/api/parse-options)
+[^2]: See [`writeFile` in "Writing Files"](/docs/api/write-options)
+[^3]: See [`read` in "Reading Files"](/docs/api/parse-options)
+[^4]: See [`write` in "Writing Files"](/docs/api/write-options)
\ No newline at end of file
diff --git a/docz/docs/03-demos/30-cloud/18-github.md b/docz/docs/03-demos/30-cloud/18-github.md
index 3e2ac63..a7ca1bd 100644
--- a/docz/docs/03-demos/30-cloud/18-github.md
+++ b/docz/docs/03-demos/30-cloud/18-github.md
@@ -18,7 +18,7 @@ storing and comparing versions of structured data using GitHub infrastructure.
 [SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing
 data from spreadsheets.
 
-This demo uses SheetJS in GitHub to process spreadsheet. We'll explore how to
+This demo uses SheetJS in GitHub to process spreadsheets. We'll explore how to
 fetch and process spreadsheets at regular intervals, and how to keep track of
 changes over time.
 
diff --git a/docz/docs/03-demos/index.md b/docz/docs/03-demos/index.md
index ff77370..a30fabc 100644
--- a/docz/docs/03-demos/index.md
+++ b/docz/docs/03-demos/index.md
@@ -117,7 +117,7 @@ in the [issue tracker](https://git.sheetjs.com/sheetjs/docs.sheetjs.com/issues)
 ### Bundlers and Tooling
 
 - [`browserify`](/docs/demos/frontend/bundler/browserify)
-- [`bun`]((/docs/getting-started/installation/bun#bundling)
+- [`bun`](/docs/getting-started/installation/bun#bundling)
 - [`esbuild`](/docs/demos/frontend/bundler/esbuild)
 - [`parcel`](/docs/demos/frontend/bundler/parcel)
 - [`requirejs`](/docs/demos/frontend/bundler/requirejs)
diff --git a/docz/docs/index.md b/docz/docs/index.md
index acf9b81..801cc50 100644
--- a/docz/docs/index.md
+++ b/docz/docs/index.md
@@ -74,15 +74,15 @@ This example assumes you have an existing project with an HTML TABLE element:
 ```jsx title="Sample Component"
 function App() {
   return ( <>
-      <h3>SheetJS Table</h3>
-      <table>
-        <tr><td colSpan="3">SheetJS Table Export</td></tr>
-        <tr><td>Author</td><td>ID</td><td>你好!</td></tr>
-        <tr><td>SheetJS</td><td>7262</td><td>வணக்கம்!</td></tr>
-        <tr><td colSpan="3">
-          <a href="//sheetjs.com">Powered by SheetJS</a>
-        </td></tr>
-      </table>
+    <h3>SheetJS Table</h3>
+    <table>
+      <tr><td colSpan="3">SheetJS Table Export</td></tr>
+      <tr><td>Author</td><td>ID</td><td>你好!</td></tr>
+      <tr><td>SheetJS</td><td>7262</td><td>வணக்கம்!</td></tr>
+      <tr><td colSpan="3">
+        <a href="//sheetjs.com">Powered by SheetJS</a>
+      </td></tr>
+    </table>
   </> )
 }
 export default App;
diff --git a/docz/package.json b/docz/package.json
index 137ab4a..b17486b 100644
--- a/docz/package.json
+++ b/docz/package.json
@@ -15,17 +15,17 @@
   },
   "overrides": {
     "@cmfcmf/docusaurus-search-local": {
-      "@docusaurus/core": "3.2.1"
+      "@docusaurus/core": "3.3.2"
     }
   },
   "dependencies": {
     "@cmfcmf/docusaurus-search-local": "1.1.0",
-    "@docusaurus/core": "3.2.1",
-    "@docusaurus/plugin-client-redirects": "3.2.1",
-    "@docusaurus/preset-classic": "3.2.1",
-    "@docusaurus/theme-common": "3.2.1",
-    "@docusaurus/theme-live-codeblock": "3.2.1",
-    "@docusaurus/theme-mermaid": "3.2.1",
+    "@docusaurus/core": "3.3.2",
+    "@docusaurus/plugin-client-redirects": "3.3.2",
+    "@docusaurus/preset-classic": "3.3.2",
+    "@docusaurus/theme-common": "3.3.2",
+    "@docusaurus/theme-live-codeblock": "3.3.2",
+    "@docusaurus/theme-mermaid": "3.3.2",
     "@mdx-js/react": "3.0.1",
     "clsx": "2.1.0",
     "prism-react-renderer": "2.3.1",
@@ -36,7 +36,7 @@
     "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"
   },
   "devDependencies": {
-    "@docusaurus/module-type-aliases": "3.2.1"
+    "@docusaurus/module-type-aliases": "3.3.2"
   },
   "browserslist": {
     "production": [