Onboarding

Node.js & pnpm

Install Node.js and pnpm — the JavaScript runtime and package manager the project depends on

What they are

Node.js is a JavaScript runtime. Our website, docs, and desktop app frontend all run on JavaScript — Node.js is what executes it on your machine.

pnpm is a package manager for JavaScript. When the project needs external libraries (and it needs hundreds), pnpm downloads and manages them. It's similar to npm but faster and more efficient.

You need both installed even if you never write JavaScript. Building the website, running the dev server, and previewing content changes all require them.

Prerequisites

Install Node.js

brew install node

Verify:

node --version

You should see v22.x.x or higher.

Install pnpm

brew install pnpm

Verify:

pnpm --version

You should see 10.x.x or higher.

Install project dependencies

Once both are installed, navigate to the Char repo and install all project dependencies:

cd ~/Dev/hyprnote
pnpm install

This downloads everything the project needs. It takes a minute or two the first time.

When you'll use these

You won't run node or pnpm commands constantly, but they're behind the scenes for:

  • pnpm exec turbo run tauri:dev --filter=@hypr/desktop — Run the desktop app locally
  • pnpm exec turbo run dev --filter=@hypr/web — Run the website locally to preview content changes
  • pnpm install — Run this after pulling new changes that update dependencies

Turbo is the default runner for JavaScript and TypeScript workflows in this repo. Taskfile remains useful for infra helpers like local Supabase and Stripe webhooks, but Node.js and pnpm power both layers.

Troubleshooting

"node: command not found" — Close and reopen your terminal after installing. If it still doesn't work, run brew link node.

"pnpm: command not found" — Same fix — close and reopen your terminal, or run brew link pnpm.

"pnpm install" fails with permission errors — Don't use sudo. If you get permission errors, the issue is usually with your Node.js installation. Reinstall Node.js via Homebrew.

Back to checklist

Return to Tooling Checklist