Architecture
Claudio is a monorepo with two .NET projects and a React frontend.
Projects
Section titled “Projects”src/claudio-api
Section titled “src/claudio-api”ASP.NET minimal API. Serves the SPA as static files and provides REST endpoints. Uses minimal APIs with route groups (no controllers).
src/claudio-desktop
Section titled “src/claudio-desktop”Tauri desktop client.
src/claudio-web/
Section titled “src/claudio-web/”React 19 SPA built with Vite. Output goes to src/claudio-api/wwwroot/. Uses TanStack React Query for data fetching, React Router for routing, and Tailwind CSS v4.
tests/Claudio.Api.Tests/
Section titled “tests/Claudio.Api.Tests/”TUnit + AwesomeAssertions test project.
Backend Structure
Section titled “Backend Structure”- Endpoints are in
src/claudio-api/Endpoints/as static classes with extension methods - Services are singletons registered in
Program.cs - Database is EF Core with
AppDbContextcontainingUsersandGamestables, supporting SQLite and PostgreSQL
Frontend Structure
Section titled “Frontend Structure”- API client at
src/claudio-web/src/api/client.ts— wraps fetch with JWT auth header injection - Auth context at
src/claudio-web/src/hooks/useAuth.tsx— JWT parsing, login/register/logout - Theming uses CSS custom properties with Tailwind semantic tokens (
text-text-primary,bg-surface, etc.)
Configuration
Section titled “Configuration”TOML config loaded from CLAUDIO_CONFIG_PATH or /config/config.toml. NuGet versions are centralized in Directory.Packages.props.