Greetings from the 2024 Next.js Conference in San Francisco
Software engineer and entrepreneur based in San Francisco.
I attended the 2024 Next.js Conference in San Francisco this week. It was a great opportunity to meet some amazing folks and learn about the latest developments in the Next.js ecosystem.
First up, Next.js 15 launched with some cool new long awaited features:
-
Partial Prerendering - A new rendering model that combines static and dynamic content for faster page loads. It statically pre-renders a shell of your page while streaming in dynamic content, giving users instant initial views.
-
Stable Turbopack - The Rust-based successor to Webpack is now production-ready, delivering up to 96% faster code updates and 77% faster local server startup. Check out the detailed docs to get started.
-
Async Request APIs - A more efficient way to handle request-specific data. Here's a practical example using Partial Prerendering:
// app/page.tsx
import { Suspense } from 'react';
import { headers } from 'next/headers';
// Static content pre-rendered at build time
function StaticShell() {
return (
<div className="hero">
<h1>Welcome to Our Store</h1>
<p>Browse our latest products...</p>
</div>
);
}
// Dynamic content loaded on request
async function UserCart() {
const headersList = await headers(); // New async API
const token = headersList.get('authorization');
const cart = await fetch('/api/cart', {
headers: { authorization: token || '' }
});
const items = await cart.json();
return (
<div className="cart">
<h2>Your Cart ({items.length} items)</h2>
{items.map(item => (
<div key={item.id}>{item.name}</div>
))}
</div>
);
}
export default function Page() {
return (
<main>
<StaticShell />
<Suspense fallback={<div>Loading cart...</div>}>
<UserCart />
</Suspense>
</main>
);
}
-
React 19 Support with the new React Compiler for automatic optimizations.
-
TypeScript Config Support - First-class support for
next.config.ts
with type safety.
I also met some amazing folks at the conference!
First up in the morningwas Sahil Lavingia from Gumroad. We had a great conversation about his upcoming projects. Update: he just announced them!
Later, I had the chance to chat with Theo Browne about Guillermo Rauch's keynote. You may recognize Theo from his YouTube or Twitch channel, and he's also the CEO of Ping (YC backed).
Finally, I finally met Rahul. You might remember him from that viral Twitter layoff story right after the Musk acquisition closed. Rahul is now hard at work building Julius AI, which is growing fast.
Oh, and the night before the conference, I participated in Sanity.io's Next.js hackathon. To my surprise, I ended up winning a mechanical keyboard! It was a great way to kick off the conference experience.