A lightweight desktop application for JIRA worklog management built with Tauri v2, Svelte 5, and Rust. This app runs in the background with system tray integration and daily notification reminders.
- JIRA Integration: Connect to JIRA using Basic Authentication (email + API token)
- Worklog Management: Create and submit worklog entries with flexible time formats
- Background Operation: Runs in system tray with daily 5 PM reminders
- Cross-Platform: Built with Tauri for Windows, macOS, and Linux
- Modern UI: Clean interface built with Svelte 5 and Tailwind CSS
- Multiple Build Modes: Debug and release configurations
- Portable Builds: NSIS portable installer and MSI package support
- Clone the repository:
git clone <repository-url>
cd mini-jira-app- Install dependencies:
bun install- Run in development mode:
bun run tauri:devbun run build:debug
bun run tauri:build:debugbun run build:release
bun run tauri:buildbun run tauri:build:allbun run tauri:build:no-bundle- Launch the application
- Enter your JIRA credentials:
- Base URL: Your JIRA instance URL (e.g.,
https://company.atlassian.net) - Email: Your JIRA account email
- API Token: Generate from JIRA Account Settings β Security β API tokens
- Base URL: Your JIRA instance URL (e.g.,
- Select an issue from your assigned issues
- Choose the work date
- Enter time spent (supports formats like
2h,30m,1d) - Add a description of work done
- Submit the worklog
- System Tray: App minimizes to system tray instead of closing
- Daily Reminders: Automatic notifications at 5 PM
- Persistent Connection: Stays connected to JIRA in the background
- Svelte 5: Modern reactive framework with runes
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first styling
- Vite: Fast build tool and dev server
- Rust: High-performance system programming
- Tauri v2: Cross-platform desktop app framework
- reqwest: HTTP client for JIRA API integration
- tokio: Async runtime for background tasks
- REST API v3: Official JIRA REST API
- Basic Authentication: Email + API token
- SSL Support: Handles corporate SSL certificates
- Local Storage: Credentials stored locally (not transmitted)
- SSL Bypass: Option for corporate environments with self-signed certificates
- No Data Persistence: No sensitive data stored on external servers
When running in development mode, additional controls are available:
- Manual background mode toggle
- Test notification triggers
- Enhanced logging
The app automatically detects build mode:
- Development:
import.meta.env.DEV === true - Production:
import.meta.env.MODE === 'production'
mini-jira-app/
βββ src/ # Svelte frontend
β βββ routes/
β β βββ +page.svelte # Main application UI
β βββ app.html # HTML template
βββ src-tauri/ # Rust backend
β βββ src/
β β βββ main.rs # Entry point
β β βββ lib.rs # Tauri commands & tray
β β βββ jira_api.rs # JIRA HTTP client
β β βββ jira_types.rs # Data structures
β βββ Cargo.toml # Rust dependencies
β βββ tauri.conf.json # Tauri configuration
βββ static/ # Static assets
βββ package.json # Node.js dependencies
bun run dev- Start Vite dev serverbun run tauri:dev- Start Tauri in development modebun run build- Build frontend for productionbun run tauri:build- Build complete desktop appbun run check- Run TypeScript and Svelte checks
- Frontend Changes: Edit files in
src/directory - Backend Logic: Modify Rust files in
src-tauri/src/ - JIRA API: Extend
jira_api.rsfor new endpoints - UI Components: Add new Svelte components in
src/routes/
Connection Failed
- Verify JIRA URL is correct and accessible
- Check API token is valid and not expired
- Ensure email address matches JIRA account
SSL Certificate Errors
- App includes SSL bypass for corporate environments
- Verify network connectivity to JIRA instance
System Tray Not Working
- Ensure system supports notification area
- Check OS permissions for background apps
Run with debug flag to see detailed logs:
bun run tauri:build:debug- Windows: Windows 10/11 (64-bit)
- macOS: macOS 10.15+ (Intel/Apple Silicon)
- Linux: GTK3 compatible distributions
- JIRA Cloud or Server/Data Center
- Valid user account with worklog permissions
- API token for authentication
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
For issues and questions:
- Check existing GitHub Issues
- Create new issue with detailed description
- Include system information and error logs
Built with π₯ and β using Tauri, Svelte, and Rust