Here are the important positives:
Great responsive support with replies within a day to answer your questions. Usually reply during EU times.
Clean Dashboard & UI
Quick generation of forms
Great variety of forms prepared for you to download
Now let's see what's not working well:
No support of all Layer 2's (zksync lite, etc). And from what I've found they are really slow to add new layers.
Wrong cost basis for Layer 2's. Affects Optimism trades the worst. Default seems to be $0
Doesn't pick up cost basis for NFTs and sets them to $0
Misses some NFT buys with WETH and sets the cost basis to $0
More intricate NFT features such as burn, stacking, etc mess up the cost basis too
Pain in the ass to fix missed cost basis as it just gives another set of errors
Not easy to search through NFTs as it requires contract and token IDs
Default timezone is UTC and there's no way of changing it.
No setting of having an option to make ETH <> WETH trades as non-events
Pretty much impossible to mark gifts since they are incoming transactions and mostly treated as deposits
Long wait times (20m+) for the program to recalculate even after minor adjustments when dealing with transactions in thousands
No ENS integration
As someone who is dealing with NFTs as well as exploring ecosystems beyond the Ethereum Mainnet, currently Koinly is not the best choice and they are making the process really hard, especially for the amount of money that they are asking worth. I'm not planning on using them next year unless they continue integrate Layer 2's sooner and properly, make dealing with NFTs easier.