Kron is a modern desktop scheduling application built with Tauri, React, and Rust. It allows users to manage complex schedules with profiles, recurring events, and custom sound notifications.
- Profiles: Organize your schedules into different contexts (e.g., Work, Home, Vacation).
- Advanced Scheduling: Support for one-time, daily, and weekly recurring events.
- Instance Overrides: Cancel or reschedule specific instances of recurring events without affecting the entire series.
- Custom Notifications: Associate schedules with custom audio files to be played upon trigger.
- Background Scheduler: A lightweight Rust-based background process that ensures schedules trigger reliably with minimal resource usage.
- Modern UI: A sleek, responsive interface built with React 19, Tailwind CSS 4, and Framer Motion.
- Framework: React 19
- Routing: React Router 7
- State Management: TanStack Query v5
- Forms: TanStack Form
- Styling: Tailwind CSS 4
- Components: Radix UI & Base UI
- Database Querying: Kysely (via Tauri SQL plugin)
- Framework: Tauri v2
- Language: Rust
- Database: SQLite (via
tauri-plugin-sql) - Audio: Rodio for low-level audio playback.
- Persistence: SQLx for migrations and background scheduler DB access.
├── src/ # React Frontend
│ ├── features/ # Feature-based modules (Profiles, Schedules, Sounds)
│ ├── pages/ # Application views/routes
│ ├── shared/ # Reusable components, hooks, and utilities
│ └── models/ # Database models and repository patterns
├── src-tauri/ # Rust Backend
│ ├── src/
│ │ ├── main.rs # Entry point
│ │ ├── lib.rs # Tauri setup & plugin configuration
│ │ └── scheduler.rs# Background loop for triggering schedules
│ └── db/migrations/ # SQL migration files
└── resources/ # Static assets and default sounds
- Install dependencies:
pnpm install
- Run the app in development mode:
pnpm tauri dev
To build the production application:
pnpm tauri build