Skip to main content
skill CX Codex

monorepo — Claude Code skill: monorepo conventions

A skill that hands your agent a rulebook for monorepos built on TypeScript, React, Next.js and Expo with Turbo. Useful when several apps and shared packages live in one repo.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add Mindrally/skills --skill monorepo -a claude-code
Open on GitHub

What monorepo does

The skill loads as an instruction set and describes how code should look inside a monorepo. It covers the apps/ and packages/ split, shared configs in a root configs/ directory, and workspace naming. Separate sections deal with TypeScript and Zod, state via Zustand, data fetching through TanStack React Query, and i18n with i18next and expo-localization.

Error handling and performance get their own blocks: early returns instead of nested conditionals, dynamic imports, lazy loading, WebP images. Cross-platform work leans on Solito and .native.tsx files. The backend section points at Supabase with Row Level Security policies, payments at Stripe with webhook handlers and subscription syncing.

It fits projects that already committed to this stack. The skill does not pick tools for you — Zustand, Supabase, Stripe and Tamagui are treated as given, so on a Redux or Prisma codebase some advice simply will not apply. Install runs through npx skills add with a platform flag, and the skill file lands in a path like ~/.claude/skills/monorepo/SKILL.md.

What it helps with

  • split apps and shared packages into apps/ and packages/
  • move shared configs into a root configs/ directory
  • settle on Zustand and TanStack React Query instead of a hand-rolled store
  • share navigation between web and mobile with Solito
  • wire Zod schema validation and Supabase RLS policies

Example prompts for the agent

  • Help me lay out a new workspace following the monorepo structure
  • Check whether I split shared packages and apps correctly
  • How should errors be handled in functions in this project?

How to install monorepo

1Skills CLI (Vercel)

npx skills add Mindrally/skills --skill monorepo -a claude-code

2Manually: put the files in place

~/.claude/skills/monorepo/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/monorepo/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about monorepo

How do I install monorepo in Claude?

Run npx skills add Mindrally/skills --skill monorepo -a claude-code. The skill file then sits at ~/.claude/skills/monorepo/SKILL.md.

What does the monorepo skill do?

It gives the agent monorepo development rules: workspace layout, TypeScript conventions, state, data fetching, internationalization, error handling, and Supabase and Stripe integration.

Which technologies does this skill cover?

TypeScript, React, Next.js, Expo, Tamagui, Supabase, Zod, Turbo, i18next, Zustand, TanStack React Query, Solito and Stripe.

Source text

SKILL.md · Apache-2.0
---
name: monorepo
description: Best practices for monorepo development with TypeScript, React, Next.js, Expo, Turbo, and related technologies
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Monorepo Development

You are an expert in TypeScript, React and Next.js, Expo (React Native), Tamagui, Supabase, Zod, Turbo (Monorepo Management), i18next, Zustand, TanStack React Query, Solito, and Stripe.

## Code Style and Structure

- Write concise, technical TypeScript code with accurate examples
- Use functional and declarative programming patterns; avoid classes
- Prefer iteration and modularization over code duplication
- Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`)
- Structure files with exported components, subcomponents, helpers, static content, and types
- Favor named exports for components and functions
- Use lowercase with dashes for directory names (e.g., `components/auth-wizard`)

## TypeScript and Validation

- Use TypeScript for all code; prefer interfaces over types for object shapes
- Utilize Zod for schema validation and type inference
- Avoid enums; use literal types or maps instead
- Implement proper error handling with discriminated unions

## State and Data Management

- Use Zustand for state management
- Use TanStack React Query for data fetching and caching
- Minimize `useEffect` and `setState`; favor derived state
- Implement optimistic updates for better UX

## Monorepo Structure

- Follow best practices using Turbo for monorepo management
- Use separate `apps` and `packages` directories
- Keep shared configurations in the root `configs/` directory
- Use consistent naming conventions for workspaces
- Follow the standard Turborepo workspaces directory structure:
  - `apps/` for application workspaces (Next.js, Expo apps)
  - `packages/` for shared package workspaces (UI, utils, configs)

## Internationalization

- Use i18next for web internationalization
- Use expo-localization for React Native internationalization
- Keep translation files organized by feature or domain

## Error Handling and Validation

- Prioritize error handling and edge cases
- Handle errors and edge cases at the beginning of functions
- Use early returns for error conditions to avoid deeply nested if statements
- Place the happy path last in the function for improved readability
- Avoid unnecessary else statements; use if-return pattern instead
- Use guard clauses to handle preconditions and invalid states early
- Implement proper error logging and user-friendly error messages

## Performance Optimization

- Use dynamic imports for code splitting
- Implement lazy loading for non-critical components
- Optimize images: use WebP format, include size data, implement lazy loading
- Minimize the use of 'use client', 'useEffect', and 'setState'

## Cross-Platform Development

- Use Solito for navigation across web and mobile
- Use `.native.tsx` files for platform-specific code
- Share business logic and UI components through packages

## Backend Integration

- Use Supabase for authentication and database
- Implement Row Level Security (RLS) policies
- Use Zod schemas for API validation
- Handle webhook events properly

## Payments

- Implement Stripe integration with proper webhook handlers
- Handle subscription syncing between Stripe and your database
- Implement proper error handling for payment failures

© Mindrally · Apache-2.0 · Mindrally/skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set168

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor