- Framework: Next.js 15 (App Router)
- Language: TypeScript
- State Management: Zustand, Tanstack Query v5
- Styling: Tailwind CSS
- Architecture: Feature-Sliced Design (FSD)
- Lint/Formatter: Biome
- Utils: Husky
pnpm installpnpm devEach layer can only import from layers below it:
app → pages → widgets → features → entities → shared
Export by segments individually:
// ✅ Recommended
import { Button, Modal } from "@/shared/ui";
import { formatDate, debounce } from "@/shared/lib";
import { httpClient } from "@/shared/api";
// ❌ Avoid
import { Button, formatDate, httpClient } from "@/shared";Public API pattern:
// features/auth/index.ts
export { LoginForm, SignupForm } from "./ui";
export { useAuthStore } from "./model";
export { authApi } from "./api";- Authentication state
- App settings (theme, language)
- Global UI state (modal, toast)
- Page-specific form state
- Filter and search state
- Feature-specific temporary data
- Server data cache
- Domain object state