diff --git a/AGENTS.md b/AGENTS.md
index b89c1b791..e64c479f2 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -12,7 +12,7 @@ Internal packages are source-consumed through `package.json` export maps that po
- **Node.js 24** (matches Dockerfile `ARG NODE_VERSION=24`). Use `nvm install 24 && nvm use 24` if needed.
- **Docker** is required to run PostgreSQL. Start it with `sudo dockerd &` if the daemon isn't running.
-- **pnpm 11.17.0** is managed via corepack (`corepack enable`).
+- **pnpm 11.21.0**. Install pnpm directly using the [official installation guide](https://pnpm.io/installation).
### Codebase map
diff --git a/Dockerfile b/Dockerfile
index 3b5ceeb39..b43f1c985 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,17 +1,17 @@
# syntax=docker/dockerfile:1.7
+ARG PNPM_VERSION=11.21.0
ARG NODE_VERSION=24
-FROM node:${NODE_VERSION}-slim AS base
+FROM ghcr.io/pnpm/pnpm:${PNPM_VERSION} AS base
+
+ARG NODE_VERSION
+
+RUN pnpm runtime set node ${NODE_VERSION} -g --config.store-dir=/pnpm/runtime-store
WORKDIR /app
-ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 \
- PNPM_HOME="/pnpm" \
- PATH="/pnpm:$PATH" \
- TURBO_TELEMETRY_DISABLED=1
-
-RUN corepack enable
+ENV TURBO_TELEMETRY_DISABLED=1
FROM base AS pruner
COPY . .
diff --git a/Dockerfile.dev b/Dockerfile.dev
index 5396636e4..00f5888d1 100644
--- a/Dockerfile.dev
+++ b/Dockerfile.dev
@@ -1,19 +1,19 @@
# syntax=docker/dockerfile:1.7
+ARG PNPM_VERSION=11.21.0
ARG NODE_VERSION=24
-FROM node:${NODE_VERSION}-slim AS dev
+FROM ghcr.io/pnpm/pnpm:${PNPM_VERSION} AS dev
+
+ARG NODE_VERSION
+
+RUN pnpm runtime set node ${NODE_VERSION} -g --config.store-dir=/pnpm/runtime-store
WORKDIR /app
-ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 \
- PNPM_HOME="/pnpm" \
- PATH="/pnpm:$PATH" \
- NODE_ENV=development \
+ENV NODE_ENV=development \
TURBO_TELEMETRY_DISABLED=1
-RUN corepack enable
-
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
COPY patches ./patches
COPY apps/server/package.json ./apps/server/package.json
diff --git a/docs/contributing/development.mdx b/docs/contributing/development.mdx
index 32d950f2a..4207a8415 100644
--- a/docs/contributing/development.mdx
+++ b/docs/contributing/development.mdx
@@ -4,7 +4,7 @@ description: "Set up a local development environment for Reactive Resume with pn
---
- **Prerequisites**: - [Node.js](https://nodejs.org/) v24 - [pnpm](https://pnpm.io/) v11.17.0 through Corepack -
+ **Prerequisites**: - [Node.js](https://nodejs.org/) v24 - [pnpm](https://pnpm.io/) v11.21.0 -
[Docker](https://docs.docker.com/get-docker/) and Docker Compose - [Git](https://git-scm.com/)
@@ -23,13 +23,9 @@ This guide walks you through setting up Reactive Resume for local development. W
- This project uses [pnpm](https://pnpm.io/) through Corepack.
-
+ Install [pnpm](https://pnpm.io/installation) directly, then install the project dependencies:
+
```bash
- # Enable the package manager version from package.json
- corepack enable
-
- # Install project dependencies
pnpm install
```