Skip to content
@CasualOffice

Casual Office

Open-source office suite for self-hosters: .xlsx / .docx round-trip, real-time co-editing, no vendor lock-in.
Casual Office

Casual Office

An open-source office suite you run on your own server.

Spreadsheets · Documents · File manager — real-time co-editing, .xlsx / .docx round-trip, no vendor lock-in.

casualoffice.org


The suite

Product What it is Status
sheets Web spreadsheet with .xlsx fidelity and y-websocket co-editing. React + Univer + TypeScript on the front, Bun-based snapshot worker on the back. live demo at sheet.casualoffice.org
docs WYSIWYG .docx editor with ProseMirror schema and OOXML-preserving layout. Real-time co-editing via Yjs; Go gateway behind it. live demo at docs.casualoffice.org
drive Self-hosted file manager that opens .xlsx and .docx inline in the editors above. Rust + Axum + OpenDAL + WOPI. live demo at drive.casualoffice.org
univer-revamp Internal fork of the Univer Sheets engine with patches the sheets product depends on. tracked upstream

What it replaces

If you've used Google Workspace or Microsoft 365 and want the same UX without the data-handover, this is the same shape, self-hosted:

  • Sheets → Google Sheets / Excel Online
  • Docs → Google Docs / Word Online
  • Drive → Google Drive / OneDrive

Every product opens the canonical Microsoft format directly (.xlsx, .docx) — no proprietary container, no one-way export.

How it's built

  • Frontend — React 18/19, TypeScript, Tailwind / IBM Plex Sans + JetBrains Mono. Sheets is on Univer (forked at univer-revamp); docs is a ProseMirror schema with a custom layout painter that preserves OOXML; drive is a Vite SPA embedded into a Rust binary via rust-embed.
  • Backend — Go gateways for the realtime y-websocket / CRDT layer (docs). Rust + Axum for the drive control plane. Storage is pluggable per product (inline / WOPI / JWT-API host).
  • Realtime — Yjs + y-websocket, with per-document rooms drained back to host storage on disconnect. The gateway holds no on-disk state.

Self-hosting

Each product ships a Docker image and a docker-compose for the demo stack — check that product's README for the current step-by-step. Drive is the recommended entry point if you want one process that orchestrates the others.

Contributing

We welcome contributors — the whole suite is Apache-2.0 and built in the open. Bug reports, feature ideas, and pull requests are all welcome. For larger changes, open an issue to discuss first; otherwise feel free to raise a PR against the relevant repo. See each repo's CONTRIBUTING guide to get started.

License

Apache-2.0 across the suite — sheets, docs, drive, and the univer-revamp fork. Permissive use; you can self-host and modify freely.

Contact

Popular repositories Loading

  1. docs docs Public

    Open-source self-hosted web .docx editor with real-time co-editing — an alternative to Google Docs, Microsoft Word Online, and OnlyOffice Document Server you run on your own server.

    TypeScript 8

  2. sheets sheets Public

    Open-source self-hosted web spreadsheet with .xlsx round-trip and real-time co-editing — an alternative to Google Sheets, Excel Online, and OnlyOffice you run on your own server.

    TypeScript 7

  3. drive drive Public

    Open-source self-hosted file manager that opens .xlsx and .docx in real-time, in-browser editors — an alternative to Google Drive and Microsoft OneDrive you run on your own server. Rust + Axum + Op…

    Rust 1

  4. univer-revamp univer-revamp Public

    Forked from dream-num/univer

    Build AI-native spreadsheets. Univer is a full-stack framework for creating and editing spreadsheets on both web and server. With Univer Platform, Univer Spreadsheets is driven directly through nat…

    TypeScript

  5. core core Public

    A pure-Rust engine that reads, writes, and converts office documents — DOCX, ODT, PDF, Markdown, plain text — with WebAssembly and C FFI bindings for use from any consuming app.

    Rust

  6. website website Public

    Astro

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…