A collection of duas I try to regularly recite. This is a web application built with Flutter that displays Islamic supplications with their translations and sources.
- Clean, modern interface
- Arabic text with proper font support
- Translations and sources
- Light/dark theme with selectable accent colors
- Adjustable Arabic and translation font sizes
- Configurable data source — change the JSON URL from in-app Settings, no code edits required
- Responsive design
- Easy to customize and deploy
-
Install Flutter:
- Download Flutter SDK from flutter.dev
- Add Flutter to your PATH
- Run
flutter doctorto verify installation
-
Install Node.js and npm:
- Download from nodejs.org
- Verify installation:
node --version npm --version
-
Install Git:
- Download from git-scm.com
- Verify installation:
git --version
-
Fork this repository
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/duas.git cd duas -
Install dependencies:
flutter pub get npm install
flutter run -d chrome-
Create a JSON file with your duas following this structure:
[ { "arabic": "Arabic text of the dua", "source": "Source/reference of the dua", "meaning": "Translation/meaning of the dua" } ] -
Host your JSON file using one of these CORS-friendly options:
- Option 1: npoint.io (recommended)
- Go to npoint.io
- Create a new JSON document
- Copy the provided URL
- Option 1: npoint.io (recommended)
-
Point the app at your JSON — two ways:
-
From the app (recommended, no code): open Settings (the palette icon in the top bar), scroll to Data source, paste your JSON URL, and tap Save. The app clears its cache and reloads from the new URL. Tap Default anytime to restore the built-in source. Your choice is saved on the device.
-
Change the built-in default (optional): open
lib/utils/apis.dartand replacedefaultDataUrlwith your JSON URL. This becomes the source used out of the box (and by the Default button).
-
Most day-to-day options are available in the app itself — open Settings (the palette icon in the top bar):
- Theme — Light, Dark, or System
- Accent color — pick from the preset swatches
- Arabic font — choose from the bundled Arabic fonts
- Font sizes — adjust Arabic and translation text sizes independently
- Data source — change the JSON URL the duas load from (see Adding Your Own Duas)
These preferences are saved on the device.
- Default theme / accent — edit the defaults in
lib/theme/app_theme.dart. - Available fonts — edit
lib/theme/app_fonts.dart. - Default data source — edit
defaultDataUrlinlib/utils/apis.dart. - App title — edit the
<title>tag inweb/index.html.
-
Update
package.json:- Change the repository URL to your fork
- Update the base href in the predeploy script if needed
-
Deploy:
npm run deploy
-
Your app will be available at:
https://[your-username].github.io/duas/
-
Build the app:
flutter build web
-
Deploy the contents of the
build/webdirectory to your hosting service
-
CORS Issues:
- Ensure your JSON hosting service allows CORS
- Use a CORS proxy if needed
-
Build Issues:
- Clear build cache:
flutter clean flutter pub get
- Clear build cache:
-
Deployment Issues:
- Check GitHub Pages settings
- Verify repository name matches package.json
- Check base href configuration
If you encounter any issues:
- Check the Flutter documentation
- Open an issue in the repository
- Check the troubleshooting section above
This project is licensed under the MIT License - see the LICENSE file for details.