VendeeDocs
Arquitetura

apps/app

Dashboard SPA com Vite 7 + React 19

O apps/app é a aplicação principal — um SPA (Single Page Application) que roda por padrão na porta 5173.

Se a porta 5173 já estiver ocupada na sua máquina, rode bunx vite --port 5200 dentro de apps/app. A porta 5200 é a convenção local de fallback.

Stack

  • Vite 7 — Build tool com HMR
  • React 19 — UI library
  • TypeScript 5.9 — strict mode com noUncheckedIndexedAccess habilitado
  • Tailwind CSS v4 — Styling via @tailwindcss/vite plugin (sem tailwind.config.ts)
  • shadcn/ui — Componentes (style radix-nova)
  • React Router — Client-side routing
  • TanStack Query — Server state (queries e mutations)
  • Zustand — Client state (auth, workspace, UI)
  • Lucide React — Ícones

Path alias

@/ mapeia para ./src/ (configurado em vite.config.ts e tsconfig.json).

import { Button } from "@/components/ui/button";
import { useDeals } from "@/hooks/use-deals";

CSS

Tailwind v4 usa @import "tailwindcss" em src/index.css. Theme tokens são definidos via CSS custom properties no color space oklch. Não há tailwind.config.ts nem postcss.config.js.

shadcn/ui

Style radix-nova. Para adicionar novos componentes:

cd apps/app && bunx shadcn@latest add <component>

Os componentes ficam em src/components/ui/ e são código próprio — podem ser editados diretamente.

Merge condicional de classes com cn() de @/lib/utils:

import { cn } from "@/lib/utils";

<div className={cn("base-class", isActive && "active-class")} />

On this page