Hi everyone,
I’m trying to set up the Ghost development environment to start contributing, but I’m unable to build the project on a completely fresh checkout.
Environment
-
OS: Windows 11 Home Single Language (23H2, Build 22631)
-
Repository: Fresh clone of
TryGhost/Ghost -
Branch:
main -
Commit:
e9ef52762c -
Node.js: v22.x (also reproduced on v24.16.0)
-
pnpm: 11.9.0
-
Docker Desktop: Installed
-
Docker Compose: v5.0.0-desktop.1
Setup Steps
git clone --recurse-submodules https://github.com/TryGhost/Ghost.git
cd Ghost
pnpm install
Installation completes successfully:
Scope: all 31 workspace projects
Already up to date
Submodules are initialized correctly:
git submodule status
Output:
bb3d0de3c7065677bb18b38d8185a8a980b163bd ghost/core/content/themes/casper
3a5643b42a4700e961e65ebda92f6a6c56bf8c86 ghost/core/content/themes/source
Verification
The dependencies that initially appeared missing are actually installed:
pnpm why @vitejs/plugin-react
pnpm why vite-plugin-svgr
Both commands resolve successfully.
Build Failure
Running:
pnpm build
fails with two projects:
-
@tryghost/shade -
@tryghost/koenig-lexical
First failure (@tryghost/shade)
nx run @tryghost/shade:build
tsc -p tsconfig.declaration.json &&
tsc-alias -p tsconfig.declaration.json &&
vite build
Build failed with 1 error:
[INVALID_OPTION]
You must supply `options.input` to rolldown
This appears to originate from Rolldown/Vite during the production build.
Second failure (@tryghost/koenig-lexical)
JSONError
path:
.../kg-default-nodes/build/esm/package.json
expected value at line 1 column 1
This appears multiple times during the build and may simply be a consequence of the shade build failing first.
pnpm dev
Running:
pnpm dev
also fails.
Additionally, Docker receives the following command:
docker compose -f compose.dev.yaml ${DEV_COMPOSE_FILES} build
where ${DEV_COMPOSE_FILES} is passed literally instead of expanding.
Docker reports:
unknown docker command:
"compose ${DEV_COMPOSE_FILES}"
I’m not sure whether this is related to the main build failure or a separate Windows-specific issue.
Things I’ve Already Tried
-
Fresh clone of the repository
-
Cloned with
--recurse-submodules -
pnpm install -
Node 24
-
Node 22
-
PowerShell
-
Git Bash
-
Verified dependencies using
pnpm why -
Verified submodules
-
Verified Docker installation
The build failure remains identical.
Expected Result
pnpm build completes successfully.
Actual Result
Build consistently fails in:
-
@tryghost/shade -
@tryghost/koenig-lexical
preventing the development environment from starting.
Question
Is this a known issue on Windows (possibly related to the recent Vite/Rolldown migration), or is there an additional setup step required that isn’t documented in the contributor guide?
Any guidance would be appreciated. I’m trying to get my local environment working so I can start contributing. Thank You.