9a0900e3ff8c9f1eb10ecd6671dd34e131c4245c
Mintel Monorepo
This monorepo manages multiple client websites using a shared technology stack: Next.js, TypeScript, and React.
Project Structure
apps/: Client websites (e.g.,sample-website).packages/: Shared packages under the@mintelnamespace.@mintel/tsconfig: Shared TypeScript configurations.@mintel/eslint-config: Shared ESLint configurations.@mintel/next-config: Shared Next.js configuration wrapper.@mintel/next-utils: Reusable logic (i18n, rate limiting, etc.).@mintel/infra: Infrastructure templates (Docker, Gitea Actions).@mintel/cli: CLI tool for project setup and migration.
Getting Started
Prerequisites
- pnpm (v10+)
- Node.js (v20+)
Installation
pnpm install
Development
pnpm dev
Building
pnpm build
Creating a New Project
Use the Mintel CLI to set up a new project or migrate an existing one:
pnpm --filter @mintel/cli start init apps/my-new-website
Versioning and Releasing
We use Changesets for version management.
1. Add a changeset
When you make a change that requires a version bump, run:
pnpm changeset
2. Version packages
To bump versions based on accumulated changesets:
pnpm version-packages
3. Publish to registry
To build and publish all changed packages to the private registry:
pnpm release
Deployment
Projects are hosted on Hetzner with Docker and Traefik, deployed via Gitea Actions. See @mintel/infra for templates.
Registry
Private npm registry: https://npm.infra.mintel.me
Description
Languages
TypeScript
92.8%
JavaScript
4.2%
Shell
1.8%
Dockerfile
0.5%
CSS
0.4%
Other
0.3%