Skip to content

Tools and packages

Herb Caudill edited this page Jan 10, 2025 · 8 revisions

These are the technologies you'll want to familiarize yourself with to work on XDev.

XDev

Dependencies

These are core dependencies that we're actively contributing to as part of this effort:

  • @automerge-repo: Automerge Repo is a wrapper for the Automerge CRDT library which provides facilities to support working with many documents at once, as well as pluggable networking and storage. (Ink & Switch controls this repository.)

  • @localfirst/auth: @localfirst/auth is a TypeScript library providing decentralized authentication and authorization for team collaboration, using a secure chain of cryptographic signatures. (We control this repository.)

Dev dependencies

  • Playwright gives us end-to-end in-browser testing (this is Microsoft's alternative to Cypress or Selenium).

    The Playwright VS Code extension is the easiest way to run these tests.

  • pnpm is the package manager we use (rather than npm or yarn).

  • Storybook is a frontend workshop for building UI components and pages in isolation.

  • Vite is our build tool (rather than Webpack, Rollup, Parcel, etc.)

  • xo is a thin wrapper around ESLint with defaults that we like.

    The xo VS Code extension can help run the linter while you're working.

@localfirst/auth

Dev tools

  • lerna is a framework/build tool for working with monorepos.

Dependencies

  • XState is a state machine library that we use to implement the connection protocol.

    The XState VSCode extension provides some nice enhancements for visualizing state machines.

Clone this wiki locally