Several years ago, I became curious about the inner workings of apps, particularly the hymns app frequently used in my church. After exploring the app, I discovered the phone number of the developer and decided to call him to learn more. Despite the explanations he provided, I didn't fully understand them at the time.
Fast forward to 2019, and I am now a software engineer. I have the skills and knowledge to not only build my own apps, but to also empower other developers to do the same. This is a personal accomplishment that I am proud of. 😌😊
This project exposes an API at https://gospel-hymns.onrender.com/api/v1
Demo.
You can also download the json file that hold the data for every hymn and use it directly in your project. Download here
Title | Number |
---|---|
All Your Anxiety | 1 |
Come Unto Me | 2 |
Be Still | 3 |
Leave It There | 4 |
Never Give Up | 5 |
Yield Not to Temptation | 6 |
Turn Your Eyes Upon Jesus | 7 |
Blessed Be The Name | 8 |
Great Is Thy Faithfulness | 9 |
For A Thousand tongues to Sing | 10 |
Holy, Holy, Holy | 11 |
Praise Him! Praise Him! jesus our blessed | 12 |
To God Be The Glory | 13 |
How Great Thou Art | 14 |
O Worship The king | 15 |
If God Be For Us | 16 |
Nothing But The Blood | 17 |
Blessed Assurance | 18 |
Christ Jesus Hath the Power | 19 |
The Way, The Truth, The Life | 20 |
Will Your Anchor Hold | 21 |
Simply Trusting Everyday | 22 |
No Other Plea | 23 |
It is well With My Soul | 24 |
Now I Belong to Jesus | 25 |
I Know Whom I Have Believed | 26 |
I Am Bound For Canaan | 27 |
I'm Living in Canaan | 28 |
I Know Who Holds Tomorrow | 29 |
I've Anchored In Jesus | 30 |
He Touched Me | 31 |
Heaven Came Down | 32 |
Since Jesus Came Into my Heart | 33 |
Constantly Abiding | 34 |
A New Name In Glory | 35 |
My Name is Written There | 36 |
When I See The Blood | 37 |
Have You Been to Jesus | 38 |
Power In The Blood | 39 |
Wash Me O Lamb of God | 40 |
Onward Christian Soldiers | 41 |
Close To Thee | 42 |
Trust And Obey | 43 |
Come Over | 44 |
Jesus My Strength | 45 |
A Christian Home | 46 |
Just Obey | 47 |
'Tis So Sweet To Trust | 48 |
Let Others See Jesus in You | 49 |
Count Your Blessings | 50 |
That Blessed Canaan Land | 51 |
Count Me | 52 |
So Send I You | 53 |
I Am Ready For Service | 54 |
Anywhere With Jesus | 55 |
I Love My Master | 56 |
They That Wait Upon the Lord | 57 |
The Last Mile of the Way | 58 |
Little Is Much When God is in It | 59 |
Where Could I Go | 60 |
Lord, Speak to Me That I May Speak | 61 |
Go, Labor On | 62 |
Will There Be Any Stars | 63 |
The Old Rugged Cross | 64 |
O How I Love Jesus | 65 |
Jesus Is The Sweetest Name I Know | 66 |
My Jesus I Love Thee | 67 |
Like A Shepherd Lead us | 68 |
Christ Be Beside Me | 69 |
Have You Any Room For Jesus | 70 |
I Want To See Jesus. Don't you? | 71 |
The Solid Rock | 72 |
Jesus Only Is Our Message | 73 |
The Heart That Was Broken me | 74 |
The Churches, One Foundation | 75 |
In Times Like These | 76 |
I Have Decided To Follow Jesus | 77 |
Faith of Our Fathers | 78 |
The Way of the Cross | 79 |
At The Cross | 80 |
Lead Me To Calvary | 81 |
When I Survey The Wondrous Cross | 82 |
Thy Word Have I Hid in my Heart | 83 |
Deeper, Deeper in the Love of Jesus | 84 |
Give of Your Best To the Master | 85 |
Nothing Between | 86 |
Take My Life | 87 |
Wherever He Leads I'll go | 88 |
O Jesus I have Promised | 89 |
O love that Wilt Not let me Go | 90 |
Where He Leads Me | 91 |
I Surrender All | 92 |
More Love To Thee | 93 |
Draw Me Nearer | 94 |
Draw Me Nearer | 95 |
Peace Be Still | 96 |
Oft In Danger | 97 |
The Song of the Soldier | 98 |
There is Victory Within My Soul | 99 |
Christ, Our Mighty Captain | 100 |
My Father Knows | 101 |
The Healer | 102 |
He Healed Them All | 103 |
Tell Somebody | 104 |
I'll Tell The World | 105 |
Tell The Whole Wide World | 106 |
Go And Tell Them | 107 |
Must I Go And Empty-Handed | 108 |
To The Work | 109 |
Till The Whole World Knows | 110 |
Rescue The Perishing | 111 |
Win Them One By One | 112 |
Go And Tell The Story | 113 |
Brighten The Corner Where You Are | 114 |
Lift Him Up | 115 |
Carry Your Bible | 116 |
Show A Little Bit of Love and Kindness | 117 |
I Love To Tell The Story | 118 |
Do Something For Others | 119 |
Speak A Word | 120 |
Somebody Else Needs Him,Too | 121 |
Somebody Needs Your Love | 122 |
No One Like My Saviour | 123 |
Christ Receiveth Sinful Men | 124 |
Wonderful Grace of Jesus | 125 |
Great God of Wonders | 126 |
Rock of Ages Cleft For Me | 127 |
Victory In Jesus | 128 |
Grace Greater Than Our Sin | 129 |
Just As I Am, Without One Plea | 130 |
In Tenderness He Sought Me | 131 |
Running Over | 132 |
Out of My Bondage | 133 |
And Can It be that I should Gain | 134 |
Tell Me The Old, Old Story | 135 |
At Calvary | 136 |
How Beautiful Heaven must be | 137 |
When We All Get To Heaven | 138 |
Beautiful Home | 139 |
Laying My Treasure Up There | 140 |
I Shall See The King | 141 |
Holy, Holy is what the Angels Sing | 142 |
The End of The Road | 143 |
I Won't Have To Cross Jordan Alone | 144 |
When They Ring The Golden Bells | 145 |
Face to Face | 146 |
Sweet By and By | 147 |
No Tears In Heaven | 148 |
Farther Along | 149 |
Pentecostal Power | 150 |
There Shall Be Showers of Blessing | 151 |
Joys Are Flowing Like A River | 152 |
With Signs Following | 153 |
Give Me A Double Portion | 154 |
Let Jesus Come Into your Heart | 155 |
Room At The Cross-for You | 156 |
Wandering Child O come Home | 157 |
Come Believing | 158 |
Why Do You Wait | 159 |
The Shepherd of Love | 160 |
Who will be the Next | 161 |
Almost Persuaded | 162 |
My God is any hour so Sweet | 163 |
Prayer is The Soul Sincere Desire | 164 |
Guide Me, O Thou Great Jehovah | 165 |
Did You Think To Pray? | 166 |
I Must Tell Jesus | 167 |
I Need Thee Every Hour | 168 |
What A Friend We Have in Jesus | 169 |
Sweet Hour of Prayer | 170 |
Pass Me Not | 171 |
When The Roll is Called up Yonder | 172 |
Is It The Crowning | 173 |
Jesus Is Coming Again | 174 |
He Is Coming Again | 175 |
Christ Returneth | 176 |
Search Me, O God | 177 |
Fill My Cup, Lord | 178 |
Higher Ground | 179 |
Since The Son Hath me Free | 180 |
All Things Are Possible | 181 |
Blessed Are The Pure | 182 |
Come O my God the Promise Seal | 183 |
Saviour From Sin, I wait to Prove | 184 |
The Thing My God Doth Hate | 185 |
God of All Power and Grace | 186 |
Jesus, All Atoning Lamb | 187 |
O Lord, How Happy Should we Be | 188 |
Take Time To Be Holy | 189 |
Called Unto Holiness | 190 |
Come, Holy Ghost All Quickening Fire | 191 |
O For A Heart To Praise my God | 192 |
Another Year | 193 |
O Day Of Rest and Gladness | 194 |
Another Year is Dawning | 195 |
Does Jesus Care | 196 |
Love Found A Way | 197 |
His Love Can Never Fail | 198 |
Resting In His Love | 199 |
The Ninety and Nine | 200 |
Love Lifted Me | 201 |
Wonderful Story of Love | 202 |
There Is No Love Like the Love of Jesus | 203 |
Ye Must Be Born Again | 204 |
Have You Counted the Cost | 205 |
Where Will You Spend Eternity | 206 |
There's A Great Day Coming | 207 |
The Great Judgement Morning | 208 |
I Will Not Forget Thee | 209 |
Open My Eyes That I May See | 210 |
Crown Him with Many Crowns | 211 |
Jesus Shall Reign Whereer The Sun | 212 |
Rejoice The Lord Is King | 213 |
All Hail The Power Of Jesus Name | 214 |
O Happy Day that Fixed My Choice | 215 |
More About Jesus Would I know | 216 |
O Perfect Love, all human thought transcending | 217 |
Lord Divine, All Loves Excelling | 218 |
More Holiness Give Me More Striving Within | 219 |
When I Saw The Cleansing Fountain | 220 |
Let Not Thy Hands Be Slack | 221 |
Speed Thy Servants Savior Speed Them | 222 |
I Gave My Life For Thee | 223 |
Oh, The Bitter Shame and Sorrow | 224 |
Burn, Fire of God | 225 |
Thy Blessed Will Divine | 226 |
Nearer My God to Thee | 227 |
O Why Not Tonight | 228 |
Hold the Fort | 229 |
Bring Your Vessles Not a Few | 230 |
Send The Light | 231 |
Blest Be The Tie That Binds | 232 |
Stand Up, Stand Up For Jesus | 233 |
O Lord, With One Accord | 234 |
The Holy Spirit's Power | 235 |
Lord God, The Holy Ghost | 236 |
Peace, Perfect Peace | 237 |
Peace, Perfect Peace | 238 |
One There is Above All Others | 239 |
Jesus Is The Same Forever | 240 |
I've Found the Pearl Of Greatest Price | 241 |
A Good High Priest is Come | 242 |
Standing On The Promises | 243 |
All Things in Jesus | 244 |
Is Your Life A Channel of Blessing | 245 |
O Brother, Life's Journey Beginning | 246 |
'Tis Finished, The Messiah Dies | 247 |
The Mercy Seat | 248 |
Come Sing the Praise of Jesus | 249 |
For My Sake and The Gosple Go | 250 |
Only Remembered | 251 |
It is morning in my heart | 252 |
My Portion Forever | 253 |
Lower an Lower | 254 |
Let the fire fall | 255 |
Redeemed | 256 |
Jesus Send More Labourere | 257 |
Oh, To Be Like Thee | 258 |
More Like the Master | 259 |
Gracious Spirit, Dwell With me | 260 |
There's also a GraphQL endpoint at https://gospel-hymns.onrender.com/graphql
. Checkout the Playground here
{
"success": true,
"data": {
"number": "2",
"title": "Come Unto Me",
"titleWithHymnNumber": "2 Come Unto Me",
"chorus": "Come unto me; I will give you rest;\nTake My yoke upon you, hear Me and be blest;\nI am meek and lowly, come and trust My might;\nCome, My yoke is easy, and My burden's light.",
"verses": [
"Hear the blessed Saviour Calling the oppressed,\n\"O ye heavy laden, come to me and rest;\nCome, no longer tarry, I your load will bear,\nBring Me ev'ry burden, bring me ev'ry care\".",
"Are you disappointed, wand'ring here and there,\nDragging chains of doubt and loaded down with care?\nDo unholy feelings struggle in your breast?\nBring your case to Jesus, He will give you rest.",
"Stumbling on the mountains dark with sin and shame, \nStumbling tow'rd the pit of hell's consuming flames,\nBy the pow'rs of sin deluded and oppressed,\nHear the tender Shepherd, \"Come to Me and rest\"",
"Have you cares of business, cares of pressing debt?\nCares of social life or cares of hope unmet?\nAre you by remorse of sense of guilt depressed,\nCome right to Jesus, He will give you rest.",
"Have you by temptations often conquered been,\nHas a sense of weakness brought distress within?\nChrist will sanctify you, if you'll claim His best,\nIn the Holy Spirit, He will give you rest."
],
"category": "admonition"
}
}
{
"success": true,
"data": [1, 2, 3, 4, 5, 6]
}
{
"admonition": [1, 2, 3, 4, 5, 6],
"adoration": [214, 8, 249, 211, 9, 11, 14, 241, 212, 15, 10, 12, 213, 13],
"assurance & confidence": [
35, 244, 18, 19, 34, 32, 31, 27, 16, 26, 29, 28, 24, 30, 240, 36, 17, 23,
25, 22, 33, 243, 20, 21
],
"invitation": [162, 158, 155, 228, 156, 160, 157, 161, 159],
"prayer": [166, 165, 167, 168, 163, 171, 164, 170, 169],
"rapture": [179, 175, 173, 174, 172],
"commitment & consecration": [
80, 95, 84, 94, 78, 85, 76, 77, 92, 81, 216, 93, 227, 86, 89, 90, 210, 87,
79, 226, 83, 82, 91, 88
],
"warning & judgment": [205, 206, 208, 207, 204],
"The lord's love and care": [
196, 198, 109, 218, 197, 201, 199, 200, 203, 202
],
"sanctification": [
181, 182, 190, 191, 183, 178, 186, 179, 187, 219, 192, 188, 184, 177, 180,
189, 185
],
"special occasions": [193, 195, 194, 215],
"blood of jesus": [38, 39, 40, 220, 37],
"christian service & reward": [55, 62, 54, 56, 59, 61, 53, 58, 57, 63, 60],
"christian life": [
46, 232, 44, 52, 50, 42, 223, 245, 45, 47, 49, 41, 217, 51, 43, 4
],
"christ our saviour": [
69, 70, 71, 66, 73, 67, 65, 239, 68, 75, 74, 64, 72, 238, 247
],
"evangelism": [
114, 116, 119, 250, 113, 107, 118, 105, 221, 115, 108, 111, 231, 117, 121,
122, 120, 222, 106, 104, 110, 109, 112
],
"grace & forgiveness": [
242, 134, 136, 124, 129, 126, 131, 130, 123, 224, 133, 132, 127, 135, 128,
125
],
"divine healing": [103, 102],
"conflict & victory": [100, 229, 101, 246, 97, 96, 237, 233, 248, 98, 99],
"heaven": [139, 146, 149, 142, 137, 144, 141, 140, 148, 147, 143, 138, 145],
"holyspirit": [230, 225, 154, 152, 236, 234, 150, 150, 235, 151, 153]
}
{
"success": true,
"data": [
{
"number": "12",
"title": "Praise Him Praise Him Jesus Our Blessed",
"titleWithHymnNumber": "12 Praise Him Praise Him Jesus Our Blessed",
"chorus": false,
"verses": [
"Praise Him! Praise Him! Jesus our blessed Redeemer,\nSing, O earth, His wonderful love proclaim;\nHail Him! Hail Him! Highest archangels in glory,\nStrength and honour give to His holy name.\nLike a shepherd, Jesus will guard His children,\nIn His arms He carries them all day long;\nO ye saints that dwell on the mountain of Zion,\nPraise Him! Praise Him! Ever in joyful song.",
"Praise Him! Praise Him! Jesus our blessed Redeemer,\nHeav'nly portals, loud with hosannas ring;\nJesus, Saviour, reigneth forever and ever,\nCrown Him! Crown Him! Prophet and Priest and King!\nDeath is vanquished! Tell it with joy, ye faithful,\nWhere is now thy victory, boasting grave?\nJesus lives! No longer thy portals are cheerless,\nJesus lives, the mighty and strong to save."
],
"category": "adoration"
},
{
"number": "192",
"title": "O For A Heart To Praise My God",
"titleWithHymnNumber": "192 O For A Heart To Praise My God",
"chorus": false,
"verses": [
"O for a heart to praise my God,\na heart from sin set free;\na heart that's sprinkled with the blood\nso freely shed for me:",
"A humble, lowly, contrite heart,\nbelieving, true, and clean,\nwhich neither life nor death can part\nfrom him that dwells within:",
"A heart in every thought renewed,\nand full of love divine;\nperfect and right and pure and good —\na copy, Lord, of thine.",
"Thy nature, gracious Lord, impart,\ncome quickly from above;\nwrite thy new name upon my heart,\nthy new best name of Love."
],
"category": "sanctification"
},
....
]
}
The API at https://gospel-hymns.onrender.com/api/v1
is rate limited to 100 API calls/15mins
so the API can't be accessed once the API client exceeds that.
The database(content/db.json
) is just a JSON file generated by parsing each text file in the Hymns directory. Each file represents a hymn. Let's have a look at two of those files for example
Hymn with chorus:
Is there a heart o'er-bound by sorrow?
Is there a life weighed down by care?
Come to the cross--each burden bearing,
All your anxiety--leave it there.
All your anxiety, all your care,
Bring to the mercy seat--leave it there;
Never a burden He cannot bear,
Never a friend like Jesus.
No other friend so keen to help you,
No other friend so quick to hear;
No other place to leave your burden,
No other one to hear your prayer.
Come then at once--delay no longer!
Heed His entreaty kind and sweet;
You need not fear a disappointment--
You shall find peace at the mercy seat.
Hymn without chorus:
'Tis finished! the Messiah dies,
cut off for sins, but not his own.
Accomplished is the sacrifice,
the great redeeming work is done.
The veil is rent; in Christ alone
the living way to heaven is seen;
the middle wall is broken down,
and all the world may enter in.
'Tis finished! All my guilt and pain,
I want no sacrifice beside;
for me, for me the Lamb is slain;
'tis finished! I am justified.
The reign of sin and death is o'er,
and all may live from sin set free;
Satan hath lost his mortal power;
'tis swallowed up in victory.
You would notice a few patterns from those files
- Each verse in a hymn is separated with a line
- Each line in a chorus is preceeded with four lines
Watching for that pattern, a JSON file content/db.json
is generated from the hymns. You can take a look of makeDB.js
to see how content/db.json
is generated. categories.js
and sounds.js
maps a category to hymn numbers and holds the URL to the sound respectively for each hymn . This is also used while generating content/db.json
.
If you run in any bug using this please feel free to open an issue or catch me on twitter to make it faster
https://gospelhymns.netlify.app/
A few sounds are missing!! Yes i know. I'll add them once I get it.
If you find any other issue or some typo in the hymns, you can contact me or edit the associated hymn in the Hymns
directory and open a PR. Once merged, a new json file will be generated for use by the API and can also be downloaded here