A beautiful, minimalist desktop application for Islamic prayer times. Built with Tauri, Svelte, and Rust. Supports Indonesian cities and desktop notifications.
Screenshots coming soon
# Clone the repository
git clone https://github.com/yourusername/sholat-woe.git
cd sholat-woe
# Install dependencies
npm install
# Run development server
npm run tauri dev
# Build from Source
### Build for Current Platform
```bash
npm run tauri build
Output will be in src-tauri/target/release/bundle/:
| Platform | Output |
|---|---|
| macOS | .dmg, .app |
| Windows | .msi, .exe (setup) |
| Linux | .AppImage, .deb, .rpm |
Option A: GitHub Actions (Recommended)
Set up automated builds on every release:
.github/workflows/release.yml:name: Release
on:
push:
tags:
- "v*"
jobs:
build:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
platform: [macos-latest, ubuntu-22.04, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- uses: dtolnay/rust-action@stable
- run: npm install
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: ${{ github.ref_name }}
releaseName: "Sholat Woe ${{ github.ref_name }}"
releaseBody: "See the assets to download and install this version."
releaseDraft: true
prerelease: false
git tag v1.0.0
git push origin v1.0.0
Option B: Manual Cross-compilation
| Target | Command | Requirements |
|---|---|---|
| macOS (Apple Silicon) | npm run tauri build -- --target aarch64-apple-darwin |
macOS + Xcode |
| macOS (Intel) | npm run tauri build -- --target x86_64-apple-darwin |
macOS + Xcode |
| Windows | npm run tauri build -- --target x86_64-pc-windows-msvc |
Windows + MSVC |
| Linux | npm run tauri build -- --target x86_64-unknown-linux-gnu |
Linux + GCC |
For complete cross-platform building, see Tauri's distribution guide.
Download pre-compiled binaries from GitHub Releases ā or build from source below.
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | Sholat-Woe_<version>_aarch64.dmg |
| macOS (Intel) | Sholat-Woe_<version>_x64.dmg |
| Windows | Sholat-Woe_<version>_x64-setup.exe |
| Linux | sholat-woe_<version>_amd64.AppImage |
98+ Indonesian cities are pre-configured, including:
Full list in src/lib/indonesian-cities.ts
sholat-woe/
āāā src/ # Frontend (Svelte)
ā āāā lib/ # Components & utilities
ā āāā routes/ # SvelteKit routes
ā āāā main.ts # Entry point
āāā src-tauri/ # Backend (Rust)
ā āāā src/ # Rust source code
ā ā āāā main.rs # Tauri commands & app setup
ā ā āāā prayer.rs # Prayer time fetching logic
ā ā āāā tray.rs # System tray implementation
ā āāā icons/ # App icons
ā āāā Cargo.toml # Rust dependencies
āāā package.json # Node dependencies
āāā README.md
npm run dev # Start Vite dev server
npm run build # Build frontend
npm run preview # Preview built frontend
npm run check # Run Svelte type checking
npm run tauri dev # Run Tauri dev (hot reload)
npm run tauri build # Build desktop app
This project is built on the shoulders of amazing open-source projects:
| Library | License | Purpose |
|---|---|---|
| Svelte | MIT | Frontend framework |
| SvelteKit | MIT | Application framework |
| Vite | MIT | Build tool |
| Tauri | Apache-2.0/MIT | Desktop application framework |
| @tauri-apps/api | Apache-2.0/MIT | Tauri JavaScript API |
| @tauri-apps/plugin-notification | MIT/Apache-2.0 | Desktop notifications |
| @tauri-apps/plugin-opener | MIT/Apache-2.0 | Open URLs externally |
| Crate | License | Purpose |
|---|---|---|
| tauri | Apache-2.0/MIT | Desktop app framework |
| tauri-plugin-opener | MIT/Apache-2.0 | URL opening |
| tauri-plugin-notification | MIT/Apache-2.0 | Native notifications |
| serde | MIT/Apache-2.0 | Serialization |
| serde_json | MIT/Apache-2.0 | JSON handling |
| reqwest | MIT | HTTP client |
| tokio | MIT | Async runtime |
| chrono | MIT/Apache-2.0 | Date/time handling |
| window-vibrancy | MIT | macOS vibrancy effects |
| cocoa | MIT | macOS platform APIs |
| objc | MIT | Objective-C runtime |
| Asset | License | Source |
|---|---|---|
| Phosphor Icons | MIT | Icons for prayer times (moon, sun, sunrise, etc.) |
| App Icons | Custom | Generated via Tauri icon tooling |
| Resource | Provider | Usage |
|---|---|---|
| Aladhan API | Islamic Network | Prayer times calculation |
| Indonesian Cities Data | Compiled from various government sources | City selection dropdown |
Prayer time calculations are powered by the Aladhan API, which implements established Islamic prayer calculation methods including:
See Aladhan API Documentation for complete details.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit issues or pull requests.
Created by Andhika Prakasiwi
Sholat Woe ā Stay connected with your prayers