A modern, React + TypeScript progressive web app (PWA) for browsing and displaying hymns. It’s built with Mantine UI, React Router, Fuse.js (search), and localforage (offline storage), bundled with Vite. Dark mode is supported and adapts to your device preferences.
While this particular version is built with a specific object structure in mind (Songs), it is flexible enough to work with other setups, provided you update the types.
Desktop — Light
See more image previews
Desktop — Dark
Desktop — Presentation Mode
Mobile (iPhone 12) — Light
Mobile (iPhone 12) — Dark
I claim no ownership to any of the included song lyrics. If you are the copyright holder to any of these songs, and you'd like them to be removed, please open an issue or send me an email at keno@claytoninnovations.com.
This project will in no way seek any form of monetization and is just a fun side project.
If you have any suggestions feel free to open an issue!
Get started by ensuring you have an up-to-date version of Node.js (LTS recommended) with npm or yarn installed.
npm installto install dependenciesnpm run dev- Launches the Vite development servernpm test- Typechecks, lints, runs unit tests (Vitest), and buildsnpm run build- Builds the production app (seebuild.sh)npm run preview- Previews a production build locallynpm run analyze- Analyzes the built bundle (after build)
Optional: Storybook is available for component development via npm run storybook.

.png)
.png)
.png)
.png)
.png)
.png)

.png)
.png)
.png)
.png)
.png)
.png)
.png)