St John is by far the nicest island in the Caribbean, like you mentioned there are great restaurants and beautiful beaches surrounded by the National Park.