Poggin: starting over

For the past eight or nine years, I’ve been using various iterations of software that I built for church use. It began as a quick and easy way to get lyrics on a screen without having to create a PowerPoint (that’s what many used at the time) and evolved into a database backed library of lyrics, liturgy, scripture, etc. I would later on add the option for language translations because that was our use case. By the time I left the church, it was a fairly good product. The components were built as modules that I could turn on and off at will. I got everything working, but it was perpetually in beta.

This year I’m gonna seek to make it a polished product.

I haven’t decided what tech I will use for it yet. In it’s long history it has gone from vanilla JavaScript (in its most basic iteration), Vue 1.x, Vue 2.x, Svelte 2.x, Svelte 3.x. The database engine has been a MongoDB, SQLite, MySQL, Firebase, then back to MySQL. The backend API has been built with Express, Laravel, Slim… and I’m sure I’m missing one or two in between.

Since I’m rebuilding from the ground up, this time around I plan to build it as a monorepo (this would’ve been helpful when I was making everything into modules). I hope this will make it easier to add options down the line and organize my code.

As for frontend, I’m not sure if I will experiment with Svelte 5’s runes, or build on Vue 3’s composition API. I personally like Svelte’s developer’s experience better, but Vue has a bigger community of tools. We’ll see.

For database, there are two contenders right now. One would be to use FeathersJS which creates an abstraction on top of the database layer and implements a websocket channel for real-time updates. The other would be to use Supabase which is like an open source Firebase.

I’ll post updates as I hit milestones… or if figure out what those milestones are!