Projects

Lyrics Viewer

React
TypeScript
TanStack Router
Zustand
Tailwind

Browse, search, and display Nepali Christian song lyrics with chord support and PowerPoint export.

Lyrics Viewer screenshot

A single-page web application for browsing, searching, viewing, and exporting Nepali Christian song lyrics. Built for the Nepal Presbyterian Church (Chunikhel, Lalitpur).

Browse & Search

  • Category tabs — filter songs by All, Songs, Bhajan, Chorus, or Kids
  • Section tabs — separate Normal Songs from Praise & Worship for export
  • Song search — find songs by name, artist, or number via the sidebar or ⌘K command palette
  • Artist view — explore songs by a specific artist

Lyrics Display

  • Devanagari + Roman transliteration — Nepali script alongside romanized lyrics in side-by-side, tabbed, or Nepali-only layouts
  • Chord notations — chords rendered above lyrics (Ultimate Guitar style), with semitone transposition up/down
  • Media links — toggleable video (YouTube) and audio links per song
  • Adjustable font size — XS through XXL
  • Chord toggle — show or hide all chord annotations

Service Export

  • PowerPoint (PPTX) — full church service slide deck with program/agenda slide, lyrics with verse/chorus parsing, Apostles' Creed, Praise & Worship divider, and weekly announcement slides (house fellowship, prayer meeting, Bible study, Saturday worship). Customizable backgrounds, fonts, and colors.
  • Word (DOCX) — two-column landscape document with chord tables in blue
  • PDF — browser-native print with CSS columns, optional chord printing

Playlists & History

  • Playlists — create, rename, update, and delete saved song lists (persisted to localStorage)
  • Viewing history — recent songs (capped at 20) plus per-day history

Customization

  • Theme — light, dark, or system-follow
  • Lyrics layout — Nepali only, side-by-side, or tabs
  • Export settings — church info, background images, colors, font sizes

Tech

React 19, TypeScript 6, Vite 8, TanStack Router, Zustand 5, Tailwind CSS 4, Radix UI, Cloudflare Pages.