nubjs/nubPublic

The fast all-in-one Node.js toolkit

AI summary: A fast, all-in-one toolkit for Node.js aiming to streamline backend development.

Stars
3.9K
+39 today
Forks
54
Watchers
4
Open issues
12
Open PRs
17
Contributors
~11
Commits
1.4K
Branches
400

RustMITCreated Jun 3, 2026Last push todayLatest release v0.6.0+225 stars this week+298 this month

Star history

since Jun 7, 2026
01K2K3KJun 2026Jun 2026Jul 2026Aug 2026
3.9K stars as of Aug 7, 2026, tracked back to Jun 7, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-03: 0 commits2025-08-04: 0 commits2025-08-05: 0 commits2025-08-06: 0 commits2025-08-07: 0 commits2025-08-08: 0 commits2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 14 commits2026-06-04: 18 commits2026-06-05: 0 commits2026-06-06: 2 commits2026-06-07: 28 commits2026-06-08: 7 commits2026-06-09: 35 commits2026-06-10: 105 commits2026-06-11: 75 commits2026-06-12: 23 commits2026-06-13: 25 commits2026-06-14: 43 commits2026-06-15: 165 commits2026-06-16: 50 commits2026-06-17: 75 commits2026-06-18: 49 commits2026-06-19: 16 commits2026-06-20: 53 commits2026-06-21: 51 commits2026-06-22: 44 commits2026-06-23: 23 commits2026-06-24: 57 commits2026-06-25: 39 commits2026-06-26: 33 commits2026-06-27: 25 commits2026-06-28: 29 commits2026-06-29: 3 commits2026-06-30: 24 commits2026-07-01: 14 commits2026-07-02: 3 commits2026-07-03: 20 commits2026-07-04: 4 commits2026-07-05: 14 commits2026-07-06: 14 commits2026-07-07: 39 commits2026-07-08: 22 commits2026-07-09: 12 commits2026-07-10: 13 commits2026-07-11: 0 commits2026-07-12: 11 commits2026-07-13: 11 commits2026-07-14: 23 commits2026-07-15: 3 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 1 commit2026-07-21: 21 commits2026-07-22: 23 commits2026-07-23: 11 commits2026-07-24: 16 commits2026-07-25: 3 commits2026-07-26: 0 commits2026-07-27: 2 commits2026-07-28: 13 commits2026-07-29: 7 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
1,411 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Breakout launch

    3,900 stars in 65 days

  • Rising fast

    +225 stars this week

  • Very active

    1,411 commits in 52 weeks

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What nub does

Nub is a comprehensive utility toolkit designed to accelerate and simplify Node.js development. It aggregates common backend requirements—such as data validation, string manipulation, and system utilities—into a single, highly optimized package. By providing a unified API, it reduces a project's reliance on disparate, poorly maintained third-party micro-dependencies. The library is built with execution speed in mind, utilizing modern JavaScript patterns to minimize overhead. It serves as a robust foundational layer for building scalable Node.js applications and microservices.

Designed for Node.js backend developers, full-stack engineers, and software architects looking to streamline their dependency trees.

  • All-in-one utility suite: Combines numerous essential backend functions into a single cohesive library.
  • High-speed execution: Optimized for fast processing and low overhead in Node.js environments.
  • Dependency reduction: Helps developers avoid bloating their node_modules with tiny, single-purpose packages.
  • Unified API design: Provides consistent syntax and behavior across different utility categories.
  • Modern JS architecture: Leverages up-to-date Node features for maximum efficiency and security.

Where teams use it

Microservice foundation

Acts as the core utility layer for rapid development of lightweight backend services.

Dependency consolidation

Replaces multiple scattered utility packages with one secure, well-maintained toolkit.

Data processing pipelines

Utilizes fast string and object manipulation functions for high-throughput data tasks.

Standardized toolsets

Provides a consistent set of tools across a large engineering team's diverse Node projects.

Getting started: npm install nubjs

README

main branch

Nub logo

Nub

A fast all-in-one toolkit that augments Node.js instead of replacing it

Docs   •   GitHub   •   𝕏

stars



A Bun-like DX on top of stock node, written in Rust.

nub index.ts             # TypeScript-first Node.js runtime
nub run dev              # 24× faster pnpm run
nubx prisma generate     # 19× faster npx
nub install              # 18× faster pnpm install
nub watch src/server.ts  # native watch mode
nub pm shim              # built-in Corepack-style shims
nub node install 26      # Node version manager
nub upgrade              # self update

One tool to run your files and scripts, install dependencies, and manage Node itself. No new runtime, no vendor-specific API surface, no lock-in.

Nub Instead of
nub <file> node, tsx, ts-node, dotenv-cli
nub run <script> npm run, pnpm run
nubx npx, pnpm dlx / exec
nub install npm, pnpm
nub watch nodemon, node --watch, tsx watch
nub node nvm, fnm, n, volta
nub pm corepack

Install

# macOS / Linux
curl -fsSL https://nubjs.com/install.sh | bash

# Windows (PowerShell)
irm https://nubjs.com/install.ps1 | iex

# Homebrew (macOS / Linux)
brew install nubjs/tap/nub

# Nix (flakes)
nix run github:nubjs/nub

# mise
mise use -g nub

# Or via npm (pnpm / yarn global add work too)
npm install -g @nubjs/nub

For GitHub Actions, use nubjs/setup-nub in place of actions/setup-node. It's one-to-one compatible.

- - uses: actions/setup-node@v4
+ - uses: nubjs/setup-nub@v0

File runner — nub <file>

Run a file. Supports .js, .ts, .mjs, .cjs, .mts, .cts, .jsx, and .tsx. Flag-for-flag and var-for-var drop-in compatible with node (mostly via passthrough).

nub index.ts             # TypeScript, JSX, no build step
nub --watch app.ts       # same path, restart-on-change

It augments stock Node with some of Bun/Deno's best features:

  • 🦆 Full TypeScript support, including enum, namespace
  • 🧭 TypeScript-friendly resolution: extensionless imports, tsconfig.json#paths
  • ⚛️ JSX / TSX
  • 🎂 Decorators and emitDecoratorMetadata
  • 🆕 Modern syntax like using (downleveled in transpiler when needed)
  • 🔐 Automatic .env* loading — Next.js/Vite parity
  • 🗂️ Built-in loaders for common data formats — .yaml, .toml, .jsonc, .json5, .txt
  • 🌐 Polyfills for Temporal, Worker, URLPattern (when needed)
  • 🔥 Unflags experimental features like node:sqlite, vm.Module, localStorage, WebSocket, EventSource
  • ⚡ 2.9× faster startup than tsx

How it works — Nub takes advantage of Node extension surfaces that mostly didn't exist when Deno and Bun were built:

Node provisioning

When you run a file with nub, it infers the version of Node your project expects and auto-installs it if needed. It respects (in precedence order):

  • NODE_EXECUTABLE (override)
  • package.json#devEngines
  • .node-version
  • .nvmrc
  • package.json#engines

This resolved version of Node is installed and your file is executed with it (with Nub's augmentations).

$ echo 26 > .node-version
$ nub hello.ts
Using Node.js 26.3.0 (resolved from .node-version)
Installed in 9.8s
Hello world!

Modern APIs

Modern API work out of the box under Nub. Node.js experimental APIs are unflagged, others are auto-polyfilled (e.g. Temporal on Node 25 and earlier), and others are downleveled in the transpiler (using).

API How
Temporal polyfilled below Node 26, native above
URLPattern polyfilled below Node 24, native above
RegExp.escape polyfilled below Node 24, native above
Error.isError polyfilled below Node 24, native above
Promise.try polyfilled below Node 24, native above
Float16Array polyfilled below Node 24, native above
navigator.locks polyfilled below Node 24.5, native above
reportError polyfilled
vm.Module unflagged
Wasm module imports unflagged below Node 24.5 (22.19 on the 22.x line), native above
WebSocket unflagged from Node 20.10, native from Node 22
EventSource unflagged from Node 20.18, native above
node:sqlite unflagged from Node 22.5, native from Node 22.13
addon imports unflagged from Node 22.20, never native

Watch mode

Restart-on-change driven by the resolved dependency graph plus the off-graph files that still invalidate a run — no glob list to maintain:

nub watch src/server.ts
nub --watch src/server.ts   # same path
  • 👀 Tracks the resolved dependency graph automatically
  • 🧷 Also watches the off-graph invalidators — .env*, the tsconfig.json extends chain, package.json
  • ⚙️ Runs on Node's own --watch engine, preserving output by default

View the full runtime docs 👉.


Script runner — nub run

A drop-in for npm run and pnpm run. The runner is a Rust binary with no JavaScript startup of its own, so it dispatches a warm script roughly 24× faster than pnpm run:

nub run build
nub run -r --filter "@org/*" test     # supports --filter

It's fast compared to existing JavaScript-based script runners.

Command Time Relative
nub run 14.7 ms
npm run 329.9 ms 22×
pnpm run 442.7 ms 30×

script dispatch · warm · 50 runs · macOS — view benchmark

  • 🚀 Feels instantaneous — 14ms vs a detectable 300ms+ lag for npm/pnpm
  • 🔁 Full lifecycle support — pre/post hooks and the complete npm_* environment
  • 🧰 Local node_modules/.bin on PATH, with args forwarded without the -- separator
  • 🗃️ The full pnpm workspace surface — -r, --filter, --parallel, --workspace-concurrency, --resume-from, --stream
  • 🎯 pnpm's --filter grammar verbatim — graph (...@org/web) and changed-since ([main]) selectors

View the full script runner docs 👉.


Package runner — nubx / nub dlx

A drop-in for npx and pnpm dlx. Local-first with a download-and-execute registry fallback (same as npx). Eliminating the double-Node.js-spawn performance penalty paid by JavaScript-based tools like npx and pnpm.

nubx eslint . --fix
nubx -y cowsay@1.5.0 "hi"   # fetched from the registry (auto-approved via -y)
Command Time Relative
nubx esbuild --version 11 ms
pnpm exec esbuild --version 191 ms 17×
npx esbuild --version 226 ms 19×

esbuild --version · macOS — view benchmark

  • ⚡ Runs a local bin ~19× faster than npx, with no Node in the wrapper
  • 🔎 Resolves node_modules/.bin regardless of which package manager installed it
  • 🌐 Registry fallback for uninstalled bins — fetched, run, then discarded
  • 🧩 Full pnpm exec / pnpm dlx flag parity, shell mode included
  • 🪜 Walks the resolution chain — member .bin, then workspace root, then ancestors

View the full package runner docs 👉.


Package manager — nub install

Nub is a package manager powered by the Aube engine. The CLI is flag-for-flag compatible with pnpm for muscle memory, but

nub install                    
nub ci
nub add -E -D --save-catalog react
nub remove lodash
nub update
nub dedupe

It's fast — avoids the per-command Node.js bootstrap lag incurred by JS-based package managers.

Tool Time Relative
nub 171 ms
bun 686 ms 4.0×
pnpm 3193 ms 18.7×
npm 5316 ms 31.1×

warm frozen install · TanStack Start · 313 deps · macOS — view benchmark

Security

  • 🛡️ Blocks postinstall by default
  • 🦠 Checks osv.dev for known-malicious package versions during resolution by default
  • 🔻 Refuses provenance downgrades by default
  • ⏳ Strict 24-hour minimumReleaseAge by default

Compatibility

When you run nub install inside a project, it detects the incumbent package manager (based on your package.json#packageManager or any detected lockfiles). It then runs in compat-mode, respecting the config files and environment variables for that package manager.

Under each incumbent, Nub reads that tool's branded config and no other's; the neutral .npmrc cascade and npm_config_* are read under every one.

Incumbent Config it reads
npm package-lock.json, .npmrc, overrides, workspaces, engines/os/cpu/libc
pnpm pnpm-lock.yaml, pnpm-workspace.yaml, .pnpmfile.cjs, package.json#pnpm, resolutions, catalog:, .npmrc
Yarn (read-only) yarn.lock, a .yarnrc.yml / .yarnrc subset, YARN_*, resolutions, packageExtensions, .npmrc
Bun bun.lock, bunfig.toml [install], trustedDependencies, overrides, patchedDependencies, catalog:, .npmrc
Nub neutral only — .npmrc, npm_config_*, overrides / resolutions / catalog / workspaces

View the full package manager docs 👉.


Package meta-manager — nub pm

Corepack's job, in native Rust: provision and run the exact pnpm / npm / yarn your project pins:

nub pm shim              # registers global shims (Corepack-style)

Like corepack enable, this registers global shims for npm, yarn, and pnpm. When you run a command using one of these shim aliases anywhere on your file system, the shim will:

  • Detect the version used in your project
  • Install that version if needed
  • Run the command using the proper version

Nub provides this functionality as a convenience for users who prefer to keep their current package manager. Corepack itself was unbundled from Node itself in v25.

View the full nub pm docs 👉.


Node version manager — nub node

Though Node.js versions will generally be auto-installed and cached as needed, you can manage versions manually as well.

$ nub node -h 
nub node — manage Node versions

Usage: nub node <command>

Commands:
  which                    print the resolved Node binary path (why → stderr)
  install [<version>...]   provision version(s) into nub's cache
  ls                       list versions in nub's cache
  uninstall <version>      remove a version from nub's cache
  pin <version>            write the project's Node pin

View the full nub node docs 👉.


License

MIT

⭐️ If you read this far, consider starring the repo :) ⭐️

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 4

Releases and announcements

81 total
  1. Canary 0.6.0-canary.20260729.121canaryJul 29, 2026pre-release16 downloads

    Rolling canary build of `main`, rebuilt on every code push. - Version: `0.6.0-canary.20260729.121` - Commit: 6be26ed9931edf074032135b07f3ecc2fbbeb0f4 - Install: `npm install -g @nubjs/nub@canary` Prerelease channel — the assets below always track the newest main commit.

  2. v0.6.0v0.6.0Jul 25, 20262.7K downloads

    Nub 0.6.0 runs every `package.json` script body through a POSIX shell on all three platforms, makes the 24-hour install trust floor fail closed, and adds a canary release channel. > [!IMPORTANT] > Two changes affect existing projects on upgrade. > > **Windows script bodies now run under a POSIX shell instead of `cmd.exe`.** A script written in cmd syntax — `set NODE_ENV=production && node build.js`, `rd /s /q dist`, `%VAR%` — no longer works. Rewrite it in POSIX syntax (which then works on every platform), or opt back out with `script-shell=cmd` in `.npmrc` or `--script-shell cmd`. > > **The `minimumReleaseAge` cooling window now fails closed.** When every version satisfying a range was published less than 24 hours ago, the install errors instead of falling back to the lowest satisfying version. Set `minimumReleaseAgeStrict=false` in `.npmrc` to restore the previous fallback. > > The first install after upgrading also re-links `node_modules` once and rebuilds native addons once, because the install caches are now keyed on the Node engine. Nothing is re-downloaded. ## Script bodies run through a POSIX shell One script body now behaves the same on macOS, Linux, and Windows — `&&`,

  3. v0.5.0v0.5.0Jul 22, 20261.8K downloads

    Nub 0.5.0 ships `nub init` — a TypeScript-first project scaffold — alongside a batch of package-manager correctness fixes and faster Node installs. ## nub init One command scaffolds a minimal TypeScript project that runs and typechecks immediately: ```sh nub init nub index.ts ``` It writes five files, initializes git, and runs the install: ``` my-app/ ├── package.json ├── tsconfig.json ├── index.ts ├── README.md ├── .gitignore ├── nub.lock ├── node_modules/ └── .git/ ``` - **TypeScript 7 by default.** The scaffold pins `typescript@^7` — the native compiler — alongside `@types/node@^26` and `@nubjs/types`. Nub transpiles at run time, so `tsc` exists purely to typecheck (`noEmit`) and the project has zero runtime dependencies. - **Node types without `"dom"`.** `lib` stays `["es2024"]`; the globals Nub polyfills (`Worker`, …) are typed by `@nubjs/types`, so `window` and `document` never leak into a Node project. - **Real `.ts` imports.** `verbatimModuleSyntax` and `allowImportingTsExtensions`: import specifiers say `./thing.ts` and resolve exactly as Node and Nub do. - **Strict from the first file.** `strict` plus `noUncheckedIndexedAccess` and `exactOptionalPropertyTypes`, `nod

  4. v0.4.13v0.4.13Jul 15, 20261.9K downloads

    A Windows-only fix for where the global content-addressable store is placed. > [!IMPORTANT] > On Windows, a machine that already ran nub has a stale store at `%USERPROFILE%\.local\share\nub\store`. After upgrading, the next install re-populates the store under `%LOCALAPPDATA%` — a one-time re-download, no breakage. The old `.local\share\nub` directory can be deleted. macOS and Linux are unaffected. ## Package manager On Windows, `nub store path` reported the content-addressable store under a Unix-style `.local\share` path (`C:\Users\<user>\.local\share\nub\store\v1`) instead of `%LOCALAPPDATA%\nub\store`, splitting the CAS store from the cache and virtual-store tiers that already sat under `%LOCALAPPDATA%`. The data-dir resolver now has a `%LOCALAPPDATA%` branch, so the Windows data root resolves to `%LOCALAPPDATA%\nub`, matching the cache tier and Node's platform conventions. Unix and macOS behavior is unchanged. ([#476](https://github.com/nubjs/nub/pull/476), closes [#451](https://github.com/nubjs/nub/issues/451)) --- ## What's Changed * fix(pm): resolve the global store dir under %LOCALAPPDATA% on Windows by @colinhacks in https://github.com/nubjs/nub/pull/476 **Full Chan

  5. v0.4.12v0.4.12Jul 15, 2026790 downloads

    This release fixes a batch of package-manager and runtime issues — most of them around the global virtual store — and adds Node version resolution from `.tool-versions`. ## Package manager | Area | What changed | PR | | --- | --- | --- | | Global virtual store | Trusted packages whose build script targets the consuming project — git-hook installers such as simple-git-hooks, and similar — are now ejected from the shared store and built project-local, so their `postinstall` runs against your project instead of failing in the store | [#475](https://github.com/nubjs/nub/pull/475) | | Global virtual store | Type-only phantom dependencies in `.d.ts` and Vue SFC type surfaces are now detected | [#452](https://github.com/nubjs/nub/pull/452) | | Lockfile import | Importing a bun or npm lockfile to `pnpm-lock` now runs the peer-context pass | [#471](https://github.com/nubjs/nub/pull/471) | | Version cache | Incomplete version-cache entries are repaired instead of erroring | [#467](https://github.com/nubjs/nub/pull/467) | | Yarn Berry | Frozen-install drift validation fixed for workspaces | [#462](https://github.com/nubjs/nub/pull/462) | ## Runtime - Async hook tier is auto-selected when

Commits per week

last 52 weeks
4510Week of 2025-08-03: 0 commitsWeek of 2025-08-10: 0 commitsWeek of 2025-08-17: 0 commitsWeek of 2025-08-24: 0 commitsWeek of 2025-08-31: 0 commitsWeek of 2025-09-07: 0 commitsWeek of 2025-09-14: 0 commitsWeek of 2025-09-21: 0 commitsWeek of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 34 commitsWeek of 2026-06-07: 298 commitsWeek of 2026-06-14: 451 commitsWeek of 2026-06-21: 272 commitsWeek of 2026-06-28: 97 commitsWeek of 2026-07-05: 114 commitsWeek of 2026-07-12: 48 commitsWeek of 2026-07-19: 75 commitsWeek of 2026-07-26: 22 commitsAug 3, 2025Jul 26, 2026
1.4K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 7 commitsSun 1:00 — 4 commitsSun 2:00 — 1 commitsSun 3:00 — 2 commitsSun 4:00 — 1 commitsSun 5:00 — 1 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 1 commitsSun 9:00 — 8 commitsSun 10:00 — 15 commitsSun 11:00 — 18 commitsSun 12:00 — 18 commitsSun 13:00 — 17 commitsSun 14:00 — 15 commitsSun 15:00 — 15 commitsSun 16:00 — 7 commitsSun 17:00 — 4 commitsSun 18:00 — 3 commitsSun 19:00 — 1 commitsSun 20:00 — 9 commitsSun 21:00 — 13 commitsSun 22:00 — 9 commitsSun 23:00 — 7 commitsMon 0:00 — 3 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 4 commitsMon 8:00 — 18 commitsMon 9:00 — 34 commitsMon 10:00 — 18 commitsMon 11:00 — 25 commitsMon 12:00 — 19 commitsMon 13:00 — 19 commitsMon 14:00 — 20 commitsMon 15:00 — 22 commitsMon 16:00 — 19 commitsMon 17:00 — 6 commitsMon 18:00 — 16 commitsMon 19:00 — 9 commitsMon 20:00 — 4 commitsMon 21:00 — 1 commitsMon 22:00 — 0 commitsMon 23:00 — 10 commitsTue 0:00 — 0 commitsTue 1:00 — 1 commitsTue 2:00 — 2 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 3 commitsTue 8:00 — 7 commitsTue 9:00 — 9 commitsTue 10:00 — 24 commitsTue 11:00 — 10 commitsTue 12:00 — 9 commitsTue 13:00 — 10 commitsTue 14:00 — 17 commitsTue 15:00 — 16 commitsTue 16:00 — 28 commitsTue 17:00 — 21 commitsTue 18:00 — 10 commitsTue 19:00 — 7 commitsTue 20:00 — 7 commitsTue 21:00 — 6 commitsTue 22:00 — 17 commitsTue 23:00 — 24 commitsWed 0:00 — 14 commitsWed 1:00 — 6 commitsWed 2:00 — 1 commitsWed 3:00 — 5 commitsWed 4:00 — 7 commitsWed 5:00 — 6 commitsWed 6:00 — 4 commitsWed 7:00 — 19 commitsWed 8:00 — 18 commitsWed 9:00 — 25 commitsWed 10:00 — 25 commitsWed 11:00 — 9 commitsWed 12:00 — 3 commitsWed 13:00 — 20 commitsWed 14:00 — 26 commitsWed 15:00 — 32 commitsWed 16:00 — 39 commitsWed 17:00 — 5 commitsWed 18:00 — 20 commitsWed 19:00 — 8 commitsWed 20:00 — 9 commitsWed 21:00 — 7 commitsWed 22:00 — 8 commitsWed 23:00 — 5 commitsThu 0:00 — 7 commitsThu 1:00 — 0 commitsThu 2:00 — 1 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 1 commitsThu 8:00 — 3 commitsThu 9:00 — 22 commitsThu 10:00 — 18 commitsThu 11:00 — 16 commitsThu 12:00 — 11 commitsThu 13:00 — 14 commitsThu 14:00 — 10 commitsThu 15:00 — 13 commitsThu 16:00 — 19 commitsThu 17:00 — 21 commitsThu 18:00 — 19 commitsThu 19:00 — 10 commitsThu 20:00 — 8 commitsThu 21:00 — 3 commitsThu 22:00 — 9 commitsThu 23:00 — 5 commitsFri 0:00 — 11 commitsFri 1:00 — 2 commitsFri 2:00 — 2 commitsFri 3:00 — 1 commitsFri 4:00 — 2 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 5 commitsFri 8:00 — 7 commitsFri 9:00 — 5 commitsFri 10:00 — 7 commitsFri 11:00 — 5 commitsFri 12:00 — 12 commitsFri 13:00 — 12 commitsFri 14:00 — 5 commitsFri 15:00 — 12 commitsFri 16:00 — 6 commitsFri 17:00 — 5 commitsFri 18:00 — 2 commitsFri 19:00 — 5 commitsFri 20:00 — 1 commitsFri 21:00 — 0 commitsFri 22:00 — 3 commitsFri 23:00 — 11 commitsSat 0:00 — 3 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 3 commitsSat 9:00 — 6 commitsSat 10:00 — 12 commitsSat 11:00 — 2 commitsSat 12:00 — 9 commitsSat 13:00 — 15 commitsSat 14:00 — 11 commitsSat 15:00 — 5 commitsSat 16:00 — 3 commitsSat 17:00 — 5 commitsSat 18:00 — 3 commitsSat 19:00 — 2 commitsSat 20:00 — 3 commitsSat 21:00 — 0 commitsSat 22:00 — 18 commitsSat 23:00 — 12 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jun 18, 2026daily#20+12
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    453.6K stars · TypeScript

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • farion1231/cc-switch

    A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

    125.4K stars · Rust

  • immich-app/immich

    High performance self-hosted photo and video management solution.

    109.9K stars · TypeScript