Using GraphQL in frontend applications offers a distinct experience compared to REST, largely due to its opinionated API specification that allows both server and client to align on a schema format and querying method. This alignment enables advanced features such as data caching, auto-generation of React Hooks, and optimistic mutations, which are not typically available with REST libraries like Axios or fetch. The author expresses dissatisfaction with Apollo Client, citing issues like complex caching mechanisms, a high number of unresolved issues, and a perceived focus on marketing over genuine open-source development. In contrast, urql is praised as a favorable alternative due to its comprehensive documentation, first-party support for essential features like offline mode and authentication flows, and simplicity in caching and local state management. The author appreciates urql's approach to extensibility and its official Next.js plugin, highlighting its supportive community and effective engagement with users. These qualities lead the author to switch from Apollo to urql for their GraphQL needs, suggesting it offers a more streamlined and user-friendly experience.