1.5 KiB
1.5 KiB
Friendolls
Passive social app connecting peers through mouse cursor interactions in the form of desktop pets.
friendolls-desktop
Desktop client app for Friendolls.
Commands
Check code integrity after every significant change:
cd src-tauri && cargo checkfor Rust local backendpnpm checkfor Svelte frontend
Generate TypeScript bindings with tauri-specta when new tauri commands, events or Rust models is added / modified:
timeout 30 pnpm tauri dev
TypeScript/Svelte
- Framework: SvelteKit in SPA mode (SSR disabled for Tauri)
- Styling: TailwindCSS + DaisyUI
- Responsibility: Minimal logic & data handling, should play as stateless dumb client, communicate with Rust local backend via Tauri events
Rust
- Error handling:
thiserror::Errorderive with descriptive error messages - Logging:
tracingcrate for structured logging (info/warn/error) - Async:
tokioruntime withasync/await - Naming: snake_case for functions/variables, PascalCase for types/structs
- State management: Custom macros (
lock_r!/lock_w!) for thread-safe access - Security: Use secure storage (keyring) for sensitive data
- Responsibility: Handles app state & data, business logic, controls UI via events.
Note
Be sure to gather sufficient context from codebase before proceeding with changes. Observe patterns and follow trends.
Do not run the app without timeout. cd src-tauri && cargo check & pnpm check to confirm your changes are error-free. Don't perform git actions yourself.