Would depend on context, but for the most part it's not at all offensive. In my experience Indians in Silicon Valley refer to "indian things / culture" as Desi all the time.
Many words starting with n and with gs in them are just color descriptions. Shortened versions of Japanese and Pakistani are offensive in some countries but not others. The Thai word for Indian is “visitor” as in “not from here, will go home soon”. Plenty of words with innocuous meanings pick up offensive meanings.
I fact, in the US it seems to be used to refer to anyone from the subcontinent, not just from India.
Desi is probably a better term, since NROs, PIOs and non Indian brown Asians are usually target audience for such content :)