Alexander Lichter
Nuxt.js Core Team Member
@TheAlexLichter
To make things easier!
...and many more!
⚡️ Batteries included
🚀 Optimized
🃏 Versatile
⚙️ Extensible & Configurable
⌨️ Developer-friendly
Common libraries (vue-meta, vue-router, vuex) already included out of the box
Supercharged page components (asyncData, fetch)
Webpack and Babel configured out of the box
Predefined folder structure based on Best Practices and used for Routing
PostCSS (with Autoprefixer) by default
Code splitting per page
Automatic loading of critical CSS
Minification out of the box for both: CSS and JS
Preloading of other pages
after important content
HTTP2 push support
GZIP compression (in SSR mode)
Modern mode
Server-Side-Rendering (Universal)
"Typical" SPA
Static Generation
Programmatic usage
One config file: nuxt.config.js
Nuxt modules
Nuxt hooks
Nuxt plugins
Useful stack traces
No footguns
Always improving Documentation
Elegant solutions
Backend
1. Request
4. HTML
DB
2. Query
3. Results
But: "Click and wait" for every page
CDN
1. Request
2. JS
3. Parsing
API
4. Request
5. Response
Advantage: No extra load for further pages
Problem: Parsing, no "instant" content
-> bad SEO and bad UX
Node.js
Server
1. Request
4. HTML
API
2. Request
3. JSON
5. Download and Execute JS
6. Client-side Hydration (now works as "normal SPA")
API
6. (optional) Request
7. (if 6.) JSON
SEO boost
Faster Time to First Paint and Time to Content
Only one server call ("best of both worlds")
Easier Security (via CSP)
Small caveats
(like no `window` on server-side)
Prone to memory leaks
Needs a server running all time
(requires Node.js >= 8 and NPM >= 5.2.0)
npx create-nuxt-app MYPROJECT
yarn create nuxt-app MYPROJECT
Two ways to save assets:
Advent of Code - A nice coding challenge. One puzzle each December day
Nuxt.js Discord - If you have a question ;)
Nuxt Fundamentals - Free video course from VueSchool.io
blog.lichter.io - My own blog, most articles about Nuxt.js
Awesome Nuxt - List of awesome Nuxt.js modules, projects, open-source repos
Nuxt.js GitHub - There lies the core!
Nuxt.js Docs - Many questions answered