Template — front-web-base
O front-web-base é o template React que todos os forks herdam. Roda SSR via React Router v7 no Cloudflare Workers.
Estrutura de arquivos
app/
├── components/
│ ├── auth/
│ │ ├── AuthInitializer.tsx # Componente invisível que bootstrap auth
│ │ ├── LoginModal.tsx # Modal login (email/CPF + senha)
│ │ └── RegisterModal.tsx # Modal registro simplificado
│ └── layout/
│ ├── Header.tsx # Auth-aware: user info ou botões login/registro
│ ├── Sidebar.tsx # 220px, fixed mobile / relative desktop
│ ├── SidebarMenuItem.tsx # NavLink com active state
│ └── Footer.tsx # Copyright + links
├── config/
│ ├── routes.config.ts # Fork override: buildRoutes()
│ ├── layout.config.ts # Fork override: LayoutComponent
│ └── theme.config.ts # Fork override: cores do tema
├── context/
│ ├── brand.tsx # BrandProvider + useBrand()
│ └── env.tsx # EnvProvider + useClientEnv()
├── hooks/
│ └── useAuthInit.ts # Init service → hydrate cookie → fetch profile
├── layouts/
│ └── DefaultLayout.tsx # Providers + layout wrapper
├── routes/
│ ├── _layout.tsx # Loader: brand + clientEnv
│ └── _index.tsx # Homepage
├── services/
│ ├── api.server.ts # ApiClient SSR (brand loading)
│ ├── brand.server.ts # loadBrandConfig()
│ └── auth.client.ts # AuthService singleton client-side
├── store/
│ ├── layout.ts # Zustand: mobileMenuOpen
│ └── auth.ts # Zustand: token, user, isAuthenticated, authModal
├── utils/
│ └── cookie.ts # get/set/delete token cookie
├── root.tsx
├── routes.ts
├── entry.server.tsx
└── tailwind.css
workers/
└── app.ts # Cloudflare Workers entry
Comandos
cd front-web-base
pnpm dev # Dev server (localhost:5173)
pnpm build # Production build
pnpm lint # Biome lint
pnpm format # Biome format
Dependências do SDK
O template consome estes pacotes @cactus-agents/* via file: links:
{
"@cactus-agents/api-client": "^0.1.0",
"@cactus-agents/auth": "^0.1.0",
"@cactus-agents/brand": "^0.1.0",
"@cactus-agents/types": "^0.1.0",
"@cactus-agents/utils": "^0.1.0"
}
Em produção (forks de cliente), esses serão substituídos por versões do GitHub Packages.