Hey! I'm Lee Robinson, Head of Developer Relations at Vercel, the creators of Next.js. Ask me anything!

2021-07-07
Hey, I'm Lee Robinson (leerob on the internet) and I'm a developer, writer, and course creator. I'm the Head of Developer Relations at Vercel, the creator of Next.js. Next.js is an open-source hybrid framework, built on React, with features like Server-Side Rendering (SSR), Image/Font/Script Optimizations, and Internationalization available out of the box. Ask me anything about Vercel, Next.js, DevRel, or tech careers!

AMA Rules:
  • This AMA will be open for questions until midnight UTC on 2021-07-07.
  • All plain text links will automatically be turned into hyperlinks.
  • Please keep your questions specific and to the point.
  • Be chill, we're here to have fun!

45 Comments

This AMA has concluded.
tldrdan   Jul 6
Hi Lee,

Thanks for being here. A couple questions:

1. How do you guys balance internal Vercel hosting platform development with Next.js open source development? How does the roadmap for one inform the roadmap of the other? 2. Do you have any plans to help build up a larger third party plugin ecosystem for Next.js?

Dan
7♥   
leerobinson ⭐  Jul 6
A primary motivation for Vercel is to enable teams to deliver great products for end-users. Great, snappy, and delightful websites and applications. We think that the Web has a long way to go still, and is still quite short of its full potential.


How do we get there? We think the Web has never had an SDK with strong opinions about user experience and performance built-in. Building this SDK requires a framework, hosting, components (and usage guidelines), and great educational resources. We’ve started on the first two, but the latter half is yet to be tackled. This is important because it relates to one of Next.js’ North Stars – to make web development realtime, immersive, and collaborative.


Next.js is a means to an end to Vercel, which is an open platform. Since Next.js helps us build the SDK for the Web, and improve the web as a whole, we’ll continue to invest here. We want to lift the web up.


Open-source software is the heart of Vercel. Next.js is just one example, but we also have created packages like SWR, Hyper, pkg, and more. Part of my job as DevRel is to understand the communities pain points and surface them to the team for prioritization. I go to bat for the community, as well as being part of the community, to make sure the experience using Vercel/Next.js is great for everyone.


Vercel is a business and Next.js is a framework, like Google Cloud and Amazon are businesses and Kubernetes is a framework. We (Vercel) are lucky to be a part of a new generation of companies that are forward-thinking about open source, invest without holding projects back, and have investors that understand this as well. I’m definitely excited to work here :)

Re: plugins – yes, we are planning to improve that experience with Next.js immensely. We’ve implemented a plugin system prior, but weren’t satisfied with the API and Developer Experience just yet. 
Since then, we’ve been focusing on performance and security, and that’s allowed us to step back and design a better plugin system to realize our goals for instant development, really _really_ fast builds, and maintaining the extensibility Next was built on.

Note: you can still override webpack for some plugins, I'm referring specifically to this: https://github.com/vercel/next.js/discussions/9133
2♥   
jordan   Jul 6
What websites/web apps do you think JAMStack isn't particularly well suited for? What are the current limitations on scale/features?
6♥   
leerobinson ⭐  Jul 7
Jamstack is great for lots of applications, primarily those which are static solutions. It's limiting when you start dealing with larger, more complex, personalized, and dynamic applications. That's why we've made Next.js a hybrid framework, with support for both static pages _and_ server-rendering in the same framework. On the Vercel side, we're an open platform with support for the same type of modern applications, from a single HTML file to customers like The Washington Post!
1♥   
Jack   Jul 6
Named or default exports?
6♥   
leerobinson ⭐  Jul 6
Make sure you use names to ensure they show up named in DevTools and in compile-time errors (https://twitter.com/addyosmani/status/1411233253948747777).

Also, Next.js will show a warning in the console during `next dev` for anonymous default exports. There's also an ESLint rule we've created we're adding to our default config (https://github.com/vercel/next.js/blob/canary/packages/eslint-config-next/index.js#L17).

3♥   
bramses   Jul 6
Hi Lee,

What considerations do you make when deciding to build a NextJS web app vs a more traditional full stack MERN app?

Thanks!
6♥   
leerobinson ⭐  Jul 6
For those who might not know, MERN is Mongo, Express, React, and Node. Next.js is already React and Node.js, since it runs on the server, and provides API Routes that can replace Express in some instances. The missing piece is the database. It's really up to you where you store data. Next.js gives you the primitives to fetch that data either at build time or "on-demand" through server-rendering.

https://nextjs.org/docs/api-routes/introduction
3♥   
scalfan   Jul 6
Is contributing to NextJS a good way to get a job at Vercel?
5♥   
leerobinson ⭐  Jul 6
It certainly can't hurt your chances! In general, we're looking to hire all different types of exceptional engineers, whether we contribute to OSS or not. But knowledge of the JS / React ecosystem is a big plus. Vercel has a variety of different engineering roles, though. Those working on our build system for deploying applications are not working with Next.js at all, really. Similar to our infrastructure team. Long story short, we're always looking for great engineers!
3♥   
giovanniincammicia   Jul 6
Hi Lee, I'm kind of new to NextJS (built a couple of applications) and I always wonder why not make every React app in NextJS? I know it may be against your interest, but is there any reasonable use case when it's "just better" to use plain React? (I'm talking about frontend-only applications, e.g. backend is maintained by someone else).

Also, what's your personal opinion about Blitz.js? If you're allowed to answer this one of course :).
4♥   
leerobinson ⭐  Jul 7
For certain teams, you can make an argument for purely client-side applications, and not wanting to deal with thinking about a server being involved (e.g. I never want to pre-render content). It depends on the type of application you're trying to build. There are also teams who prefer React Router over Next's router.

Re: Blitz – I don't use it personally, as I'm happy with Next.js as it is, but for others looking for a higher level of abstraction (and certain tradeoffs), it works for them!
2♥   
scooch   Jul 6
Whats your success recipe for building a remarkable product? Work/life balance tips?
4♥   
leerobinson ⭐  Jul 7
In my opinion, having a clear mission and well-defined goals, as well as a relentless focus on the end user. Granted, I'm not the building the Vercel product, but I think they're doing a great job :) Re: work/life balance – really hard to cover in a few sentences, but a did a full live stream on developer careers https://www.youtube.com/watch?v=GCRRccGUYBM
3♥   
davehall   Jul 6
I'm a little confused about the purpose of Conformance, what advantages are there to building rules into web development frameworks rather than just testing each individual site using something like Lighthouse? What are the advantages to solving performance problems at the framework level?
3♥   
leerobinson ⭐  Jul 7
The Google Aurora team has summarized this well here: https://web.dev/conformance/

tl;dr: making it easier to catch common issues and problems in a Next.js application.

Re: Lighthouse, that is a simulated lab test of app performance and not compile-time code quality checks. Both can work together. For example, here are the list of ESLint rules included: https://nextjs.org/docs/basic-features/eslint#eslint-plugin
2♥   
jessiew   Jul 6
I really love NextJS Commerce, it's really cool how you integrate into so many eCommerce backends by default. Do you have plans for any similar starter kits for things like blog, newsletter, or podcast sites?
3♥   
leerobinson ⭐  Jul 7
Awesome, glad you're enjoying it! Yeah, Shopify, Swell, Bigcommerce, Vendure, and Saleor so far. It's great. Big shoutout to Bel and Luis working on this. We have a blog starter (https://demo.vercel.blog/) and are working on a Substack-style starter.
2♥   
HotDog   Jul 7
What do you feel are the biggest disadvantages of Next.js?
2♥   
leerobinson ⭐  Jul 7
I'd need a bit more details, in comparison to what?
1♥   
HotDog   Jul 7
"Pure" React.
1♥   
leerobinson ⭐  Jul 7
In that case, *almost* none! Next.js tries to be as pure React as possible, especially with the future of React orienting around Server Components. I say almost because there's still valid use cases for completely client-side React, and wanting to not involve the server at all.
2♥   
HotDog   Jul 7
What inspired you to start progamming?
2♥   
leerobinson ⭐  Jul 7
I've always been interested in tech, but actually had never coded before going to university. It was difficult for me to learn, probably because we started with C, but I eventually figured it out :) Being able to create whatever idea is in my head is an incredibly powerful skill that I adore.
2♥   
miliTotoro   Jul 7
Hi I have two issues here 1) I wanna build some of my single product pages statically using ISR and getStaticPaths. but there is a problem here I wanna know Whether if the current user liked this post or not since I cache the post object response at build time, I can't get this from that response can you tell me a better way than calling extra API on the client-side to know if the user has liked [or booked] this post or not?

2) And my second problem, since I want to use SSG, I can't use a custom server or getInitialProps in _app.js to write global SSR code but I need to redirect user's based on their UserAgent to whether "m.site.com" or "site.com" or when I wanna write some other SSR code is there any decent way to do so?
2♥   
leerobinson ⭐  Jul 7
1. Yeah, you could fetch the likes on the client-side using swr.vercel.app! 2. You can use the new `has` key for redirects, which now allows you to check headers/cookies/etc.
2♥   
seemcat   Jul 7
Hi there Lee!

My name is Maricris Bonzo and I'm a Developer Advocate at Magic (https://magic.link/). I have two fun questions for you.

1) What is the #1 purpose of the DevRel team at Vercel? 2) Will you please be a special guest on our Close-up Magic Fireside Chat on Twitter Spaces? I'd love to chat with you about DevRel, community, and how Next.js is aligning organizational goals with growing the community!

Looking forward to hearing from you!

Also, shout out to Dan from TLDR for making this awesome AMA happen 🙏🏼.

- Mari
2♥   
leerobinson ⭐  Jul 7
Hey Maricris! Here are some of the goals of the DevRel team:

- Grow our community by evangelizing Vercel & Next.js to developers. - Help create a faster, functional, and more accessible web for all. - Enable developers to build better products and experiences for their users. - Represent Vercel and Next.js at events, meetups, conferences, PR, and online.

Feel free to shoot me a DM on Twitter about that event :)
2♥   
seemcat   Jul 7
I love it. Thank you for sharing! Just sent you a DM :-D
1♥   
mags   Jul 6
Hi lee - how can you tell what / who is a conflict of interest ?
2♥   
leerobinson ⭐  Jul 7
Are you asking about a conflict of interest with me personally?
1♥   
TerrellG   Jul 8
Hey Lee! I'm curious about Shopify Hydrogen and Next.js whats in the works? :D
1♥   
TerrellG   Jul 8
Also what are your thoughts on React server components in general?
1♥   
Stranger   Jul 8
I am learning Reactjs so when and how should I start Next js.
1♥   
leerobinson ⭐  Jul 8
nextjs.org/learn
1♥   
sergioviniciuss   Jul 8
Hi Lee, thanks for this amazing opportunity! I have a few of questions I believe it's valuable for many people as well: 1. What is the recommended approach from the Next.js team to deal with shared layout components across multiple Next.js apps using the multi-zones approach? We created a layout npm package to allow other teams to share header/footer and avoid repetition, but we'd like to know if you guys recommend a better approach. 2. A user accesses a page using ISR and the revalidation process is triggered. If there are no changes introduced, will Next.js just keep the old static page or will it always generate a new one anyway? 3. Do you have plans to support a more granular way to share expose/consume components from different Next.js applications? Maybe plans to support webpack module federation natively? I know there's a plugin to run it with Next.js, but the solution is a bit hacky and not always compatible with the newest Next.js versions. It's great that you guys offer the multi-zones feature, but it has some limitations as we can only share "pages" (so, not so granular). With microfrontends approach becoming more and more popular, this would be an AMAZING milestone for Next.js adoption.

I'm using Next.js with multi-zones features to allow teams to work/deploy independently in the same portal. We decided to do this to have a microfrontend route-based approach. We were using webpack module federation, but we dropped it in favor of Next.js because performance and UX is more important for us, but it would still be awesome to have the ability to share components or entire applications inside Next.js. Thanks in advance and I'm looking forward to getting your recommendations and know a bit about the future of Next.js regarding the support to micro-frontends.
1♥   
leerobinson ⭐  Jul 8
- Added layouts docs here! https://github.com/vercel/next.js/pull/27021 - It always generates a new page. - Yes, we are exploring Module Federation with Next.js!
2♥   
gorkacessium   Jul 7
hi Lee, could you guys please consider adding Rescript as a first class citizen in Next.js as you did with Typescript ?
1♥   
leerobinson ⭐  Jul 7
I'm not sure ReScript has the same level of adoption as TypeScript to warrant that integration, but 100% there could be a community integration to make them work excellent together + an example in GitHub.
2♥   
mannydsz   Jul 7
I have recently stumbled upon a medium article claiming React can ruin your enterprise software project due to the excessive flexibility making engineers define their own app/systems structures whereas most of enterprise engineers are used to follow very well defined patterns. Do you think NextJS is making react more friendly to the enterprise? If so, why?
1♥   
leerobinson ⭐  Jul 7
Definitely! It's more opinionated than React and tries to include the tools Enterprise teams need to build scalable applications. You can see many of these customers here (https://vercel.com/customers)!
2♥   
Briangmit   Jul 7
Hi lee, How do I enable responsive images with next ssr so that only the appropriate image is loaded for each target viewport. I can’t find a solution that doesn’t download all images. I’m mostly concerned about google Seo.
1♥   
leerobinson ⭐  Jul 7
You should use the next/image component! It was developed in combination with the Google team: https://nextjs.org/docs/basic-features/image-optimization
1♥   
Jeff   Jul 6
What trends are you seeing in developer hiring as more companies go remote? Is there more competition for developers now that don't live in major cities? Why are salaries in major cities still so much higher than the rest of the world, and do you think this will even out over time?
1♥   
leerobinson ⭐  Jul 7
Remote is taking over. Yes, there's more competition, but there's also more _opportunity_. For example, I live outside of a city in Iowa and I work for Vercel, which is remote-first and has employees all over the world. I've previously worked for only local companies. Remote work drastically expanded the number of companies I could work for.
2♥   

TLDR is a daily newsletter with links and TLDRs of the most interesting stories in tech 📱, science 🚀, and coding 💻!

or subscribe with

One email in your inbox every weekday at 6am EST
Privacy Terms  Messaged
Privacy Terms    Messaged
Privacy Terms    Messaged