2025 in Review
This year felt so long but also felt like it was short too. Many things happened and it was tough to go on too, but in the end things will turn out fine, hopefully.
…This year felt so long but also felt like it was short too. Many things happened and it was tough to go on too, but in the end things will turn out fine, hopefully.
…In a website UX pattern, a dialog is an interruptive piece of element, usually interactive, shown to cover a page while the rest of the page are not interactive. Dialog can be treated like a “page” overlaying the current page. Sometimes, this dialog that got treated like a page gets its own route in the navigation stack. I call this “dialog route”.
…So I visited Japan again in the later half of October 2025. Unlike my previous trip in 2024, this trip was kind of booked without much plans in mind. Back when booking the flights, I only knew I wanted to explore Kansai region and maybe visit Tottori & Hokuei, the Detective Conan’s author’s hometown. But during the planning, things happened and I followed where the train lines took me and ended up exploring many parts of Chūgoku region. In a way, I loved going to places where it was less travelled by foreign travellers, since I was forced to use my Japanese language skills.
My travel plan started at the least populated region (Tottori) and slowly went to more and more dense areas and ended at Osaka. In the process, I found appreciation to many places that I had never even heard about before the trip, such as Matsue, Izumo, Kurashiki, and Okayama.
…It has been many months since I started this side project called Ikuyo (source code in GitHub). I think I’m now relatively satisfied with the feature set to do a write up. Ikuyo is a web application for made to help and collaborate on travels.
Ikuyo currently offers the following features:

In the timetable view, you can schedule your activities, accommodations, and day plans. I’ll typically start with day plans, which offer a macro-view of what to do each day. For example, perhaps day 1-3 might be for one location, and day 3-5 for another. Having an AI chatbot open in a separate tab, checking its suggestions, is incredibly helpful for planning daily activities.
After outlining the day plans, I list the specific activities in the timetable. The timetable interface is designed to be familiar, similar to Google Calendar or Microsoft Outlook. Day plans and accommodations function like “full-day events,” while activities are the actual scheduled events.
In timetable view, you can drag-and-drop the activities to reschedule them to other timings. I found this feature greatly simplifies rearranging plans.
When creating activities, you can set location coordinates, allowing them to be viewed clearly on the map. While I feel there’s room for improvement here, I’m waiting for my trip plan to evolve organically before implementing further enhancements.

List view is particularly useful when going on the trip. This is because it will be focused on the day itself and it will also highlight the activity that’s active at the current time.
Additionally, you can share your trip with others (though it doesn’t currently notify them) and add comments to activities, accommodations, and day plans. Furthermore, changes will be reflected instantly. This way, one can collaborate easily on the trip.
Ikuyo is built on top of InstantDB, a real-time database. This ensures that when you collaborate with others, all updates are instatly live for everyone. The front-end is built with React, using the Radix Theme component library, Wouter for client-side routing, Zustand for the client-side store, and MapTiler for the maps. There is no separate back-end layer. The front-end connects directly to InstantDB. Consequently, my “back-end” logic is embedded either in the front-end codes, or in the database schema
Initially, this project was built for planning trips together with my then-girlfriend. We’ve gone on several trips planned using this application, but there weren’t many features back then. We broke up a few months ago, and the project stalled for a while. One day, I decided to book my next trip to Japan for October this year. It will be yet another long trip, just like the Japan 2024 trip; that’s why completing this side project is now crucial for my trip planning. So far, I’m happy with the feature set, and I’ve started planning them using this application.
The project name itself is named after “Kita Ikuyo“, a character from the series Bocchi the Rock!, where her given name has same reading as “行くよ” (meaning “let’s go”).
When you’re about to plan for your next trip, do consider trying it on Ikuyo. If you find any issues or suggestions, let me know!
On separate post, I’ll write on the technical challenges I faced when developing this project.
Over the years, I keep facing this issue of upgrading yt-dlp using winget. I had to search the resolution over and over with many people pointing to different places, but only this worked for me, so I’m documenting it for myself.
…Last year in 2023 in Review, I picked that the yearly theme would be “Year of Experience”. Indeed, this year I experienced a lot of things. Experience came in different forms, from travelling, events, meet ups, and many more. In this post, I’ll share several memorable experiences.
…I have some Japanese e-books that I am reading in my Kindle (mine is Kindle 8th Generation). I use Calibre to manage file format conversion and sending them to Kindle.
However, when I send them to my Kindle, I encountered some problems:
So after scouring Calibre’s forums, this is happeneing because of two reasons:
Converting Japanese E-Book in Kindle with CalibreRead More »