Open-Muezzin is an open-source browser extension that provides accurate Islamic prayer times and location-based Athan notifications, with no tracking, no ads, and universal support for most browsers.
- Accurate Prayer Times: Uses the Adhan.js library for precise Islamic prayer time calculations
- Location-Based Notifications: Automatic location detection with manual location override options
- Athan Notifications: Audio notifications for prayer times with customizable settings
- Multi-Browser Support: Compatible with Chrome, Firefox, and other modern browsers
- Privacy-Focused: No tracking, no ads, completely open-source
- Multi-Language Support: Arabic and English localization
- Responsive Design: Modern UI with Tailwind CSS and dark mode support
- Multiple Calculation Methods: Support for various Islamic calculation methods
- Framework: Plasmo - Next-gen browser extension framework
- Frontend: React 18 with TypeScript
- Styling: Tailwind CSS with custom design system
- State Management: Zustand for persistent settings
- Prayer Time Calculation: Adhan.js library
- Build Tool: Vite
- Package Manager: pnpm
- Node.js 16.x or higher
- pnpm package manager
- Modern web browser (Chrome 88+, Firefox 78+, Safari 14+)
git clone https://github.com/your-username/open-muezzin.git
cd open-muezzinpnpm installStart the development server:
pnpm devFor Firefox development:
pnpm dev:firefox- Open
chrome://extensions/oredge://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
build/chrome-mv3-devdirectory
- Open
about:debugging - Click "This Firefox"
- Click "Load Temporary Add-on"
- Select the
build/firefox-mv3-dev/manifest.jsonfile
The extension provides two main interfaces:
-
Popup Interface (click extension icon):
- View current prayer times
- See countdown to next prayer
- See Current location
-
Options Page (right-click → Options):
- Configure calculation method
- Set location preferences
- Customize time format (12/24 hour)
# Development
pnpm dev # Start development server (Chrome)
pnpm dev:firefox # Start development server (Firefox)
# Building
pnpm build # Build for production (Chrome)
pnpm build:firefox # Build for production (Firefox)
# Code Quality
pnpm lint # Run ESLint
pnpm clean # Clean build artifacts
# Packaging
pnpm package # Create extension packageThe extension supports the following configuration options:
- Calculation Method: Choose from various Islamic calculation methods (Muslim World League, ISNA, etc.)
- Location Settings: Automatic location detection or manual city selection
- Time Format: Toggle between 12-hour and 24-hour formats
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following the coding standards
- Run linting and tests (
pnpm lint) - Commit using conventional commits (
yarn commit) - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Manual Testing: Test the extension in both Chrome and Firefox
- Code Quality: Run
pnpm lintto ensure code quality - Build Verification: Ensure
pnpm buildcompletes successfully - Extension Loading: Verify the extension loads correctly in browsers
- TypeScript: Strict mode enabled with no implicit any
- React: Functional components with hooks only
- File Naming: kebab_case for all files (for example: hero-component.tsx...)
- Imports: Sorted imports with specific order
- Styling: Tailwind CSS classes, no inline styles
- Accessibility: All interactive elements must be keyboard and screen-reader friendly
src/
├── components/ # React components
├── hooks/ # Custom React hooks
├── stores/ # Zustand state management
├── types/ # TypeScript type definitions
├── constants/ # Application constants
├── lib/ # Utility functions
├── background/ # Background scripts
├── popup/ # Popup interface
├── options/ # Options page
├── styles.css # Global styles
└── assets/ # Static assets
Create a production-ready build:
pnpm buildThis creates optimized builds in the build directory:
chrome-mv3-prod/- Chrome extensionfirefox-mv3-prod/- Firefox extension
The project includes GitHub Actions workflow for automated deployment:
- Manual Trigger: Use the "Submit to Web Store" workflow
- Automated Builds: Runs on
pnpm buildandpnpm package - Browser Store Submission: Configured for Chrome Web Store and Firefox Add-ons
This project is licensed under the MIT License - see the LICENSE file for details.
See CHANGELOG.md for a detailed history of changes and version updates.
- Adhan.js: For accurate prayer time calculations
- Plasmo Framework: For the excellent browser extension development platform
- Tailwind CSS: For the utility-first CSS framework
- React: For the component-based UI library
- Author: Adelpro
- Email: contact@adelpro.us.kg
- Project Link: https://github.com/adelpro/open-muezzin
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Join our community discussions
Made with ❤️ for the Muslim community worldwide