## 1. Project Overview & Quickstart (TryGhost/Ghost)

## File: README.md

&nbsp;

&nbsp;



&nbsp;

> [!NOTE]
> Love open source? We're hiring! Ghost is looking staff engineers to [join the team](https://careers.ghost.org) and work with us full-time

[](https://ghost.org/)

&nbsp;

[](https://ghost.org/pricing/#gh-light-mode-only)
[](https://ghost.org/pricing/#gh-dark-mode-only)

The easiest way to get a production instance deployed is with our official **[Ghost(Pro)](https://ghost.org/pricing/)** 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](https://ghost.org/docs/hosting/) — 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!

&nbsp;

# 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
```

&nbsp;

Then, if installing locally add the `local` flag to get up and running in under a minute - [Local install docs](https://ghost.org/docs/install/local/)

```
ghost install local
```

&nbsp;

or on a server run the full install, including automatic SSL setup using LetsEncrypt - [Production install docs](https://ghost.org/docs/install/ubuntu/)

```
ghost install
```

&nbsp;

Check out our [official documentation](https://ghost.org/docs/) for more information about our [recommended hosting stack](https://ghost.org/docs/hosting/) & properly [upgrading Ghost](https://ghost.org/docs/update/), plus everything you need to develop your own Ghost [themes](https://ghost.org/docs/themes/) or work with [our API](https://ghost.org/docs/content-api/).

### Contributors & advanced developers

To contribute to Ghost, start with the
[contributing guide](.github/CONTRIBUTING.md). To work on the monorepo, see the
[codebase documentation](docs/README.md).

&nbsp;

# 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](https://github.com/sponsors/TryGhost) :heart:

**[DigitalOcean](https://m.do.co/c/9ff29836d717)** • **[Fastly](https://www.fastly.com/)** • **[Tinybird](https://tbrd.co/ghost)** • **[BairesDev](https://www.bairesdev.com)**

&nbsp;

# Getting help

Everyone can get help and support from a large community of developers over on the [Ghost forum](https://forum.ghost.org/). **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](https://ghost.org/changelog/) — or follow us [on Twitter](https://twitter.com/Ghost), if you prefer your updates bite-sized and facetious. :saxophone::turtle:

&nbsp;

# License & trademark

Copyright (c) 2013-2026 Ghost Foundation - Released under the [MIT license](LICENSE).
Ghost and the Ghost Logo are trademarks of Ghost Foundation Ltd. Please see our [trademark policy](https://ghost.org/trademark/) for info on acceptable usage.

---

## File: docs/README.md

# Ghost Codebase Documentation

Welcome to the Ghost codebase documentation! These docs are for anyone wanting
to work on the Ghost codebase. For self-hosting, themes, or using Ghost APIs,
see the [official Ghost documentation](https://ghost.org/docs/).

## Quick Start

With the [prerequisites](contributing/development-setup.md#prerequisites)
installed:

```bash
git clone --recurse-submodules git@github.com:TryGhost/Ghost.git
cd Ghost

pnpm setup
pnpm dev
```

Ghost will be available at:

- **Main site**: [http://localhost:2368](http://localhost:2368)
- **Admin panel**: [http://localhost:2368/ghost/](http://localhost:2368/ghost/)
- **Development email**: [http://localhost:8025](http://localhost:8025)

`pnpm dev` also starts the supporting MySQL and Redis containers, plus Admin and
Portal development watchers.

For more detail, see the
[development setup guide](contributing/development-setup.md) including first-run
setup, development variants, and troubleshooting.

## Repository Structure

```text
Ghost/
├── apps/              # Admin and public frontend apps
│   ├── admin/          # React Admin
│   ├── ember-admin/    # Legacy Ember Admin
│   ├── portal/         # Member Portal
│   ├── comments-ui/    # Comments
│   └── shade/          # Admin design system
├── ghost/core/        # Ghost server and frontend rendering
│   ├── core/server/    # APIs, models, and services
│   ├── core/frontend/  # Theme rendering and helpers
│   ├── content/        # Default themes, adapters, and local content
│   └── test/           # Server tests
├── koenig/            # Editor and content-format packages
├── packages/          # Shared libraries and adapter contracts
├── configs/           # Shared build, lint, test, and TypeScript config
├── e2e/               # Browser end-to-end tests
├── docker/            # Local development containers and services
└── scripts/           # Repository tooling
```

pnpm links the workspaces and Nx runs their tasks in dependency order. For more
detail, see the [monorepo structure guide](codebase/monorepo-structure.md). The
[configuration guide](codebase/configuration.md) explains how Ghost Core loads
defaults, local overrides, environment variables, and secrets. The
[authentication guide](codebase/authentication.md) maps staff, integration, and
member authentication to the current codebase.

## Contributing a change

Before contributing, please read:

1. [Contributing Guide](../.github/CONTRIBUTING.md) - Guidelines for contributions
2. [Code of Conduct](../.github/CODE_OF_CONDUCT.md) - Community standards

To contribute or add translations, see
[Translating Ghost](contributing/translating-ghost.md). For more detail on
adding translatable product copy, see the
[internationalization guide](practices/internationalization.md).

## Guides

Codebase guides explain how the main systems fit together:

- [Authentication](codebase/authentication.md)
- [Configuration](codebase/configuration.md)
- [Database structure](codebase/database.md)
- [Internal caching](codebase/internal-caching.md)
- [Jobs system](codebase/jobs.md)
- [Post analytics](codebase/post-analytics.md)
- [Site UUID](codebase/site-uuid.md)
- [Stripe flows](codebase/stripe-flows.md)
- [Theme compatibility](codebase/theme-compatibility.md)

Practice and contributor guides explain how to make and verify changes:

- [API design](practices/api-design.md)
- [Database migrations](practices/database-migrations.md)
- [Browser E2E testing](contributing/e2e-testing.md)
- [Codebase documentation](contributing/documentation.md)
- [Email testing](contributing/testing-email.md)
- [Error handling](practices/error-handling.md)
- [Internationalization](practices/internationalization.md)
- [Performance testing](contributing/performance-testing.md)
- [Testing development URLs and devices](contributing/testing-development-urls.md)

Reference guides provide tables and other information to look up while working
on Ghost:

- [Node.js compatibility](reference/node-compatibility.md)

### Finding Issues to Work On

- [Good First Issues](https://github.com/TryGhost/Ghost/labels/good%20first%20issue) - Great for newcomers
- [Help Wanted](https://github.com/TryGhost/Ghost/labels/help%20wanted) - Issues that need attention

### Development Workflow

1. **Clone** the repository
2. **Create a branch** for your changes
3. **Make your changes** and write tests
4. **Run `pnpm check`** to ensure everything works
5. **Commit** following our commit message conventions
6. **Submit a pull request** to the `main` branch

For more detail, see the [contribution workflow](contributing/workflow.md).

### Testing

Use `pnpm check` as the default one-stop command for linting and testing. Add
tests at the closest layer to the behavior you changed. Browser end-to-end tests
and Ember Admin tests run separately from `pnpm check`.

For more detail, see the [testing guide](contributing/testing.md) including how
to choose a test suite, run focused tests, and use the separate browser and
Ember Admin test lanes.

### Shipping

Admin uses continuous delivery on Ghost(Pro), so every commit to `main` can ship
before the next server release. Keep Admin compatible with server versions that
are still live. Public Ghost releases include Admin and the server every
Tuesday.

For more detail, see the [shipping guide](contributing/shipping.md) including
when changes reach Ghost(Pro), self-hosted installs, npm, jsDelivr, and the
Docker Official Image.

## Additional Resources

- **[Official Documentation](https://ghost.org/docs/)** - User and developer docs
- **[Ghost Forum](https://forum.ghost.org)** - Community support and discussions
- **[API Documentation](https://ghost.org/docs/content-api/)** - Content and Admin API reference
- **[Theme Documentation](https://ghost.org/docs/themes/)** - Theme development

## Getting Help

- **Forum**: [forum.ghost.org](https://forum.ghost.org)
- **Support**: [See SUPPORT.md](../.github/SUPPORT.md)
- **Issues**: [GitHub Issues](https://github.com/TryGhost/Ghost/issues)

## License

Ghost is open source software licensed under the [MIT License](../LICENSE).

## 2. Official Technical Reference & Guides (TryGhost/docs)

# Ghost Docs

This repository contains the official developer documentation for
[Ghost](https://github.com/TryGhost/Ghost), published at
[docs.ghost.org](https://docs.ghost.org/).

## Local development

Local previews require a Node.js version supported by [`package.json`](./package.json).
Enable pnpm through Corepack and install the repository dependencies:

```sh
corepack enable pnpm
pnpm install
pnpm dev
```

The preview is available at `http://localhost:3000` by default.

## Validation

Run the documentation checks before opening a pull request:

```sh
pnpm lint
pnpm test
pnpm a11y
```

These checks currently expose known findings on `main`. Compare your results
with `main` and avoid introducing additional failures.

See the [contribution guide](.github/CONTRIBUTING.md) for the repository
workflow.

## Deployment

The Mintlify GitHub App creates pull request previews. Merging to `main`
triggers deployment to [docs.ghost.org](https://docs.ghost.org/); monitor the
`Mintlify Deployment` check for the result.

---

## Copyright & License

Copyright (c) 2013-2026 Ghost Foundation. All rights reserved.

This code is considered closed-source and not for distribution. There is no
open source license associated with this project.