A Next.js project using Payload CMS with TypeScript and modern React.
- How to manage section layout in Payload CMS - PR
- How to build inline rich text field in Payload CMS - PR
- How to build color input in Payload CMS 3 - PR
- How to add dynamic data in rich text using inline blocks in Payload CMS - PR
- How to build a search in Payload CMS - PR
- Node.js (LTS version recommended)
- PNPM
- MongoDB (for database)
- Framework: Next.js 15
- CMS: Payload CMS 3
- Database: MongoDB
- UI Libraries:
- @faceless-ui/modal
- @faceless-ui/scroll-info
- Rich Text Editor: Lexical (via @payloadcms/richtext-lexical)
- Styling: Tailwind CSS
- Type Checking: TypeScript
- Clone the repository
- Install dependencies:
pnpm install-
Set up your environment variables (create a
.envfile based on.env.example) -
You can use restore database to not fill it manual with
pnpm preset. This step is optional
User's credentials for this DB:
Admin path: http://localhost:3000/admin
Login: test@gmail.com
Password: Test
- Run the development server:
pnpm devpnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLintpnpm lint:fix- Fix ESLint issuespnpm generate:types- Generate Payload typespnpm preset- Restore database from example
- ESLint - JavaScript/TypeScript linting
- Prettier - Code formatting
- lint-staged - Run linters on staged files
- SEO optimization (via @payloadcms/plugin-seo)
- Nested documents support
- URL redirects management
- Vercel Blob storage integration
- Rich text editing with Lexical
- Responsive design with Tailwind CSS
- Type-safe development with TypeScript
payload-demo/
├── components/ # React components
├── pages/ # Next.js pages
├── public/ # Static assets
├── styles/ # CSS styles
├── types/ # TypeScript types
└── payload/ # Payload CMS configuration
- Create a feature branch
- Make your changes
- Run tests and ensure code quality:
pnpm lint- Submit a pull request