The file is the source of truth
Open .xlsx or .docx, edit, save back to the
same bytes. The audit counts every OOXML tag round-trip;
Casual Editor is at 100% on 44 fixtures.
.xlsx and .docx,
Real-time multi-peer co-editing. Saves back to the same byte-for-byte file.
No accounts, no SaaS, no upsell — try the live demos below, or
docker run it on your own server.
Real production demos, not screenshots. Open a real file, edit it, save it back — nothing leaves your browser unless you click Share.
Open .xlsx, .ods, .csv, .tsv. Real-time co-editing, pivot tables with drill-down, 8 chart types with trendlines, sparklines, version history, and .xlsm macro passthrough that round-trips byte-equal.
Open .docx in the browser with WYSIWYG fidelity. Fork of eigenpal/docx-editor on top of ProseMirror with an OOXML-preserving model. The stateless Go gateway speaks the y-websocket protocol in roughly 120 lines.
Open .pptx in the browser with deep OOXML fidelity — 68 of 87 fidelity probes passing after wave 7o. Office-style ribbon, slide-panel thumbnails, layout templates, theme + background pickers, Slide Show mode. Co-edit is a Phase-2 spike today; Yjs migration is the v0.1.0 blocker.
A native binary for macOS, Linux, and Windows that would reuse the web cores verbatim. Paused until both web editors reach feature parity; the work is queued, not abandoned.
Open .xlsx or .docx, edit, save back to the
same bytes. The audit counts every OOXML tag round-trip;
Casual Editor is at 100% on 44 fixtures.
Yjs CRDT in the browser, a ~120 LOC Go gateway on the
server. A 5-second smoke proves multi-peer text, awareness, and live
rename — every push runs it.
No database, no on-disk update log in the real-time path. Session state lives in memory while peers are connected, then drains to the host integration on the last disconnect.
MIT on the editor packages, Apache-2.0 on the backend. No copyleft, no AGPL trapdoor, no "open core" features hidden behind a paid tier.
Multi-arch images (amd64 + arm64) on Docker Hub. OCI labels, SBOM
and provenance attestations. docker run and you're
running both the editor and the WS gateway.
Every commit, every fixture, every failing-then-passing test visible on GitHub. The roadmap is a doc, not a slide deck. Pick an issue, open a PR.
services:
app:
image: schnsrw/casual-sheets:0.1
ports: ['3000:3000']
environment:
CASUAL_STORAGE: local
CASUAL_LOCAL_PATH: /data/workbooks
volumes:
- data:/data
volumes:
data: Stars are the only signal that says "keep going." Two repos: docx for Casual Editor, sheets for Casual Sheets.
Real-world .docx or .xlsx that breaks?
Attach the file. Every regression fixture in the audit started
life as someone's broken document.
The bar is the green CI suite plus a fixture that pins the
change. Both repos have CONTRIBUTING.md; the
issue trackers
tag good-first-issue.
Casual Office is a small office suite built like infrastructure. Composable, file-shaped, permissive — closer to a UNIX tool than a SaaS product.