Multi-Tenant Payload CMS for complex care solutions gmbh et al.
Find a file
Martin Porwoll 3f61050fb3 feat: add Timeline Collection for complex chronological events
Add dedicated Timeline Collection for managing complex timeline events:

- Collection: Multiple types (history, milestones, releases, career, events, process)
- Events: Flexible date handling (year, month+year, full date, ranges, custom text)
- Categories: milestone, founding, product, team, award, partnership, expansion, technology
- Importance levels: highlight, normal, minor
- Display options: layouts (vertical, alternating, horizontal, compact), sorting, year grouping
- Media: Image and gallery support per event
- Localization: Full support for DE/EN
- SEO: Meta fields for each timeline

API Features:
- Public endpoint at /api/timelines with tenant isolation
- Rate limiting and IP blocking
- Filter by type, slug, category, importance
- Locale parameter support
- Date formatting and sorting
- Optional grouping by year

Database: 8 tables created via migration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-13 10:22:56 +00:00
.github/workflows feat: add Products and ProductCategories collections with CI/CD pipeline 2025-12-12 21:36:26 +00:00
.vscode Initial commit 2025-11-26 21:18:31 +00:00
backups chore: add jobs, backups, and migration history 2025-12-01 08:24:26 +00:00
docs feat: add Products and ProductCategories collections with CI/CD pipeline 2025-12-12 21:36:26 +00:00
scripts feat: add Products and ProductCategories collections with CI/CD pipeline 2025-12-12 21:36:26 +00:00
src feat: add Timeline Collection for complex chronological events 2025-12-13 10:22:56 +00:00
tests feat: add Timeline Collection for complex chronological events 2025-12-13 10:22:56 +00:00
.env.example docs: consolidate and update documentation 2025-12-09 09:25:00 +00:00
.gitignore chore: add database backup for server migration 2025-12-05 14:46:33 +00:00
.gitleaks.toml feat: implement security hardening module 2025-12-07 23:04:14 +00:00
.npmrc Initial commit 2025-11-26 21:18:31 +00:00
.prettierrc chore: update core configuration and dependencies 2025-12-01 08:18:41 +00:00
.prettierrc.json Initial commit 2025-11-26 21:18:31 +00:00
.yarnrc Initial commit 2025-11-26 21:18:31 +00:00
backup.sql chore: add database backup for server migration 2025-12-05 14:46:33 +00:00
CLAUDE.md feat: add Timeline Collection for complex chronological events 2025-12-13 10:22:56 +00:00
docker-compose.yml Initial commit 2025-11-26 21:18:31 +00:00
Dockerfile Initial commit 2025-11-26 21:18:31 +00:00
ecosystem.config.cjs feat: BullMQ queue system for email and PDF processing 2025-12-09 22:59:17 +00:00
eslint.config.mjs feat: add Products and ProductCategories collections with CI/CD pipeline 2025-12-12 21:36:26 +00:00
next.config.mjs chore: update core configuration and dependencies 2025-12-01 08:18:41 +00:00
package.json feat: add Products and ProductCategories collections with CI/CD pipeline 2025-12-12 21:36:26 +00:00
playwright.config.ts test: add E2E tests for critical flows 2025-12-12 22:32:55 +00:00
pnpm-lock.yaml feat: add OpenAPI documentation with Swagger UI 2025-12-10 15:14:13 +00:00
README.md docs: consolidate and update documentation 2025-12-09 09:25:00 +00:00
test.env Initial commit 2025-11-26 21:18:31 +00:00
tsconfig.json Initial commit 2025-11-26 21:18:31 +00:00
vitest.config.mts docs: consolidate and update documentation 2025-12-09 09:25:00 +00:00
vitest.setup.ts Initial commit 2025-11-26 21:18:31 +00:00

Payload Blank Template

This template comes configured with the bare minimum to get started on anything you need.

Quick start

This template can be deployed directly from our Cloud hosting and it will setup MongoDB and cloud S3 object storage for media.

Quick Start - local setup

To spin up this template locally, follow these steps:

Clone

After you click the Deploy button above, you'll want to have standalone copy of this repo on your machine. If you've already cloned this repo, skip to Development.

Development

  1. First clone the repo if you have not done so already

  2. cd my-project && cp .env.example .env to copy the example environment variables. You'll need to add the MONGODB_URI from your Cloud project to your .env if you want to use S3 storage and the MongoDB database that was created for you.

  3. pnpm install && pnpm dev to install dependencies and start the dev server

  4. open http://localhost:3000 to open the app in your browser

That's it! Changes made in ./src will be reflected in your app. Follow the on-screen instructions to login and create your first admin user. Then check out Production once you're ready to build and serve your app, and Deployment when you're ready to go live.

Docker (Optional)

If you prefer to use Docker for local development instead of a local MongoDB instance, the provided docker-compose.yml file can be used.

To do so, follow these steps:

  • Modify the MONGODB_URI in your .env file to mongodb://127.0.0.1/<dbname>
  • Modify the docker-compose.yml file's MONGODB_URI to match the above <dbname>
  • Run docker-compose up to start the database, optionally pass -d to run in the background.

How it works

The Payload config is tailored specifically to the needs of most websites. It is pre-configured in the following ways:

Collections

See the Collections docs for details on how to extend this functionality.

  • Users (Authentication)

    Users are auth-enabled collections that have access to the admin panel.

    For additional help, see the official Auth Example or the Authentication docs.

  • Media

    This is the uploads enabled collection. It features pre-configured sizes, focal point and manual resizing to help you manage your pictures.

Docker

Alternatively, you can use Docker to spin up this template locally. To do so, follow these steps:

  1. Follow steps 1 and 2 from above, the docker-compose file will automatically use the .env file in your project root
  2. Next run docker-compose up
  3. Follow steps 4 and 5 from above to login and create your first admin user

That's it! The Docker instance will help you get up and running quickly while also standardizing the development environment across your teams.

Email testing

Security integration tests exercise the SMTP endpoints and will hang if no mail server is reachable. Set EMAIL_DELIVERY_DISABLED=true (default is false) to bypass the actual SMTP call while still logging the request. This flag is automatically honored in NODE_ENV=test, so CI pipelines can safely run the security test suite without external dependencies.

Questions

If you have any issues or questions, reach out to us on Discord or start a GitHub discussion.