Web page for SDA Hymnal Yoruba
# SDA Hymnal Yoruba
A web-based Seventh-day Adventist church hymnal in Yoruba, suitable for worship, study, and church projection. Browse, search, and present over 620 hymns.
**Live site:** sdahymnalyoruba.com
## Screenshots
Desktop
Mobile
Presentation Mode
## Features
- Full-text search by title, number, or lyrics (with diacritics-insensitive matching)
- Presentation mode for church projection with keyboard, touch, and swipe controls
- Adjustable font sizes for reading and presentation
- Dark mode (auto-detects system preference or manual toggle)
- Offline support via service worker
- PWA - installable on mobile devices
- Responsive design for desktop, tablet, and mobile
- Print-friendly hymn layout
- Deep linking to individual hymns via `?hymn=` URL parameter
## Tech Stack
No frameworks, no dependencies. Uses esbuild for minification only.
- `index.html` - markup
- `styles.css` - all styles
- `app.js` - all application logic
- `hymns.json` - hymn data (titles, lyrics, cross-references)
- `sw.js` - service worker for offline caching
- `manifest.json` - PWA manifest
- `sitemap.xml` - sitemap for search engines
- `build.js` - build script (minifies JS, CSS, JSON into `dist/`)
## Running Locally
```bash
npm install
npm run dev
```
Then open
localhost. The dev server watches for file changes and auto-rebuilds.
## Contributing
Contributions are welcome - especially hymn corrections, missing diacritics, and translations. See CONTRIBUTING.md for the full guide.
### Hymn Data
All hymns live in `hymns.json`. Each hymn has this structure:
```json
{
"index": "001",
"number": 1,
"title": "Gbogbo Ẹ̀yin Tí Ń Gbé Ayé",
"english_title": "All People On Earth Do Dwell",
"references": {
"SDAH": 16,
"NAH": 2,
"CH": 14
},
"lyrics": [
{
"type": "verse",
"index": 1,
"lines": [
"Gbogbo ẹ̀yin tí ń gbé ayé",
"Ẹ f' ayọ̀ kọrin s' Oluwa,"
]
},
{
"type": "chorus",
"index": 1,
"lines": [
"Chorus line one",
"Chorus line two"
]
}
],
"revision": 3
}
```
## …