[project]
name = "fullstack-example"
type = "monorepo"
version = "1.0.0"
description = "Nuxt 4 frontend with Rust backend example"
[workspace.frontend]
path = "apps/web"
framework = "nuxt"
runtime = "node:20"
package_manager = "pnpm"
[workspace.backend]
path = "apps/api"
framework = "axum"
runtime = "rust:1.75"
package_manager = "cargo"
[workspace.shared]
path = "packages/types"
runtime = "node:20"
package_manager = "pnpm"
[lifecycle.init]
description = "Initialize all workspaces"
commands = [
"echo '๐๏ธ Initializing workspaces...'",
"mkdir -p apps/web apps/api packages/types",
"echo 'Workspaces created'",
]
[lifecycle.setup]
description = "Install dependencies for all workspaces"
commands = [
"echo '๐ฅ Setting up frontend...'",
"echo '๐ฅ Setting up backend...'",
"echo '๐ฅ Setting up shared types...'",
]
[lifecycle.dev]
description = "Start development servers"
command = "echo '๐ Starting dev servers (frontend:3000, backend:4000)'"
watch = true
[lifecycle.build]
description = "Build all workspaces"
commands = [
"echo '๐จ Building shared types...'",
"echo '๐จ Building backend...'",
"echo '๐จ Building frontend...'",
]
[lifecycle.test]
description = "Run tests across all workspaces"
command = "echo '๐งช Running tests...'"
[lifecycle."sync:types"]
description = "Sync TypeScript types from Rust"
commands = [
"echo '๐ Syncing types from Rust to TypeScript...'",
"echo 'Types synced'",
]
[lifecycle."generate:api"]
description = "Generate API endpoint with composable and types"
commands = [
"echo 'โก Generating Rust API route...'",
"echo 'โก Generating Nuxt composable...'",
"echo 'โก Generating TypeScript types...'",
]
[hooks]
before_build = ["test", "sync:types"]
after_build = []
before_deploy = ["build"]
after_deploy = []