Nigel M Rodgers

Work · Shona hymn library

Nziyo

A searchable library of nine Shona hymn books. About 2,600 pages, now served as a static site from Cloudflare.

Year
2026
Built with
WordPress, Python, Cloudflare Pages, D1, Pagefind
Link
nziyo.com

Nziyo collects Shona hymns from nine church hymn books: AFM, Methodist, United Methodist, Catholic, SDA, Anglican, RCZ, Baptist and Salvation Army.

The problem

The site ran on shared hosting in the US. Even on a cached page, the first byte took about 1.3 seconds to reach Zimbabwe, and almost 900 ms of that was distance. Trimming CSS and JavaScript cut the assets by 22% and left that number where it was.

What I did

WordPress now runs only on my own computer, as the editor. A Python exporter turns it into static HTML and deploys it to Cloudflare Pages. Search runs on a Pagefind index built during export. Visitor comments wait in a Cloudflare D1 queue, I approve them by email, and the next publish brings them back into WordPress. A nightly job backs the whole thing up to a private repository.

Result

The first byte now takes about 0.3 seconds from the same connection, and there’s no public WordPress login left to attack.

I also wrote a matching step that finds the same hymn across different books and links them: 341 hymns in 157 groups so far. The tool that adds a new book is open source.