Documentation Index
Fetch the complete documentation index at: https://mintlify.com/devv-shayan/Trueears/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, make sure you have the following installed:| Requirement | Version | Notes |
|---|---|---|
| Node.js | v18+ | nodejs.org |
| Rust | Latest stable | Via rustup |
| Visual Studio Build Tools | 2019+ | Windows only |
Install Rust
Clone and install
Configure environment variables
Copy the example environment file and fill in your values:Key variables to configure:
| Variable | Purpose |
|---|---|
API_URL | Auth server URL (default: https://trueears-backend.vercel.app) |
GOOGLE_CLIENT_ID | Google OAuth client ID |
JWT_SECRET | JWT signing secret |
LEMONSQUEEZY_API_KEY | LemonSqueezy API key for payments |
LEMONSQUEEZY_STORE_ID | LemonSqueezy store ID |
LEMONSQUEEZY_WEBHOOK_SECRET | Webhook signature secret |
VITE_PAYMENT_SERVICE_URL | Payment service URL for frontend |
For local frontend development you only need the
VITE_* variables. Backend services require the full set.Available scripts
| Script | Description |
|---|---|
npm run dev | Start Tauri dev mode with hot-reload |
npm run dev:linux | Linux-specific dev launcher with clean environment |
npm run vite:dev | Start frontend dev server only |
npm run vite:build | Build frontend assets only |
npm run sync-version | Sync version from package.json to tauri.conf.json |
Code conventions
TypeScript
- Strict mode — no
anytypes without justification - Functional components — no class components
- Custom hooks — extract all reusable stateful logic
- Explicit return types — required on all exported functions
Rust
- Use
Result<T, E>for all fallible operations — no panics - Validate Tauri command inputs before processing
- Prefer
async/awaitfor I/O operations
