Skip to content

binarii-io/processii

Repository files navigation

processii

Process whiteboard engine and collaborative editor — the open source core of memorii's whiteboard, by binarii.

processii is a CRDT-backed (Yjs) whiteboard engine specialized for process boards: rich step cards, bound connectors, swimlanes, groups and nested sub-processes — with the interaction substrate you expect from a modern whiteboard (zoom/pan viewport, hit-testing, marquee selection, resize/rotate handles, snapping, undo/redo, live presence cursors).

Packages

Directory What it is
packages/processii @binarii/processii — the engine (scene model, Yjs CRDT board, Canvas 2D renderer, interop) and the shared React editing surface (WhiteboardEditor, toolbar, style/side panels, presence). DOM-free core; React layer with React as a peer dependency.
apps/standalone The standalone P2P web app (PWA): offline-first via IndexedDB, optional peer-to-peer collaboration via WebRTC, no account and no backend. Doubles as the reference integration.

Key properties

  • Offline-first, local-first. All shared state lives in a Yjs document. No network required; sync is pluggable.
  • Pluggable transport & persistence. The engine never opens a connection: hosts inject providers (WebSocket sync, WebRTC P2P, IndexedDB, in-memory for tests) behind small typed interfaces.
  • Themable by CSS variables. Rendering and UI resolve semantic color tokens (--color-*) at runtime. Import the bundled @binarii/processii/styles.css defaults, or provide your own variables.
  • Interop. Lossy-but-marked import/export to Excalidraw and draw.io.
  • Strictly typed. TypeScript strict, no any, zod validation at the boundaries.

Quickstart

pnpm install
pnpm build          # build the workspace (turbo)
pnpm test           # unit tests (vitest)
pnpm --filter processii-standalone dev   # run the standalone app locally

Embedding the editor:

import { createEngine, WhiteboardEditor, useWhiteboardEngine } from '@binarii/processii';
import '@binarii/processii/styles.css'; // or provide your own --color-* variables

function MyBoard({ doc }) {
  const engine = useWhiteboardEngine(doc); // doc: Y.Doc
  return engine ? <WhiteboardEditor engine={engine} /> : null;
}

See packages/processii/README.md for the full API (scene model, adapters, theming contract, interop).

Status & governance

processii was extracted from the memorii monorepo and is now a standalone project: this repository is the source of truth. Development happens here through pull requests — main is protected and every change needs a green CI. See CONTRIBUTING.md.

  • License: Apache-2.0
  • npm: @binarii/processii
  • The standalone app is continuously deployed to Firebase Hosting from main (see .github/workflows/deploy.yml)

About

Process whiteboard engine & collaborative P2P editor — open source core of memorii whiteboard (binarii)

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages