Shareable configurations for code quality tools used at M-Social
A monorepo containing all frontend linting, formatting, and code quality configurations used across M-Social projects.
- @m-social/oxlint-config - Oxlint configuration for high-performance linting
Note: ESLint configurations are designed to be used alongside @m-social/oxlint-config. ESLint handles rules not yet supported by oxlint, while oxlint handles the rest for improved linting performance.
- @m-social/eslint-config-react - ESLint configuration for React projects
- @m-social/eslint-config-svelte - ESLint configuration for Svelte projects
- @m-social/prettier-config - Base Prettier configuration
- @m-social/prettier-config-react - Prettier configuration for React projects
- @m-social/prettier-config-svelte - Prettier configuration for Svelte projects
- @m-social/oxfmt-config - Oxfmt configuration for high-performance formatting (with React and Svelte variants)
⚠️ Experimental - Oxfmt is in beta for now
- @m-social/biome-config - Biome configuration for fast formatting (with React and Svelte variants)
⚠️ Experimental - Currently supports formatting only
- @m-social/cspell-config - Shareable CSpell configuration for spell checking TypeScript projects
- @m-social/stylelint-config - Shareable Stylelint configuration for style linting in TypeScript projects
Choose the appropriate configuration for your project stack:
These configurations apply to all project stacks regardless of framework.
pnpm add -D cspell @m-social/cspell-configSee @m-social/cspell-config for usage instructions.
pnpm add -D stylelint @m-social/stylelint-configSee @m-social/stylelint-config for usage instructions.
Option 1: Prettier (Recommended)
pnpm add -D prettier @m-social/prettier-configSee @m-social/prettier-config for usage instructions.
Option 2: Oxfmt (Experimental)
pnpm add -D oxfmt @m-social/oxfmt-configSee @m-social/oxfmt-config for usage instructions.
Option 3: Biome (Experimental)
pnpm add -D @biomejs/biome @m-social/biome-configSee @m-social/biome-config for usage instructions.
Oxlint
pnpm add -D oxlint oxlint-tsgolint @m-social/oxlint-configSee @m-social/oxlint-config for usage instructions.
Option 1: Prettier (Recommended)
pnpm add -D prettier @m-social/prettier-config-svelteSee @m-social/prettier-config-svelte for usage instructions.
Option 2: Oxfmt (Experimental)
pnpm add -D oxfmt @m-social/oxfmt-configSee @m-social/oxfmt-config for usage instructions.
⚠️ Note: oxfmt does not currently support.sveltefiles. This config can be used for.svelte.tsand.svelte.jsfiles. For.sveltefiles, use Prettier (Option 1).
Option 3: Biome (Experimental)
pnpm add -D @biomejs/biome @m-social/biome-configSee @m-social/biome-config for usage instructions.
Oxlint + ESLint
pnpm add -D oxlint oxlint-tsgolint @m-social/oxlint-config eslint @m-social/eslint-config-svelteSee @m-social/oxlint-config and @m-social/eslint-config-svelte for usage instructions.
Option 1: Prettier (Recommended)
pnpm add -D prettier @m-social/prettier-config-reactSee @m-social/prettier-config-react for usage instructions.
Option 2: Oxfmt (Experimental)
pnpm add -D oxfmt @m-social/oxfmt-configSee @m-social/oxfmt-config for usage instructions.
Option 3: Biome (Experimental)
pnpm add -D @biomejs/biome @m-social/biome-configSee @m-social/biome-config for usage instructions.
Oxlint + ESLint
pnpm add -D oxlint oxlint-tsgolint @m-social/oxlint-config eslint @m-social/eslint-config-reactSee @m-social/oxlint-config and @m-social/eslint-config-react for usage instructions.
Option 1: Prettier (Recommended)
pnpm add -D prettier @m-social/prettier-config-reactSee @m-social/prettier-config-react for usage instructions.
Option 2: Oxfmt (Experimental)
pnpm add -D oxfmt @m-social/oxfmt-configSee @m-social/oxfmt-config for usage instructions.
Option 3: Biome (Experimental)
pnpm add -D @biomejs/biome @m-social/biome-configSee @m-social/biome-config for usage instructions.
Oxlint + ESLint
pnpm add -D oxlint oxlint-tsgolint @m-social/oxlint-config eslint @m-social/eslint-config-reactSee @m-social/oxlint-config and @m-social/eslint-config-react for usage instructions.
configs/
├── eslint/
│ ├── react/ # @m-social/eslint-config-react
│ └── svelte/ # @m-social/eslint-config-svelte
├── prettier/
│ ├── base/ # @m-social/prettier-config
│ ├── react/ # @m-social/prettier-config-react
│ ├── svelte/ # @m-social/prettier-config-svelte
│ └── utils/ # Shared utilities
├── oxfmt/ # @m-social/oxfmt-config
├── biome/ # @m-social/biome-config
├── oxlint/ # @m-social/oxlint-config
├── cspell/ # @m-social/cspell-config
└── stylelint/ # @m-social/stylelint-config
This monorepo uses pnpm workspaces for package management.
We recommend using proto to manage Node.js and pnpm versions. Proto will automatically load the correct versions defined in the project configuration.
# Install proto (if not already installed)
curl -fsSL https://moonrepo.dev/install/proto.sh | bash
# Install and use the project's Node.js and pnpm versions
proto useAlternatively, ensure you have Node.js 24 and pnpm installed manually.
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Lint all packages
pnpm lint
# Format all packages
pnpm formatEach package contains its own README with detailed usage instructions. Navigate to the specific package directory for more information.
Contributions are welcome! Please read our contributing guidelines before submitting a pull request.
MIT © M-Social