A minimalist browser extension (Chrome + Firefox) that replaces your new tab page with a clean interface with search functionality, prayer times, weather and more. Inspired by the Copilot website interface. 🎉 Now available on Mozilla Add-ons!
- Screenshots
- Features
- Tech Stack
- Project Structure
- Installation
- How It Works
- APIs Used
- Browser Support
- Permissions
- Build & Deploy
- Contributing
- License
- Support
Tip
View all screenshots: You can find all screenshots of the extension in the screenshots folder.
- Display today's 5 prayer times (Fajr, Dhuhr, Asr, Maghrib, Isha)
- Show next prayer countdown (hours and minutes remaining)
- Display current Hijri date
- Audio notifications (Athān) when prayer time starts
- 5-minute reminder before each prayer
- Choose your preferred Muadhin for Athān audio
- Daily random ayah from the Quran with Arabic text
- Tafsir (explanation) in Arabic
- Audio recitation with multiple reciters to choose from
- Play/pause, next/previous ayah controls
- Visual audio bars animation during playback
- Current temperature, condition, humidity, and wind speed
- Beautiful background images that change based on weather and time of day
- Auto-refresh every hour
- Works offline with cached data
- Add, complete, and remove tasks
- Tasks saved to local storage
- Simple checkbox interface
- Quick search from new tab
- Multiple search engines support (Startpage, Google, DuckDuckGo, Brave, Bing, ChatGPT, etc.)
- Set preferred search engine
- URL detection - type a URL and press enter to navigate directly
- Search suggestions from browser history and top sites
- Real-time digital clock (HH:MM format)
- Interactive map to set your location
- Auto-detect location via IP
- Manual location update by clicking on map
- Dark and satellite map layers
- Location used for accurate prayer times and weather
- Toggle features on/off (search focus, prayer notifications)
- Choose your preferred Quran reciter
- Choose your preferred Muadhin for prayer Athān
- Update location from map
- Clean and simple settings panel
- Frontend: Vanilla JavaScript (ES6+ modules)
- Styling: Tailwind CSS v4
- Build Tool: Vite
- Map: Leaflet
- APIs:
- Prayer times: Aladhan API
- Weather: Open-Meteo API
- Quran: AlQuran Cloud API
- Location: IP-based geolocation
onePrayerTab/
├── public/
│ ├── manifest.json # Extension manifest (v3)
│ ├── background.js # Service worker for alarms and notifications
│ ├── offscreen.js # Offscreen document for audio playback (Chrome)
│ ├── offscreen.html # Offscreen HTML wrapper
│ └── assets/
│ ├── audio/ # Athān and ring sounds
│ └── images/ # Icons and backgrounds
├── src/
│ ├── index.html # Main new tab page
│ ├── css/
│ │ └── style.css # Custom styles + Tailwind
│ └── js/
│ ├── main.js # App entry point
│ ├── prayers.js # Prayer times logic
│ ├── location.js # Location and map handling
│ ├── weather.js # Weather data and display
│ ├── ayah.js # Quran ayah and audio
│ ├── todo.js # Tasks management
│ ├── search.js # Search functionality
│ ├── suggestions.js # Search suggestions from history/top sites
│ ├── settings.js # Settings handling
│ ├── ui.js # UI rendering functions
│ ├── utils.js # Utility functions
│ ├── time.js # Clock logic
│ └── events.js # Global event listeners
└── vite.config.js # Vite configuration
- Visit One Prayer Tab on Mozilla Add-ons
- Click "Add to Firefox"
- Confirm the installation prompt
- Open a new tab to see the new tab page
- Download the latest
.xpior.zipfile from the Releases page. - Open Firefox and navigate to
about:addons. - Click the gear icon (⚙️) and select "Install Add-on From File...".
- Select the downloaded file and confirm.
- Clone or download this repository
- Install dependencies with
npm install - Build the project with
npm run build - Open Firefox and navigate to
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on…"
- Select
dist/manifest.json
Note: The temporary add-on install resets when you restart Firefox. If you want a persistent install, use the Mozilla Add-ons link or the Release File method above.
- Download the latest release ZIP file from the Releases page.
- Extract the ZIP file to a folder.
- Open Chrome and navigate to
chrome://extensions/. - Enable "Developer mode" (top right toggle).
- Click "Load unpacked" and select the folder you just extracted.
- Clone or download this repository
- Install dependencies with
npm install - Build the project with
npm run build - Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked" and select the
distfolder
Run dev server with hot reload:
npm run dev- Get user location (IP-based or manual)
- Fetch monthly prayer times from Aladhan API
- Cache data in localStorage
- Find today's prayers and categorize them (passed/next/upcoming)
- Send timestamps to background script
- Background script schedules alarms
- When alarm fires → play selected Muadhin audio + show notification
- User starts typing in search box
- Extension fetches top sites and browsing history
- Filters results matching the query
- Displays suggestions with favicons
- Click to navigate or press Enter to search
- Firefox: Audio plays directly in background script
- Chrome: Audio plays in offscreen document (Manifest v3 requirement)
All data stored in localStorage:
- Prayer times (monthly cache)
- Weather forecast (hourly cache)
- Quran data (full Quran cached once)
- User settings and preferences (reciter, muadhin, enabled features)
- Tasks list
- Location coordinates
- Search engines configuration
| Service | Endpoint | Purpose |
|---|---|---|
| Aladhan | api.aladhan.com/v1/calendar |
Prayer times |
| Open-Meteo | api.open-meteo.com/v1/forecast |
Weather data |
| AlQuran Cloud | api.alquran.cloud/v1/quran |
Quran text and audio |
| IPGeo | api.techniknews.net/ipgeo |
Location from IP |
| IPWho | ipwho.is |
Fallback location API |
- Chrome (Manifest v3)
- Firefox (Manifest v3 with browser-specific settings)
- Other Firefox-based & Chromium-based browsers
{
"history": "Get search suggestions from browsing history",
"topSites": "Get search suggestions from top visited sites",
"alarms": "Schedule prayer notifications",
"notifications": "Show prayer time alerts",
"offscreen": "Audio playback in Chrome (Manifest v3)"
}# Development
npm run dev
# Production build
npm run buildOutput goes to dist/ folder ready for extension upload.
- Fork the repo
- Create a feature branch
- Make your changes
- Test in both Chrome and Firefox
- Submit a PR
ISC
Found a bug or have a feature request? Open an issue on GitHub.
Made with ❤️ for the Muslim Ummah






