Enterprise-grade monorepo built with Nx, pnpm, Next.js 15, React 19, and TypeScript
- Framework: Next.js 15.3.4 with App Router
- UI: React 19.1.0 + Tailwind CSS + shadcn/ui
- Animation: Framer Motion with SSR-compatible wrappers
- Build System: Nx 19.8.4 + pnpm workspaces
- Language: TypeScript (strict mode)
- Validation: Zod schemas
- Logging: Pino structured logging
- Testing: Vitest + Testing Library
- Code Quality: ESLint + Prettier + Husky + lint-staged
justdiego-monorepo/
├── apps/
│ └── web/ # Next.js 15 web application
├── packages/
│ ├── config/ # Configuration management
│ ├── logger/ # Pino logging utilities
│ ├── types/ # Shared TypeScript types
│ └── utils/ # Utility functions
├── .github/
│ └── instructions/ # AI coding standards
└── tools/ # Development tools
✅ Next.js 15 with latest React 19 features ✅ SSR-Compatible Framer Motion wrapper components ✅ Strict TypeScript configuration across all packages ✅ Enterprise monorepo structure with clear boundaries ✅ Modern tooling with fast builds and hot reload ✅ Code quality enforcement with comprehensive linting ✅ Type-safe development with end-to-end TypeScript
- Node.js 20+
- pnpm 9+
# Install dependencies
pnpm install
# Run development server
pnpm dev
# Build all packages
pnpm build
# Run tests
pnpm test
# Lint code
pnpm lint
# Type check
pnpm type-check
pnpm dev
- Start development servers for all appspnpm build
- Build all packages and appspnpm test
- Run tests across the workspacepnpm lint
- Lint all code with ESLintpnpm type-check
- Run TypeScript compiler checkspnpm clean
- Clean build artifacts and dependencies
This project includes SSR-compatible Framer Motion wrapper components:
import { MotionWrapper, FadeIn, SlideIn, ScaleIn } from '@/components/motion';
// SSR-safe motion wrapper
<MotionWrapper animate={{ opacity: 1 }}>
<div>Animated content</div>
</MotionWrapper>
// Pre-built animation components
<FadeIn direction="up">Content</FadeIn>
<SlideIn direction="left">Content</SlideIn>
<ScaleIn>Content</ScaleIn>
Configuration management with Zod validation
Structured logging with Pino for development and production
Shared TypeScript type definitions
Common utility functions for date manipulation, string operations, etc.
This monorepo follows enterprise coding standards with:
- Domain-driven design with clear package boundaries
- Stateless service classes using static methods
- Strict TypeScript with no
any
types allowed - Consistent code style enforced by ESLint and Prettier
- Automated quality checks with pre-commit hooks
This project follows strict coding standards documented in .github/instructions/
. All code must:
- Pass type checking with strict TypeScript
- Follow ESLint rules and Prettier formatting
- Include proper error handling and logging
- Use Zod for input validation
- Follow the established service patterns
Private repository - All rights reserved.
core/
- Business logic and services (coming soon)db/
- Database access layer with Prisma (coming soon)
- Install dependencies:
pnpm install
- Start development:
pnpm dev
- Visit http://localhost:3000
You can now copy your existing website code into apps/web/src/
. The project is set up with:
- ✅ Next.js 15+ with App Router
- ✅ shadcn/ui components
- ✅ Tailwind CSS with CSS variables
- ✅ TypeScript with strict mode
- ✅ ESLint and Prettier
- ✅ Monorepo structure with shared packages
Replace the placeholder content in apps/web/src/app/page.tsx
with your actual homepage component.