Files
at-mintel/README.md
Marc Mintel 23358fc708
Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 2s
Monorepo Pipeline / 🧪 Test (push) Successful in 8m49s
Monorepo Pipeline / 🧹 Lint (push) Successful in 9m13s
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Failing after 51s
Monorepo Pipeline / 🐳 Build Build-Base (push) Successful in 1m34s
Monorepo Pipeline / 🏗️ Build (push) Successful in 6m58s
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Successful in 20s
Monorepo Pipeline / 🐳 Build Production Runtime (push) Successful in 18s
Monorepo Pipeline / 🚀 Release (push) Successful in 3m58s
fix: temporary trigger test
2026-02-13 14:38:01 +01:00

3.1 KiB

Mintel Monorepo

This monorepo is the central "factory" for all Mintel client websites. It provides a standardized, versioned core of configurations, utilities, and infrastructure templates to ensure consistency, security, and rapid deployment across the entire portfolio.

🏗 Project Structure

  • apps/: Client website implementations (e.g., sample-website). These are consumers of the shared packages.
  • packages/: Shared, versioned npm packages under the @mintel namespace.

🚀 Getting Started

Prerequisites

  • pnpm (v10+)
  • Node.js (v20+)
  • Access to the private registry: https://npm.infra.mintel.me

Installation

pnpm install

Development

To run development mode for all shared packages:

pnpm dev

Building

To build all shared packages:

pnpm build

🛠 Creating a New Client Project

Never copy-paste files manually. Use the Mintel CLI to scaffold a new project with all best practices pre-configured:

pnpm --filter @mintel/cli start init apps/client-name.com

This command automatically:

  1. Sets up the directory structure.
  2. Links all @mintel shared packages.
  3. Configures next-intl (i18n) and Sentry.
  4. Injects Docker and Gitea Actions deployment workflows.

🔄 Release Cycle (Monorepo)

We use Changesets to manage the versioning and publishing of shared packages.

1. Documenting Changes

When you modify a package in packages/*, create a changeset:

pnpm changeset

Follow the prompts to select the package and the version bump type (patch, minor, major).

2. Versioning

When ready to release, bump the versions:

pnpm version-packages

This updates package.json files and generates CHANGELOG.md entries.

3. Publishing

The release to the private registry is automated via Gitea Actions. On every push to main, the release.yml workflow runs pnpm release. If new versions are detected, they are published to https://npm.infra.mintel.me.

🌐 Infrastructure & Deployment

Client websites scaffolded via the CLI use a tag-based deployment strategy:

  • Push to main: Deploys to the testing environment.
  • Git Tag v*.*.*-rc.*: Deploys to the staging environment.
  • Git Tag v*.*.*: Deploys to the production environment.

See the @mintel/infra package for detailed template documentation.