What is Oxidt Teams?
Oxidt Teams is a production-ready SaaS starter for organizations, built entirely in Rust. Every page is rendered on the server by Topcoat; there is no WASM client.
Everything compiles to one binary: an Axum server whose pages Topcoat renders, plus a small hashed asset bundle.
Stack Overview
Topcoat
Server-rendered Rust framework from the tokio team: async components, typed browser expressions, no WASM bundle.
PostgreSQL
Relational database accessed with sqlx. Schema lives in migrations/, embedded in the binary and applied on boot.
oxidt-auth
Email one-time codes and passkeys against your own database, no identity provider needed. Switch to FerrisKey OIDC when apps must share one login.
TailwindCSS + DaisyUI
Utility-first CSS with DaisyUI 5 component library. Dark theme by default.
Architecture
Pages are Topcoat components in src/web/. The Axum stack in src/server/ (authentication, OAuth/MCP, billing webhooks, sessions, rate limits) wraps them, so a page reads the same session the login routes write. Changes in Settings are ordinary form POSTs that redirect back with a message.
Project Structure
Optional features
--features sentryenables Sentry error tracking and tracing breadcrumbs (requiresSENTRY_DSN).
Next Steps
Installation
Set up your development environment and run the template locally.
Authentication
Email OTP and passkeys by default, FerrisKey OIDC when you need SSO.
Organization subscriptions
Settings includes owner-only checkout and a customer portal for Stripe or Polar. Billing is disabled until a provider, catalog, and signed webhook endpoint are configured. See docs/BILLING.md in the source bundle for setup and test-mode validation.