Poggin: Supabase and Vue3

I think I’ve settled on Supabase and Vue3 for poggin… still scaffolding it out but from what I have, I think it will work out.

Supabase

Installing and configuring Supabase this time around was way easier than the last time I attempted a few years back. (It didn’t always come in Docker form did it?) The documentation got confusing at one point because I didn’t realize that the self-hosted setup is different from their hosted set up and I kept looking for information on pages that didn’t exist. My only concern right now is how I would check in my configuration and schema into git to replicate elsewhere. I’m sure there’s a way, but I’ll get there later. My experience with a Postgres backend is fairly limited so this will be a learning experience.

I also chose Supabase because it seems to be a fairly mature project with plenty of client adapters if for some reason in the future I wanted to make clients on additional platforms (Swift? Flutter? *-Native?). But for now I’m just gonna do the web client.

Vue3

The last time I used Vue in a significant way was in Vue2. That was moving from 1.x to 2.x and that was fairly straightforward. Sometime during the 2.x period I tried Svelte and absolutely loved it. The DX was much better and I happily stayed in Svelte world and conveniently avoided the whole Composition API debate going on with Vue. To be honest, if the libraries and community around Svelte were more mature, I’d use it instead.

But now I’m back in Vue world using Vue3 and I don’t know what all the fuss was about regarding the change. I guess if you have a large code base and need to transition, it would be a lot of work to change and make sure tests are good. But if it’s for new or small projects, it seems like I just need to be more declarative with reactivity, not too different from where Svelte is going with Runes (similar solution to same problem I guess). It’s a bit more verbose, but it’s a clear verbose that I think I could appreciate. Sometimes it was difficult to trace the “magic” that was happening in Vue2 when I was trying to debug an issue.

I chose PrimeVue as my front-end component library. It seems fairly well documented and neutral enough in design. If I expect other developers to add modules to poggin, I want a consistent look and feel across the board and I don’t wanna develop my own design language much less document it.

Okay. this is my unnecessary update that nobody asked for!