Wwordcraft-reactv0.3.6
@gamine/wordcraft-react

Divergences from WordCraft

Every way the package differs from WordCraft, and where each change lives.

The package ships upstream WordCraft compiled to WebAssembly, pinned to the commit in UPSTREAM_REV, with a small patch series on top (patches/). Everything not listed here behaves exactly as in WordCraft's own web app.

Each row says where the difference lives:

  • Patch: a change to WordCraft's code, in patches/. Each patch is written so it could be offered upstream.
  • Package: code in this package around the editor (React, TypeScript, or the wordcraft-embed crate). WordCraft itself is unchanged.
  • Config: a different default setting.

Rows marked ✦ are Extras: features that are not part of Microsoft Word or WordCraft.

Editing and interface

AreaWordCraftThis packageWhere
Mini toolbar contentsTwo rows: font, size, Grow and Shrink; B I U S, highlight, font colour, alignmentAdds Bullets, Numbering and New Comment to the second row, as on WindowsPatch 0005
Mini toolbar with the right-click menuHidden while the menu is openShown above the menu, as on WindowsPatch 0005
Vertical rulerMeasures the caret's page only, so it goes blank once that page scrolls awayMeasures the page in view when the caret's page is off screenPatch 0005
Double-clicking a rulerOpens the Tabs dialog on a tab markerAlso opens Page Setup elsewhere on either ruler, as in WordPatch 0005
Font boxOne list of installed fonts, previewed in their own facesTheme Fonts, Recently Used Fonts and All Fonts sections, as in Word, plus web fonts with previews ✦Patches 0003, 0005
Ribbon collapseRibbon Display OptionsAlso Word's ^ button: tabs and ruler stay, a tab click opens the ribbon over the page, and the pin keeps it openPatch 0004
Editing / Reviewing / ViewingEditing and ReviewingAdds Viewing, a real read-only mode, and shows each item on two lines as Word doesPatch 0003, 0005
Clicking a commentSelects the comment cardAlso moves the caret to the commented textPatch 0003
Title bar textThe name and "Saved" joined by a long dash"Name • Saved", as in Word; a click opens Version History when it is onPatch 0005
Command search resultsCommand and location joined by a long dash"Bold · Home › Font"Patch 0005
Discord link in the title barShownHidden by default (prefs.showDiscord)Config

Host app controls

AreaWordCraftThis packageWhere
Title bar and ribbonAlways shownCan be hidden by the host (titleBar, ribbon)Patch 0001
Ribbon tabsAll tabsThe host chooses which show (tabs, hiddenTabs)Patch 0003
CommandsAll availableThe host can turn commands off; they are greyed and refused (disabledCommands)Patch 0003
User nameSet in File › OptionsSet by the host (user) and shown on the avatarPackage
Opening the editorA full page appMounts inside any element; React component and framework-agnostic core; safe with server renderingPackage
Every surface on or off ✦Title bar and ribbon onlyOne ui prop with a boolean per surface (title bar, ribbon and its tab row, status bar, selection toolbar, context menu, rulers, Navigation pane, presence, Share, mode switch, zoom, page-view buttons, File menu, the workspace row's buttons, the phone palette), or 'paper' for the page alone. A hidden surface takes no room and its shortcuts don't bring it back. Applied livePatch 0008, Package
The host's top bar ✦WordCraft's title bartopBar replaces it with left, centre and right zones of built-in items (back, quick access, title, save state, presence, Share, user menu, comments, history) and the host's own buttons, giving way in order at narrow widthsPackage
File menu ✦WordCraft's pagesfileMenu: show, hide, rename, disable with a reason, replace or reorder each item, group them into sections, add the host's own, and the same for each export format (export.pdf, export.docx...). Hidden items' shortcuts are off; Share is a File itemPatch 0008, Package
ShareWordCraft's dialogonShare hands it to the host, from the title bar, the File menu and the top barPatch 0008
Headless toolbar API ✦Not exposed to a hosteditor.state(), onStateChange, isActive and can for a toolbar of the host's ownPackage

Saving and files

AreaWordCraftThis packageWhere
Save, Save As, ExportDownload the file, or keep it in browser storageHand the file to the host (onSave), which can store it anywhere; downloads only without onSavePatch 0001, Package
AutoSave on the webInto browser storageThrough the host, as Word does for cloud filesPatch 0001
Version history ✦A file.versions command with no interfaceA Google Docs-style panel: versions recorded as you work, view, restore, name, download, delete; kept in the browser or on your serverPatch 0005, Package

Collaboration

AreaWordCraftThis packageWhere
Real-time co-editing ✦Not available yetYjs CRDT with any provider; per-person undo; live cursors and avatars; one shared file with AutoSavePatch 0002, Package

Fonts

AreaWordCraftThis packageWhere
Web fonts ✦The fonts built into the web buildThe Google Fonts library (about 1,900 families) on demand, or your own FontSource; fonts a document uses load by themselvesPatches 0003, 0005, Package
Recently used fontsPer sessionKept in the browser, as Word keeps them per userPackage

AI

AreaWordCraftThis packageWhere
AI writing ✦Not available (upstream gap #25)A Gemini-style bar opened by a sparkle at the bottom centre: quick actions, templates, streaming answersPackage
AI Studio ✦Not availableWriting skills (Humaniser on by default, custom skills, SKILL.md import), letterheads, brand palettes, model and keyPackage
AI providers ✦Not availableYour endpoint, or people's own OpenRouter, OpenAI, Anthropic, Gemini or OpenAI-compatible keyPackage
AI ribbon buttonNot availableOptional sparkle beside Comments (ai.ribbonButton)Patch 0004
AI that builds structure ✦AI answers are plain textAnswers become headings, lists and native tables; an Insert menu and a / slash menu make tables (from data, values checked), Mermaid diagrams (source kept in the picture's title, Edit diagram), native Word charts, checklists, callouts, equations, QR codes, images and tables of contents; tracked in Suggesting (ai.structure)Package
Document theme coloursBuilt-in colour sets only (Design › Colors)Custom theme colours written to theme1.xml (design.themeColors with colors), so a palette from a logo becomes the document themePatch 0007, Package
Palette from a logo or photo ✦Not availableColours found in the browser (Lab k-means, round-robin across pictures), roles, contrast warnings with a fix, dark variant, saved palettes (onPaletteCreated)Package
First-page and even-page headersEdited from the header itselfAlso by command (insert.editHeader and insert.editFooter with kind)Patch 0007
Logo placement ✦Not availableHeader, footer, beside the text, watermark behind the text, cover page, side edge, cursor, signature, partner logos; first, odd or even pages (LogoSpec)Package
Document chat ✦Not available"Ask this document": answers from the document's passages with citation chips, quick actions, Insert, Replace, Copy, Add as comment, a chat store (ai.chat)Package
Writing checks ✦Spelling and grammar (the Editor pane)Also underlines by category with fixes, goals, a score, readability and tone, through pluggable engines: plain-language rules in the browser, LanguageTool, the AI (checks)Package
Originality ✦Not availableSimilarity against the organisation's documents, a plagiarism service and a soft AI-writing signal, opt-in and never saved in the file (originality)Package
Side tools ✦Navigation pane, Check Accessibility, Manage Sources, Word Count, Dictate (a gap)The same engine features as side panels for the web, plus a word goal, voice typing and a translated copy (tools)Package
Sensitive documentsNot a conceptsensitive turns off every Extra that sends text (checks, originality, chat)Package
Selection APINot exposededitor.caret() and editor.selectedObject() (read only)Package

Access, comments and presence

AreaWordCraftThis packageWhere
Access levelsRestrict Editing (read only, comments, tracked changes) chosen in the documentA permission prop (view, comment, suggest, edit) the host sets and changes live, with a chip and a notice; it drives Restrict Editing and the mode, and locks the switchesPackage
Comments panel ✦Word's comment cards in the marginAlso a panel of threads with filters (Open, Resolved, Mine, Mentions me, author), @mentions with a people picker, Assign to, and a store adapter for every changePackage
Comments owned by the host ✦New Comment makes an empty comment and opens the comments panecomments.exclusive: the pane never opens from any entry point, and New Comment asks for a composer on the selection (onRequestCompose, or the package's drawer). Nothing exists until it is submitted with text. A balloon click asks the host to open that threadPatch 0008, Package
Host comment API ✦Comment commands, which disabledCommands can turn offeditor.comments.create, reply, edit, delete, resolve, reopen, list, focus and onChange, never blocked by disabledCommands, and a standalone <CommentsDrawer/>Package
Presence avatars ✦Collaborators' avatars in the title bar (patch 0002)Also a row at the bottom right with idle state, a +n counter and following, and onPresenceChange for the hostPackage
Reading the document ✦Not exposed to a hosteditor.paragraphs(), editor.comments(), selectText and marks over the text (setMarks) for host panelsPackage
Organisation letterheadNot availableai.letterhead is the organisation's, read live; a person's edits are a separate override with Reset; letterheadLocked and onLetterheadAppliedPackage
Web Layout widthAlways 800ptFollows the window, as in Word (Mobile View on phones)Package

Phones and tablets

AreaWordCraftThis packageWhere
Phone layout ✦The desktop interface at any sizeBelow 600px on a touch screen, Word for Android's shape: title bar, page, bottom command palette with tab switcher, drill-in pages and contextual Table, Picture and Shape tabs; switches live on foldables (mobile)Package
Status barAlways shownCan be hidden (prefs.hideStatusBar); the phone layout hides itPatch 0006
Touch on the page ✦A finger acts as a mouse, so a drag selects textA drag scrolls and flings, a tap places the caret, a long press selects a word, handles adjust the selection, two fingers zoomPackage
Selection on screen ✦Not reportededitor.onSelection() and selectionInfo() give its place in CSS pixels and the contextual tabs, for floating toolbarsPackage
Floating toolbar on phones ✦The mini toolbarCut, Copy, Paste (through the system clipboard), Comment and Format over a touch selectionPackage
Dictation ✦Not available (Word's Dictate is a parity gap)A microphone button types what you say, where the browser offers speech recognitionPackage
Camera ✦Not availableInsert › Camera puts a photo from the phone's camera into the documentPackage

Not included

These parts of WordCraft are not in the package, because they need a desktop or a server:

  • The desktop apps' native file dialogs, printing through the system and window management.
  • The MCP server, the command-line tool and the control channel. The same command registry is available through editor.execute().

Up next