@@ -14,8 +14,9 @@ Payload is a monorepo structured around Next.js, containing the core CMS platfor
1414 - ` packages/next ` - Next.js integration layer
1515 - ` packages/db-* ` - Database adapters (MongoDB, Postgres, SQLite, Vercel Postgres, D1 SQLite)
1616 - ` packages/drizzle ` - Drizzle ORM integration
17+ - ` packages/kv-redis ` - Redis key-value store adapter
1718 - ` packages/richtext-* ` - Rich text editors (Lexical, Slate)
18- - ` packages/storage-* ` - Storage adapters (S3, Azure, GCS, Uploadthing, Vercel Blob)
19+ - ` packages/storage-* ` - Storage adapters (S3, Azure, GCS, Uploadthing, Vercel Blob, R2 )
1920 - ` packages/email-* ` - Email adapters (Nodemailer, Resend)
2021 - ` packages/plugin-* ` - Additional functionality plugins
2122 - ` packages/graphql ` - GraphQL API layer
@@ -35,21 +36,28 @@ Payload is a monorepo structured around Next.js, containing the core CMS platfor
3536- Source files are in ` src/ ` , compiled outputs go to ` dist/ `
3637- Monorepo uses pnpm workspaces and Turbo for builds
3738
39+ ## Quick Start
40+
41+ 1 . ` pnpm install `
42+ 2 . ` pnpm run build:core `
43+ 3 . ` pnpm run dev ` (MongoDB) or ` pnpm run dev:postgres `
44+
3845## Build Commands
3946
40- - ` pnpm install ` - Install all dependencies (pnpm required - run ` corepack enable ` first)
41- - ` pnpm build ` or ` pnpm build:core ` - Build core packages (excludes plugins and storage adapters)
42- - ` pnpm build:all ` - Build all packages
43- - ` pnpm build:<directory_name> ` - Build specific package (e.g. ` pnpm build:db-mongodb ` , ` pnpm build:ui ` )
47+ - ` pnpm install ` - Install all dependencies
48+ - ` pnpm turbo ` - All Turbo commands should be run from root with pnpm - not with ` turbo ` directly
49+ - ` pnpm run build ` or ` pnpm run build:core ` - Build core packages (excludes plugins and storage adapters)
50+ - ` pnpm run build:all ` - Build all packages
51+ - ` pnpm run build:<directory_name> ` - Build specific package (e.g. ` pnpm run build:db-mongodb ` , ` pnpm run build:ui ` )
4452
4553## Development
4654
4755### Running Dev Server
4856
49- - ` pnpm dev ` - Start dev server with default config (` test/_community/config.ts ` )
50- - ` pnpm dev <directory_name> ` - Start dev server with specific test config (e.g. ` pnpm dev fields ` loads ` test/fields/config.ts ` )
51- - ` pnpm dev:postgres ` - Run dev server with Postgres
52- - ` pnpm dev:memorydb ` - Run dev server with in-memory MongoDB
57+ - ` pnpm run dev ` - Start dev server with default config (` test/_community/config.ts ` )
58+ - ` pnpm run dev <directory_name> ` - Start dev server with specific test config (e.g. ` pnpm run dev fields ` loads ` test/fields/config.ts ` )
59+ - ` pnpm run dev:postgres ` - Run dev server with Postgres
60+ - ` pnpm run dev:memorydb ` - Run dev server with in-memory MongoDB
5361
5462### Development Environment
5563
@@ -60,19 +68,12 @@ Payload is a monorepo structured around Next.js, containing the core CMS platfor
6068
6169## Testing
6270
63- ### Running Tests
64-
65- - ` pnpm test ` - Run all tests (integration + components + e2e)
66- - ` pnpm test:int ` - Run integration tests (MongoDB, recommended for verifying local changes)
67- - ` pnpm test:int <directory_name> ` - Run specific integration test suite (e.g. ` pnpm test:int fields ` )
68- - ` pnpm test:int:postgres ` - Run integration tests with Postgres
69- - ` pnpm test:int:sqlite ` - Run integration tests with SQLite
70- - ` pnpm test:unit ` - Run unit tests
71- - ` pnpm test:e2e ` - Run end-to-end tests (Playwright)
72- - ` pnpm test:e2e:headed ` - Run e2e tests in headed mode
73- - ` pnpm test:e2e:debug ` - Run e2e tests in debug mode
74- - ` pnpm test:components ` - Run component tests (Jest)
75- - ` pnpm test:types ` - Run type tests (tstyche)
71+ - ` pnpm run test ` - Run all tests (integration + components + e2e)
72+ - ` pnpm run test:int ` - Integration tests (MongoDB, recommended)
73+ - ` pnpm run test:int <dir> ` - Specific test suite (e.g. ` fields ` )
74+ - ` pnpm run test:int:postgres|sqlite ` - Integration tests with other databases
75+ - ` pnpm run test:e2e ` - Playwright tests (add ` :headed ` or ` :debug ` suffix)
76+ - ` pnpm run test:unit|components|types ` - Other test suites
7677
7778### Test Structure
7879
@@ -86,19 +87,19 @@ test/<feature-name>/
8687└── payload-types.ts # Generated types
8788```
8889
89- Generate types for a test directory: ` pnpm dev:generate-types <directory_name> `
90+ Generate types for a test directory: ` pnpm run dev:generate-types <directory_name> `
9091
9192## Linting & Formatting
9293
93- - ` pnpm lint ` - Run linter across all packages
94- - ` pnpm lint:fix ` - Fix linting issues
94+ - ` pnpm run lint ` - Run linter across all packages
95+ - ` pnpm run lint:fix ` - Fix linting issues
9596
9697## Internationalization
9798
9899- Translation files are in ` packages/translations/src/languages/ `
99100- Add new strings to English locale first, then translate to other languages
100- - Run ` pnpm translateNewKeys ` to auto-translate new keys (requires ` OPENAI_KEY ` in ` .env ` )
101- - Lexical translations: ` cd packages/richtext-lexical && pnpm translateNewKeys `
101+ - Run ` pnpm run translateNewKeys ` to auto-translate new keys (requires ` OPENAI_KEY ` in ` .env ` )
102+ - Lexical translations: ` cd packages/richtext-lexical && pnpm run translateNewKeys `
102103
103104## Commit & PR Guidelines
104105
0 commit comments