- TypeScript 60.4%
- JavaScript 37.3%
- Handlebars 0.9%
- CSS 0.8%
- HTML 0.3%
- Other 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
ci.yml / Fixed dev:down and the dev:up watcher leaving Nx tasks running (#31789) (push) Failing after 0s
Publish E2E Runner Image / Build and push E2E runner to GHCR (push) Has been skipped
i18n Review Checks / Lint + test (push) Waiting to run
Koenig Demo / Build (push) Has been skipped
Koenig Demo / Deploy (push) Has been skipped
TypeScript inventory / inventory (push) Has been skipped
no ref Nx starts each task as the leader of its own process group, so `pnpm dev:down` and the `dev:up` watcher only signalled nx. When nx was SIGKILLed after the grace period, or exited on its own, its `vite build --watch` and nodemon tasks ran on under launchd for hours. - `dev:down` walks the process tree first, TERMs every process group in it, then KILLs what survives. - `dev:down` also stops this checkout's Nx tasks whose `NX_INVOCATION_ROOT_PID` has exited, so earlier leaks get cleaned up. Other checkouts' processes are left alone. - The watcher records the tree on each poll, so it can still stop tasks after nx exits, and it removes `.ghost-dev.pid`. |
||
| .agents | ||
| .amp | ||
| .changeset | ||
| .claude | ||
| .codex | ||
| .cursor | ||
| .devcontainer | ||
| .github | ||
| .vscode | ||
| apps | ||
| configs | ||
| docker | ||
| docs | ||
| e2e | ||
| ghost | ||
| koenig | ||
| packages | ||
| patches | ||
| scripts | ||
| .coderabbit.yaml | ||
| .dependency-cruiser.cjs | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .lintstagedrc.cjs | ||
| .markdownlint-cli2.jsonc | ||
| .node-version | ||
| .nvmrc | ||
| .nxignore | ||
| .oxfmtrc.json | ||
| .pnpmfile.mjs | ||
| .secretlintrc.json | ||
| AGENTS.md | ||
| compose.dev.analytics.yaml | ||
| compose.dev.fake-mailgun.yaml | ||
| compose.dev.mailgun.yaml | ||
| compose.dev.storage.yaml | ||
| compose.dev.stripe-tunnel.yaml | ||
| compose.dev.yaml | ||
| CONTEXT-MAP.md | ||
| Dockerfile.production | ||
| eslint.config.mjs | ||
| knip.json | ||
| LICENSE | ||
| nx.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| SECURITY.md | ||
| skills-lock.json | ||
| sonar-project.properties | ||
| vitest.config.mjs | ||
Ghost.org •
Forum •
Docs •
Contributing •
Twitter
Note
Love open source? We're hiring! Ghost is looking staff engineers to join the team and work with us full-time
The easiest way to get a production instance deployed is with our official Ghost(Pro) managed service. It takes about 2 minutes to launch a new site with worldwide CDN, backups, security and maintenance all done for you.
For most people this ends up being the best value option because of how much time it saves — and 100% of revenue goes to the Ghost Foundation; funding the maintenance and further development of the project itself. So you’ll be supporting open source software and getting a great service!
Quickstart install
If you want to run your own instance of Ghost, in most cases the best way is to use our CLI tool
npm install ghost-cli -g
Then, if installing locally add the local flag to get up and running in under a minute - Local install docs
ghost install local
or on a server run the full install, including automatic SSL setup using LetsEncrypt - Production install docs
ghost install
Check out our official documentation for more information about our recommended hosting stack & properly upgrading Ghost, plus everything you need to develop your own Ghost themes or work with our API.
Contributors & advanced developers
To contribute to Ghost, start with the contributing guide. To work on the monorepo, see the codebase documentation.
Ghost sponsors
A big thanks to our sponsors and partners who make Ghost possible. If you're interested in sponsoring Ghost and supporting the project, please check out our profile on GitHub sponsors ❤️
DigitalOcean • Fastly • Tinybird • BairesDev
Getting help
Everyone can get help and support from a large community of developers over on the Ghost forum. Ghost(Pro) customers have access to 24/7 email support.
To stay up to date with all the latest news and product updates, make sure you subscribe to our changelog newsletter — or follow us on Twitter, if you prefer your updates bite-sized and facetious. 🎷🐢
License & trademark
Copyright (c) 2013-2026 Ghost Foundation - Released under the MIT license. Ghost and the Ghost Logo are trademarks of Ghost Foundation Ltd. Please see our trademark policy for info on acceptable usage.


