# Malek Fara

Breve descripción del proyecto.

---

# Stack

- Next.js 16
- React 19
- TypeScript
- TailwindCSS v4
- React Hook Form
- Zod
- Framer Motion
- Embla Carousel
- Class Variance Authority

---

# Objetivos del proyecto

- Performance
- Escalabilidad
- Mantenibilidad
- Responsive design
- Accesibilidad
- Seguridad tipada
- Componentización reutilizable

---

# Instalación

```bash
pnpm install
```

---

# Desarrollo

```bash
pnpm dev
```

---

# Build

```bash
pnpm build
```

---

# Estructura del proyecto

```txt

└───src
    ├───app
    │   ├───modelos
    │   │   └───[slug]
    │   └───search
    ├───components
    │   ├───layout
    │   ├───sections
    │   │   └───home
    │   ├───ui
    │   └───vehicle
    ├───features
    │   ├───contact
    │   ├───search
    │   └───vehicles
    ├───fonts
    ├───hooks
    ├───lib
    ├───services
    ├───adapters
    ├───schemas
    ├───styles
    ├───types
    └───utils
```

---

# Convenciones

## Componentes

- Componentes UI reutilizables en `components/ui`
- Componentes específicos de página en `components/sections`

## Estilos

- TailwindCSS
- Variantes manejadas con CVA
- Uso de `cn()` para merge de clases

## Validación

- Todos los datos externos deben validarse con Zod

## Imports

Preferir imports absolutos usando aliases.

---

# Responsive strategy

- Mobile first
- Breakpoints definidos en Tailwind
- Diferencias fuertes entre mobile y desktop resueltas por composición, no duplicación excesiva

---

# Performance

- Optimización de imágenes
- Lazy loading
- Minimización de re-renders
- Componentes server-first cuando sea posible

---

# Testing

La documentación de testing se encuentra en:

```txt
docs/testing/
```

---

# Arquitectura y decisiones técnicas

Las decisiones arquitectónicas importantes están documentadas en:

```txt
docs/decisions/
```

---
