Config Project (Leptos)
Overview
Bootstrap determinístico do frontend Leptos SSR no mesmo workspace Cargo do backend Axum (config-project-rs). Layout Clean Architecture por feature: domain / application / infrastructure / presentation — camadas de domínio e aplicação sem dependências Leptos.
Padrão de estilização: consultar
../skills-standards.md§4.1 ereferences/tailwind-setup.md.
Estrutura alvo
project-root/
├── Cargo.toml # workspace: shared-kernel, api, web-leptos
├── crates/
│ ├── shared-kernel/
│ ├── api/ # Axum API (:4000)
│ └── web-leptos/ # Leptos SSR (:3000)
│ ├── Cargo.toml
│ ├── Leptos.toml # cargo-leptos config
│ ├── style/
│ │ └── main.css # Tailwind v4
│ └── src/
│ ├── lib.rs
│ ├── main.rs # servidor SSR (leptos_axum)
│ ├── app.rs # componente raiz + Router
│ ├── features/ # um subdir por BC
│ │ └── <bc>/
│ │ ├── domain/
│ │ ├── application/
│ │ ├── infrastructure/
│ │ └── presentation/
│ ├── layouts/
│ ├── components/
│ └── shared/
├── package.json # tailwindcss (raiz ou web-leptos)
└── .env.example # LEPTOS_SITE_ADDR, API_BASE_URL
Namespaces (obrigatório)
Consultar references/leptos-namespace-layout.md:
- ✅
features::customers::domain::Customer - ✅
features::customers::presentation::CustomerListPage - ❌
features::customers::domain::customer::Customer - ❌ lógica de negócio em componentes Leptos (usar use cases)
Workflow
- Garantir que
config-project-rsjá rodou (Cargo.tomlworkspace na raiz). - Executar script de bootstrap:
node config-project-leptos/scripts/project-init-leptos.mjs \
--frontend-path crates/web-leptos \
--api-url http://localhost:4000
- Instalar Tailwind CSS v4 — ver
references/tailwind-setup.md. - Adicionar
web-leptosao[workspace].membersse o script não fez merge. - Configurar
.env:LEPTOS_SITE_ADDR=127.0.0.1:3000,API_BASE_URL=http://localhost:4000. - Recomendado: executar
config-shared-web-leptospara shell admin (sidebar, topbar, rodapé). - Validar:
cargo leptos watch(dev) oucargo leptos build --release.
Integração com API Axum
- Repositórios HTTP em
infrastructure/usamreqwestapontando paraAPI_BASE_URL. - CORS no crate
api: permitir origemhttp://localhost:3000(Leptos dev). - Em produção: reverse proxy (nginx/Caddy) roteando
/api→apie/→web-leptos.
Commands
node config-project-leptos/scripts/project-init-leptos.mjs --frontend-path crates/web-leptos
cargo install cargo-leptos
cargo leptos watch # dev SSR + hot reload
cargo leptos build --release # produção
References
- Consultar
references/leptos-project-pattern.mdpara estrutura detalhada. - Consultar
references/leptos-namespace-layout.mdpara layout de camadas. - Consultar
references/tailwind-setup.mdpara Tailwind v4 com cargo-leptos. - Consultar
../config-project-rs/SKILL.mdpara backend Axum. - Consultar
../skills-standards.mdpara convenções globais.
Global Standards
- Consultar
../skills-standards.mdpara padrões globais de nomenclatura e convenções gerais entre skills.