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.