DEV Community

Esimit Karlgusta
Esimit Karlgusta

Posted on

Build Your First Landing Page with Next.js + Tailwind (No Design Skills Needed)

Build Your First Landing Page with Next.js + Tailwind (No Design Skills Needed)

Building your first landing page feels like standing in front of a blank canvas. You’ve got the brush, the paint, and a vague idea — but no clue where to start.

Don’t worry. In this guide, we’ll turn that blank canvas into a simple, beautiful page that could be the start of your next SaaS.

We’ll use Next.js for structure and Tailwind CSS for style — like using building blocks that click together perfectly.


Step 1: Create a New Next.js Project

Open your terminal and run:

npx create-next-app@latest my-landing-page
cd my-landing-page
npm run dev
Enter fullscreen mode Exit fullscreen mode

Now visit http://localhost:3000 in your browser — you’ll see the default Next.js page. Think of it as an empty room: four walls, no furniture yet.


Step 2: Add Tailwind CSS

Tailwind is like having a stylist who hands you ready-made outfits for your website.

Run these commands to install and set it up:

npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
Enter fullscreen mode Exit fullscreen mode

Then, edit your tailwind.config.js file to include all the pages:

/** @type {import('tailwindcss').Config} */
export default {
  content: [
    "./pages/**/*.{js,ts,jsx,tsx}",
    "./components/**/*.{js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
};
Enter fullscreen mode Exit fullscreen mode

Finally, open ./styles/globals.css and replace everything with:

@tailwind base;
@tailwind components;
@tailwind utilities;
Enter fullscreen mode Exit fullscreen mode

Restart your dev server with npm run dev. Now your project has a full wardrobe — ready to style anything.


Step 3: Clean the Default Page

Open pages/index.js (or page.js if using App Router). Delete everything inside and start fresh:

export default function Home() {
  return (
    <div className="min-h-screen flex flex-col items-center justify-center bg-gray-50 text-center">
      <h1 className="text-4xl font-bold text-gray-800 mb-4">
        Welcome to My First Landing Page
      </h1>
      <p className="text-gray-600 mb-8 max-w-md">
        Launch your next big idea with confidence. This is your space on the internet.
      </p>
      <button className="px-6 py-3 bg-blue-600 text-white rounded-lg shadow hover:bg-blue-700 transition">
        Get Started
      </button>
    </div>
  );
}
Enter fullscreen mode Exit fullscreen mode

Refresh your page. You’ve just built your first section — the hero. It’s like the shop window for your product.


Step 4: Add a Simple Navbar

Let’s add a top navigation bar — your visitors’ map.

Create a new file at components/Navbar.js:

export default function Navbar() {
  return (
    <nav className="w-full flex justify-between items-center p-4 bg-white shadow">
      <h1 className="text-xl font-bold text-blue-600">MyBrand</h1>
      <div className="space-x-4">
        <a href="#" className="text-gray-600 hover:text-blue-600">Home</a>
        <a href="#" className="text-gray-600 hover:text-blue-600">Pricing</a>
        <a href="#" className="text-gray-600 hover:text-blue-600">About</a>
      </div>
    </nav>
  );
}
Enter fullscreen mode Exit fullscreen mode

Then import it in your pages/index.js file:

import Navbar from "../components/Navbar";

export default function Home() {
  return (
    <div className="min-h-screen bg-gray-50">
      <Navbar />
      <main className="flex flex-col items-center justify-center text-center py-20">
        <h1 className="text-4xl font-bold text-gray-800 mb-4">
          Welcome to My First Landing Page
        </h1>
        <p className="text-gray-600 mb-8 max-w-md">
          Launch your next big idea with confidence. This is your space on the internet.
        </p>
        <button className="px-6 py-3 bg-blue-600 text-white rounded-lg shadow hover:bg-blue-700 transition">
          Get Started
        </button>
      </main>
    </div>
  );
}
Enter fullscreen mode Exit fullscreen mode

Now it feels like a real website — navigation, hero, call-to-action. You’ve just built your first product front door.


Step 5: Make It Look Good on Mobile

Tailwind’s classes work like magic wands for responsiveness.

Add these tweaks to your text sizes and spacing:

<h1 className="text-3xl md:text-5xl font-bold text-gray-800 mb-4">
  Welcome to My First Landing Page
</h1>
<p className="text-gray-600 mb-8 max-w-md md:max-w-lg">
  Launch your next big idea with confidence. This is your space on the internet.
</p>
Enter fullscreen mode Exit fullscreen mode

Now shrink your browser window — everything gracefully adjusts. It’s like watching your layout dance to different screen sizes.


Step 6: Optional — Add DaisyUI for Beautiful Components

Want your page to glow a little more? Install DaisyUI, a Tailwind plugin with pre-styled components:

npm install daisyui
Enter fullscreen mode Exit fullscreen mode

Then in your tailwind.config.js:

plugins: [require("daisyui")],
Enter fullscreen mode Exit fullscreen mode

Now you can replace your button with:

<button className="btn btn-primary">Get Started</button>
Enter fullscreen mode Exit fullscreen mode

It instantly looks cleaner — like switching from sneakers to polished shoes.


Step 7: Celebrate — You Just Built Your First Page 🎉

Take a breath. You now have a responsive, styled landing page built from scratch. You wrote code, not copied it. That’s the key difference.

You’ve done what most beginners never do: you shipped something.


What’s Next: Build the Rest of the App

If you enjoyed building this and want to go beyond a landing page — I created Zero to SaaS, a 14-day course that takes you from this landing page to a fully functional SaaS with:

  • Authentication (email + Google)
  • MongoDB database
  • Stripe subscriptions
  • Deployment on Vercel
  • Your own domain

It’s the same stack you just used — just taken to the finish line. You don’t just learn; you launch.

👉 Join Zero to SaaS and turn this landing page into your first real SaaS.

Top comments (0)