Thanks to visit codestin.com
Credit goes to lib.rs

20 releases

Uses new Rust 2024

new 0.3.4 Jan 12, 2026
0.3.2 Dec 28, 2025
0.3.1 Nov 11, 2025
0.3.0 Nov 20, 2024
0.2.11 Jul 18, 2023

#395 in Web programming

Codestin Search App Codestin Search App Codestin Search App Codestin Search App

56 downloads per month

MIT license

105KB
3K SLoC

Depot: A Javascript devtool orchestrator

Screen Shot 2023-07-18 at 11 26 06 AM

Depot (formerly Graco) is a tool for orchestrating other Javascript devtools. As an analogy:

Depot works on Javascript workspaces that have been created by Depot, specifically those using the model JS workspace format. Depot supports the following commands:

  • depot new - creates a new workspace or package with devtools preinstalled
  • depot init - installs workspace dependencies with pnpm
  • depot build - type-checks with Typescript, lints with Biome, and:
    • For libraries, transpiles with Typescript
    • For scripts and websites, bundles with Vite
  • depot test - runs tests with Vitest
  • depot fmt - formats source files with Biome
  • depot doc - generates documentation with Typedoc

A few benefits of using Depot:

  • Depot works with either browser or Node packages.
  • Depot automatically runs command dependencies. For example, depot test will run depot build, and depot build will run depot init.
  • Depot provides an interactive terminal interface for showing the running output of processes when building in watch mode.

Installation

As prerequisites, you must have NodeJS (≥24) and pnpm (≥10) installed on your computer.

The install script will download a prebuilt binary if possible. Run the script as follows:

curl https://raw.githubusercontent.com/cognitive-engineering-lab/depot/main/scripts/install.sh | sh

Alternatively, you can follow one of these installation methods:

From crates.io

cargo install depot-js --locked

From source

git clone https://github.com/cognitive-engineering-lab/depot
cd depot
cargo install --path crates/depot --locked

Usage

To get started, create a new package:

depot new my-lib

You can specify --target <lib|site|script> to indicate that the package is a library (a Javascript package used by other packages), a website (an HTML site that uses Javascript), or a script (a Javascript program that would be either run on the CLI or included as a <script> tag.) You can also specify --platform <browser|node> depending on whether your package is intended to run in the browser or via NodeJS.

You can also create a workspace and a package within that workspace, like this:

depot new --workspace my-workspace
cd my-workspace
depot new my-lib

Inside the workspace, you can build all packages like this:

depot build

This generates a <package>/dist directory containing the built files. You can run in watch mode by passing -w like this:

depot build -w

Additional documentation about each command will be created soon once the Depot design is finalized.

Projects using Depot

Depot is used in a few of our projects:

Dependencies

~19–36MB
~509K SLoC