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
- Homebrew installed
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 locallypnpm exec turbo run dev --filter=@hypr/web— Run the website locally to preview content changespnpm 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.