I personally have been using it for years, it's pretty good. It starts up much faster than a customized zsh/bash but has all the same features out of the box. You can also do cool stuff like setting a global variable in one fish shell that applies to all running shells, so you don't have to restart your shells when you write a new function or set some variable