Let's Nuxt your landing pages
Maya Shavin
@mayashavin
@mayashavin
- The core of a landing pages
- Why Nuxt?
- Build landing pages with Nuxt & TailwindCSS
- Summary
Agenda
Static landing pages
@mayashavin
@mayashavin


- HTML/CSS
- Static content
- Minimum run-time JavaScript (or none)
@mayashavin
Why Nuxt?
SSR
Static site generator (SSG)
Single page app (SPA)
Single code base
Build
@mayashavin
@mayashavin
Smarter build process
deploy
static site
templates
contents
nuxt generate
static HTMLs
payload file for extra client API calls
deploy
static site
@mayashavin
Faster deployments
templates
contents
generate
build
static site
first deploy (or code changes)
contents
next deploy (only contents changed)
cached builds
@mayashavin
Optimize performance
🔥 Performant with Vue 3 composition API
🔥 Smaller generated HTML files size
🔥 NO external client-side data API calls
🔥 Faster building time with Vitejs
🔥 Faster app
🔥 TypeScript support
@mayashavin
@mayashavin
Using vanilla approach
Using Nuxt
- NO code-reusability
- NOT easy to maintain
- Readability?
- Handling content (localization?)
- CSS handling
- Vue 3 reusable component
- SSR render (same html output)
- Organized modular structure
- SEO & TailwindCSS modules
- Smart crawling
- Content separation
@mayashavin
Building landing pages
with Nuxt & TailwindCSS
@mayashavin

@mayashavin
Our goals
- Set up Nuxt 3 project
- Add TailwindCSS
- Break down a landing page into components
- Implement page components
- Inject the static data content
- View and deploy
@mayashavin
npx nuxi init <your-landing-page-project>
yarn add -D tailwindcss postcss @tailwindcss/typography autoprefixer
yarn
/*nuxt.config.ts*/
export default defineNuxtConfig({
postcss: {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
})
npx tailwindcss init
@mayashavin
/* ./static/main.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
/* app.vue */
<script setup>
import './static/main.css'
</script>
<template>
<NuxtPage/>
</template>
@mayashavin

@mayashavin

@mayashavin
Our goals
- Set up Nuxt 3 project
- Add TailwindCSS
- Break down a landing page into components
- Implement page components
- Inject the static data content
- View and deploy
@mayashavin
Summary
- Break down design into components
- Building components with Vue 3
- Styling components with TailwindCSS
- Inject content
- Have a working landing page!
@mayashavin
A LITTLE BIT about me
Senior Software Engineer
MICROSOFT
Core Team
STOREFRONT-UI
Organizer
VUEJS ISRAEL
Blogger & Book Author
@mayashavin
mayashavin.com



@mayashavin
THANK YOU!

@mayashavin
mayashavin.com

A LITTLE BIT about me
Senior Software Engineer
MICROSOFT
Core Team
STOREFRONT-UI
Organizer
VUEJS ISRAEL
Blogger & Book Author
@mayashavin
mayashavin.com



Thank you

@mayashavin
mayashavin.com
Build landing pages with Nuxt 3 and Tailwind
By Maya Shavin
Build landing pages with Nuxt 3 and Tailwind
- 794