NextConf 2024: Empowering the developer.
Yesterday was NextConf 2024, Vercel's conference centered around its Open Source framework, Next.js, for building modern web applications. Keep in mind that I have a bias now since I work at Vercel, but I have been a fan of Next.js long before I joined the team and have used it in many production settings. The Next.js framework is iterating and improving to give top-tier performance while providing a fluid and enjoyable developer experience. Since I am only 3 days into my new role, I was just as new to the information as the community, and I wanted to share my thoughts from what I learned.
Self Hosting
Lee walked us through the new Next.js Org on GitHub, where it showcases different deployment strategies for vendors and platforms outside Vercel. It was something the community has constantly brough up, the idea that "Next.js is hard to self-host". However, my opinion is that it is not hard to self-host, but the what doesn't work out of the box when I self-host compared to Vercel came off as gatekeeping. I think Vercel is hearing the community's request for more support and delivered tangible results (the templates) as well as documentation updates.
Caching
HIT MISS MISS MISS - Delba gave a demo, introducing the upcoming caching apis that will be available, moving Next.js closer to its Partial Pre-rendering strategy. I think this iteration is giving a cleaner API that matches the directives pattern like "use server"
and "use client"
while giving functional helpers to set revalidation strategies, bringing the "opt-in" directly to your code. Next.js 15 also has changed its default behavior to opt-in to caching (vs previous versions caching GET requests "automagically"). This is a big change, but I think it is absolutely the right one (I'm someone who prefers to be explicit in my optimizations). This way, an application and it's team are explicit in it's caching strategy and I think also lowers the entry to understanding caching to newer developers.
Documentation refresh and commitments
Next.js has a lot of documentation around the framework: concepts, apis, and even a learning platform. The documentation is the main source for consumption when it comes to Next.js. It was announced that the documentation introduced versioning, and the team is revamping the documentation around things like self hosting. This helps lower the entry to understanding Next.js as a framework and how it is really positioned to be ecosystem agnostic. I think that this is a huge win for the community, and opens the door for new documentation to lead to empowerment!
What I would love to see next
My background and passion is developer enablement, and lowering the entry to build. I want a brand new engineer to be able to utilize the documentation and be able to understand the "mental model" of Next.js with its core standards. My agency life had developer roll on and off teams, learning new tools weekly. I think having an approachable and digestable documentation pattern is key to empowering the developer to gain comfortability with the framework. With that, I would enjoy seeing some improvements to help the documentation be more approachable for higher level concepts new to developers.
- preferences and examples on approaching caching patterns in Next.js (data vs component vs page). This makes its easier to relate and see the effects of the different levels of caching and how it relates to infrastructure.
- Update verbage or configuration options around cache size limit warning. I think this is something will natually be addressed, but currently not being able to control that for self-hosting has been annoying for some.
- The "mental model" of core Next.js. I think there are enough fundamentals of Next.js when creating a layout, page, component that there could be a digestible page to talk about the high level architecture of a typical Next page. This could talk about the entrypoint of middleware, layout vs page, caching and rendering strategies, and how to think about the data fetching lifecycle.
Conclusion
Remembering these are just my thoughts, I think NextConf was successful at putting the developer in the driver seat with more tools to empower their apps. Next.js is providing more tooling for the community to own their deployments, being Vercel or their own infrastructure. The focus on caching control and quality of life improvements for this I think is going to be great and allow Next.js to set itself up nicely for Partial Pre-Rendering while giving finer more explicit control of what and when to cache. I'm excited for this year with Next.js and I hope the community sees the effort Vercel is putting into the framework, the documentation, and the community itself.