Keep a note on your phone (doesn't matter the app Apple Notes, Google Keep, SimpleNote, Drafts, etc) with a header for each person you want to get a gift for. Throughout the year whenever you hear them say "I love X author" or "I'm getting into Y hobby" then add a little note under their name. These can be as simple as "Coconut La Croix is their favorite seltzer flavor and brand" to as complicated as "They have complained about a slow computer that you know you can upgrade the ram/ssd" and the list goes on. Then when it come time to decide on a gift you have reflect back on our list.
It's incredibly helpful for me and led to gifts that have been very appreciated and used over and over. I think back to a dog seat cover I got for a friend after hearing them talk about taking their dog hiking a lot. They called me about a month after they got the gift out of the blue and said something like "I've used this dog seat cover tons of times already and it makes taking the dog so much easier". That cover was less that $30 easy but it was more impactful than if I had spent $100 on them. That same person I got 3 months of BarkBox for them at one point and I heard about how much they enjoyed that for multiple months after the last box shipped and every time I went over they would talk about "Our dog loves this one toy that we go in the box".