I have never been to Sayulita, so no info there. But as a fairly regular traveler to other places in Mexico I generally just bring a relatively small amount of US dollars. When there I withdraw pesos from an ATM, located at a bank,for the best exchange rate. Avoid free standing ATMs located on street corners, as most of those will charge exorbitant withdrawal fees. They are also susceptible to skimmer scams. Check with your bank at home, many such as Santander have either branches or agreements with banks in Mexico so no fees are involved. If the ATM does show a fee it will be displayed in pesos so a $30(pesos) fee is (aprox) $2 US dollars.