Desktop productivity app built with Tauri + React + Rust for managing TODOs and ideas in two modes:
- Personal Flow: local data on your device (
~/.flux-flow). - Team Flow: shared data through a Rust backend API.
- TODO planner with priority, tags, reminders, due dates
- Ideas list with convert-to-TODO
- Calendar + dashboard views
- Team create/join by code
- Session token authentication for Team API (Bearer token)
- Team roles: Owner / Admin / Member
- Task assignee support in team mode
- Owner-only activity feed
- Owner
- can change member roles (Admin/Member)
- can view activity feed
- can manage all tasks
- Admin
- can manage all tasks
- Member
- can manage only tasks they created or tasks assigned to them
src/React frontendsrc-tauri/Tauri shell + local/personal storage + Team API bridgebackend/Rust Axum backend for Team Flow
- Node.js 18+
- npm
- Rust stable (
rustup) - Tauri prerequisites (platform-specific): https://tauri.app/start/prerequisites/
- Install frontend dependencies:
npm install- Start backend (terminal #1):
cd backend
cargo run --release- Start app (terminal #2):
npm run tauri:devFrontend build:
npm run buildDesktop app build:
npm run tauri:buildBackend env vars:
FLUX_FLOW_TEAM_BIND_ADDR(default:0.0.0.0:25578)FLUX_FLOW_TEAM_DB_PATH(default:backend.json)
Tauri Team backend URL env var:
FLUX_FLOW_TEAM_BACKEND_URL
By default, Tauri currently points to:
http://127.0.0.1:25578
For production/remote backend, set:
$env:FLUX_FLOW_TEAM_BACKEND_URL="http://your-server:25578"Protected endpoints use:
-
Authorization: Bearer <auth_token> -
GET /health -
POST /api/team/create -
POST /api/team/join -
GET /api/team/{team_code}/context -
GET /api/team/{team_code}/activity(owner only) -
GET /api/team/{team_code}/todos -
PUT /api/team/{team_code}/todos -
GET /api/team/{team_code}/ideas -
PUT /api/team/{team_code}/ideas -
PUT /api/team/{team_code}/members/{target_member_id}/role
- Personal mode and team mode are intentionally separated.
- Team operations require backend availability.
