Credits: Banner and App Icon Design by AhmedV19
A modern, lightweight Islamic prayer time reminder app built with Rust + Tauri + Svelte. NanoPrayReminder provides accurate prayer times, customizable reminders, and a beautiful native desktop experience.
- π High-precision prayer times via
salahlibrary - π Multiple calculation methods, madhab options, high-latitude rules, and manual offsets
- π Multi-location management with search and active location switching
- π Hijri date conversion
- π§ Qibla direction with compass view
- π Monthly schedule view and basic prayer analytics/statistics
- π€ Agent experience (AX) via JSON CLI, MCP tools/resources/prompts, and reusable agent profiles
- π Per-prayer reminder settings:
- Enable/disable toggle
- Minutes before notification
- System notifications
- Adhan playback
- Custom audio file with preview controls
- π¨ Theme support: Light/dark/system themes
- π₯οΈ System tray integration with autostart and global shortcut support
- π Professional update system: Dual-channel updates (stable/pre-release) with in-app downloads
- π¦ Portable & Installed versions: Choose your preferred deployment method
Screenshots coming soon. The app features a responsive dashboard, schedule view, statistics, Qibla compass, and settings screens.
| Technology | Purpose |
|---|---|
Rust workspace (core + src-tauri + AX binaries) |
Backend logic, native shell, CLI, and MCP |
| Tauri 2 | Desktop application framework |
| Svelte 5 + SvelteKit + Vite | Frontend UI |
| Bun (recommended) | Package manager & build tool |
NanoPrayer/
βββ core/ # Rust domain logic (prayer, config, qibla, stats)
βββ cli/ # JSON CLI for agents and automation
βββ mcp/ # MCP server for agent hosts
βββ agents/ # Agent skills and profiles
βββ docs/ # AX and integration documentation
βββ src-tauri/ # Tauri backend (commands, scheduler, tray, audio)
βββ src/ # SvelteKit frontend routes + components
βββ static/ # Web/static assets (banner, favicon)
βββ scripts/ # Build and environment scripts
βββ .github/workflows/ # CI/CD release pipeline
βββ CHANGELOG.md # Release notes by version
βββ README.md
- Rust toolchain with
cargoinPATH - Bun (
https://bun.sh) or npm - Windows WebView2 runtime (for Tauri on Windows)
# Install JS dependencies
bun install
# Run desktop app in dev mode
bun run tauri:devUsing npm:
npm install
npm run tauri:dev# Frontend production build
bun run build
# Frontend, Rust workspace, and Electron TypeScript checks
bun run build:all
# Desktop release build
bun run tauri:buildInstallers are generated under:
target/release/bundle/nsis/
Portable executable:
target/release/nano-pray-reminder.exe
Release/debug artifacts can grow quickly. Use:
# Prune release + debug heavy build artifacts
bun run prune:target
# Or build and prune in one command
bun run tauri:build:compact
# Or run frontend/Rust/Electron checks and prune target
bun run build:all:compactManual options:
# Keep debug artifacts, prune release only
pwsh -NoProfile -File ./scripts/prune-target.ps1 -KeepDebug
# Preview cleanup without deleting files
pwsh -NoProfile -File ./scripts/prune-target.ps1 -DryRunNanoPrayer can be used by agents without driving the desktop UI.
# JSON CLI
cargo run -p nano-pray-cli -- next
cargo run -p nano-pray-cli -- times --lat 30.0444 --lng 31.2357
# MCP server
cargo run -p nano-pray-mcpSee docs/AX.md and the profiles in agents/.
If your target directory has accumulated gigabytes of old compilation artifacts (or you are running into bizarre build errors), you can perform a complete clean build. This will delete all compiled Rust binaries and cached dependencies.
# 1. Stop any running dev servers (Ctrl+C)
# 2. Clear the entire target directory
cargo clean
# 3. Rebuild from scratch
bun run tauri:devNote: The first build after a
cargo cleanwill take significantly longer because it has to fetch and compile all ~600 Rust dependencies from scratch.
- π Release history:
CHANGELOG.md - βοΈ Desktop app config:
src-tauri/tauri.conf.json - π Release automation:
.github/workflows/release.yml
This roadmap is a planning guide and can evolve based on user feedback and release priorities.
- Improve core UI/UX polish across all desktop pages (layout consistency, spacing, navigation flow, accessibility)
- Finalize responsive behavior for compact windows and split-screen usage
- Add first expanded theme pack (beyond light/dark/system) with safer contrast defaults
- Add initial font customization options (readability-first + modern display option)
- Add desktop taskbar widget / mini next-prayer countdown surface
- Harden reminders and background behavior (tray/minimize lifecycle, notification reliability)
- Prepare release-quality installer cadence and regression checklist
- Deliver full personalization suite: theme presets, custom accents, font families, and density modes
- Expand desktop shell features: richer tray quick actions, quick mute/snooze, and one-click prayer shortcuts
- Improve analytics and daily workflow UX (faster log interactions, clearer progress views)
- Build automated UI regression + backend integration test coverage for critical flows
- Define and ship mobile architecture baseline (shared models, API boundaries, state sync strategy)
- Launch mobile companion apps (Android/iOS) with shared reminder and schedule experience
- Add optional cross-device sync for settings, locations, and user preferences
- Ship IoT support path (smart displays/speakers/home automation endpoints)
- Provide local network integrations (webhooks/lightweight local API) for smart-home routines
- Evolve NanoPrayer into a multi-surface prayer platform (desktop, mobile, and ambient devices)
- Continue binary size and startup-time optimization
- Strengthen updater/release channels and rollback safety
- Maintain quality bar with accessibility and performance audits on each release cycle
We welcome contributions from the community! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and commit them:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- π Follow the existing code style and conventions
- β Test your changes thoroughly before submitting
- π Update documentation if adding new features
- π Keep PRs focused and reasonably sized
Be respectful and inclusive. We expect all contributors to:
- Use welcoming and inclusive language
- Be respectful of differing viewpoints and experiences
- Accept constructive criticism gracefully
- Focus on what is best for the community
- Show empathy towards other community members
Found a bug or have a feature request? Please open an issue with:
- A clear, descriptive title
- Steps to reproduce (for bugs)
- Expected vs. actual behavior
- Your environment (OS, app version, etc.)
This project is licensed under the MIT License.
Made with β€οΈ for the Muslim community