Stay on St. John. It is vastly superior to St. Thomas.
Food. ZoZo's and Extra Virgin are top notch. Morgan's Mango is a level below but still very good. Charter a boat for a day trip around the island and have lunch at LimeOut for floating tacos and drinks. If you have a car head over to Skinny Legs one day for lunch. There are several other good places to eat around Cruz Bay. The beaches are beautiful but they're more crowded than normal with the BVI not open to day trippers. If the BVI opens up then a day trip to White Bay and the Soggy Dollar Bar, One Love, Hendo's Hideout and Getrudes is a must. If you are adventurous and the BVI is open you can take a longer day trip and head out to the Willy T on Norman Island. It's a floating bar/restaurant and be forewarned it is likely to be the raunchiest bar you've ever been to. If you have kids do NOT arrive there after 2 or 3 PM as it gets bad but it's a ton of fun for adults. Pirate's Bight is a restaurant on Norman Island that is excellent. You can also stop at Cooper Island for lunch. Your first stop that day should be the baths on Virgin Gorda. You can also hit the Indians or Monkey Point for some great snorkeling.
We stay at Grande Bay on St. John. It's right in the middle of things at Cruz Bay. You can also stay at Gallows Point but it's a little further to walk into Cruz Bay. About 5 minutes further.
ETA: Banana Deck in Cruz Bay also puts out a great plate of food and there are a couple of restaurants on the waterfront in Cruz Bay that are pretty darned good.