It took a bit of hacking to understand the concept of client vs server components with NextJS. It definitely wasn't clear to me initially that client components would still be pre-rendered in Next and hydrate the users browser afterwards (which would work like the previous pages router).
Data fetching in server components feels great and being able to use caching on a "per fetch" level is a huge improvement over the page router.
I'm looking forward to testing out server actions when they are a bit more battle tested and leave beta.
API Routes
The app router version of API routes seem's way better then the page router version. Exporting CRUD methods just makes sense and gives it a rails-esque feel which I liked.
Anybody have any experience working with React Server Components? Basically it's an upcoming React thing where you can render your React components from anywhere in the component tree on the server. Every time the component re-renders, it gets compiled again on the server.