Grain, Hops, and Yeast
If you have a nearby homebrew store, there is nothing wrong with supporting them by buying most of your ingredients from them for your brews. A local business gives that one to one connection as you are close to the owner and can tell they are passionate about their business.
Unfortunately, not all businesses are created equal, large or small. When going to a local store, keep an eye on how clean containers and equipment are. If there is dust, equipment is likely not moving, which might imply grains, hops, and yeast are sitting as well. When a shop has high product turnover, you can be more confident that the shop likely has fresher ingredients to offer as well.
In the event there is no nearby homebrew stores, or the store you have is not desirable, then there are plenty of good online stores that offer quality ingredients with reasonable ship times. I live in the Midwest, so Northern Brewer is primarily my go to for ingredients I can’t get at my local store. Their ship times are good and customer support has never been an issue when I needed them. I have also purchased from Morebeer.
Shop around till you find a store you like. An unrelated tip, if you don’t have easy access to a local brew store or fast shipping online store, be sure to keep extra ingredients on hand, such as a dried yeast sachet, in the event something goes wrong on brew day and something needs to be replaced or adjusted.
Water
If you opt to use your local water supply, it might be helpful to know the water composition. If the city in which you live is large enough, typically you can obtain a water report by contacting your city water manager. Alternatively, if you have a nearby beer club, chances are someone in the club has already retrieved the information and would be willing to share it with you. For someone who only brews extract beers, water composition isn’t really all that import. It really comes into play when making all-grain beers.