This is a clone of Microsoft Office by HTML, CSS and Vanilla JS
See the codeA pixel-faithful office suite in the browser — Office.com-style dashboard plus all four apps: Excel, Word, PowerPoint, OneNote — built from plain HTML/CSS/JS with zero dependencies and zero build tooling, saved into IndexedDB, and guarded by ~1,140 automated end-to-end checks.
cd /home/user # the suite root
python3 -m http.server 8002 --bind 0.0.0.0
# open http://localhost:8002/ → the Office dashboard
The dashboard is the front door: app tiles, Recent documents gathered live from every app's IndexedDB, and one dark-mode switch that syncs into every app (it writes each app's IndexedDB theme key, so every app boots in the same mode).
| Port | What | Root |
|---|---|---|
| 8002 | ⭐ Office dashboard + all apps under one origin | suite root (/home/user) |
| 8001 | Excel alone (test server) | excel/ |
| 8003 | OneNote alone (test server) | onenote/ |
| 8004 | Word alone (test server) | word/ |
| 8005 | PowerPoint alone (test server) | powerpoint/ |
Serving the suite root is all you need for daily use; the per-app ports exist so each app's tracker battery can point at a stable URL.
| App | Folder | Status |
|---|---|---|
| Excel | excel/ | Flagship. 265+ formula functions, charts, .xlsx and legacy .xls round-trip (BIFF8 reader + SpreadsheetML-2003 writer), print engine, dark mode — stable |
| Word | word/ | Stable: print-layout pages, styles, footnotes, .docx/.doc import + export, real tab stops, drag & drop, exact-sheet printing, dark mode incl. backstage, IndexedDB |
| PowerPoint | powerpoint/ | Stable: slides, designer, transitions, slideshow, .pptx and legacy .ppt import (slide text from the CFB stream), .pptx round-trip, dark mode, IndexedDB |
| OneNote | onenote/ | Stable: notebooks, ink, tags, search, transcribe, dark mode, IndexedDB (OneNote has no OOXML/legacy open format — Microsoft never defined one — so there is nothing to round-trip; HTML/JSON export provided) |
All four apps follow the same house rules and sit behind the dashboard's live tiles.
index.html from any static server; there's no npm install for the apps.localStorage anywhere — every app carries a tiny idb.js engine (XKV) that hydrates the store into memory at boot and flushes writes asynchronously. Keys are namespaced: xc.* (Excel), oc.* (OneNote), wc.* (Word), pc.* (PowerPoint).X, ON) and treat any pageerror as failure.index.html ⭐ Office dashboard (serve the root: python3 -m http.server 8002)
excel/ the Excel app + its 12-suite battery + README
onenote/ the OneNote app + smoke/full suites + README
word/ the Word app + 6 suites incl. the 26-check batch8 gauntlet + README
powerpoint/ the PowerPoint app + smoke/full/chaos/foreign suites + README
This is a clone of Microsoft Office by HTML, CSS and Vanilla JS
See the codeA pixel-faithful office suite in the browser — Office.com-style dashboard plus all four apps: Excel, Word, PowerPoint, OneNote — built from plain HTML/CSS/JS with zero dependencies and zero build tooling, saved into IndexedDB, and guarded by ~1,140 automated end-to-end checks.
cd /home/user # the suite root
python3 -m http.server 8002 --bind 0.0.0.0
# open http://localhost:8002/ → the Office dashboard
The dashboard is the front door: app tiles, Recent documents gathered live from every app's IndexedDB, and one dark-mode switch that syncs into every app (it writes each app's IndexedDB theme key, so every app boots in the same mode).
| Port | What | Root |
|---|---|---|
| 8002 | ⭐ Office dashboard + all apps under one origin | suite root (/home/user) |
| 8001 | Excel alone (test server) | excel/ |
| 8003 | OneNote alone (test server) | onenote/ |
| 8004 | Word alone (test server) | word/ |
| 8005 | PowerPoint alone (test server) | powerpoint/ |
Serving the suite root is all you need for daily use; the per-app ports exist so each app's tracker battery can point at a stable URL.
| App | Folder | Status |
|---|---|---|
| Excel | excel/ | Flagship. 265+ formula functions, charts, .xlsx and legacy .xls round-trip (BIFF8 reader + SpreadsheetML-2003 writer), print engine, dark mode — stable |
| Word | word/ | Stable: print-layout pages, styles, footnotes, .docx/.doc import + export, real tab stops, drag & drop, exact-sheet printing, dark mode incl. backstage, IndexedDB |
| PowerPoint | powerpoint/ | Stable: slides, designer, transitions, slideshow, .pptx and legacy .ppt import (slide text from the CFB stream), .pptx round-trip, dark mode, IndexedDB |
| OneNote | onenote/ | Stable: notebooks, ink, tags, search, transcribe, dark mode, IndexedDB (OneNote has no OOXML/legacy open format — Microsoft never defined one — so there is nothing to round-trip; HTML/JSON export provided) |
All four apps follow the same house rules and sit behind the dashboard's live tiles.
index.html from any static server; there's no npm install for the apps.localStorage anywhere — every app carries a tiny idb.js engine (XKV) that hydrates the store into memory at boot and flushes writes asynchronously. Keys are namespaced: xc.* (Excel), oc.* (OneNote), wc.* (Word), pc.* (PowerPoint).X, ON) and treat any pageerror as failure.index.html ⭐ Office dashboard (serve the root: python3 -m http.server 8002)
excel/ the Excel app + its 12-suite battery + README
onenote/ the OneNote app + smoke/full suites + README
word/ the Word app + 6 suites incl. the 26-check batch8 gauntlet + README
powerpoint/ the PowerPoint app + smoke/full/chaos/foreign suites + README