After being stuck with the same task for almost 3 years, I've been piling up some chores. It's time to get them done.
Ironically, the first thing on my chores list was to follow-up on Umai's release. As it happens, immediately after releasing I got a bunch of bug reports. Most of them were easy enough to fix, but there's been a couple with more nuance and it's taken me about a month to get it done.
First, I made sure to have meaningful page titles. I've actually been pointed towards the Design Issues page many times, and it's always quite interesting. So I think I may read all of them at some point. Somewhat related to this, I've been thinking about how I've been declaring urls in my apps, and I opened a post in the forum to discuss it with the community: Should Solid Apps have pretty urls?
Something else was that Umai didn't work with non-roman characters 😱️. Which is ironic, given that the app's name and logo is Japanese (but you couldn't create recipes using Japanese characters 🙈️). I was using a helper to convert recipe names into url slugs, but it was too aggressive in removing characters. What I'm very surprised about is that looking at existing helpers in popular frameworks, they have the same problem. The solution was easy enough, but the real problem was that I wasn't aware of this. I wonder how many other things I'm missing :/. It really is true that we programmers believe a lot of falsehoods.
Not everything were bugs though, I also got some feature requests. And the most endearing was printing recipes to PDF. I didn't mention it in the journal, but this is actually one feature I already worked on :D. Unfortunately, it didn't make it to the first release because it fell to the scope hammer. But now that someone asked for it, I couldn't resist myself. But I was this close 🤏 to fall into a rabbit hole :/.
Finally, this hasn't been reported, but I noticed that the bundle weight was growing a lot. And using a tool called vite-bundle-visualizer, I realized that some dependencies weren't tree-shaking properly. And I also learned that my own libraries weren't tree-shakeable 😱️. Turns out you have to declare
sideEffects: false in your
package.json, otherwise they are considered to be potentially modifying the global state. I'm certainly going to set that config in all my libraries now, and I'm also surprised that it took me this long to realize 🤷♂️️.
Anyhow, with a bunch of improvements I've released a new version of the app and I think I'll be done with it for a while.