Building a Modern Responsive Portfolio using Next.js and Tailwind CSS π

Table of contents
- π οΈ Tools & Technologies Used
- π§± Step 1: Setting Up the Project
- π¨ Step 2: Building the Portfolio Structure
- ProjectsSection: Dynamic project cards pulled from constants.
- ContactSection: Form to get in touch.
- Navbar: Smooth navigation links.
- Footer: Copyright and social links.
- π» Step 3: Making It Fully Responsive
- π Step 4: Deploying the Portfolio to GitHub and Vercel
- π Final Thoughts

In today's digital era, having a personal portfolio is more important than ever. It showcases your skills, projects, and personal brand in the best way possible. Recently, I built and deployed my own portfolio using Next.js and Tailwind CSS, two powerful tools for creating modern and responsive websites.
π Check out my live portfolio here!
In this blog, Iβll walk you through how I built it, and how you can create your own too!
π οΈ Tools & Technologies Used
Next.js β React framework for production-grade apps
Tailwind CSS β Utility-first CSS framework
Vercel β Hosting platform for deploying Next.js apps easily
π§± Step 1: Setting Up the Project
First, I created a new Next.js project and installed Tailwind CSS.
npx create-next-app@latest navi-portfolio
cd navi-portfolio
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
Then, I configured Tailwind by adding the paths to my tailwind.config.js
file:
content: [
"./app/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}",
],
And imported the Tailwind directives inside globals.css
:
@tailwind base;
@tailwind components;
@tailwind utilities;
Now, Tailwind CSS was ready inside my Next.js app!
π¨ Step 2: Building the Portfolio Structure
Hereβs a quick view of my folder structure:
βββ app
β βββ layout.tsx
β βββ page.tsx
βββ components
β βββ HeroSection.tsx
β βββ AboutSection.tsx
β βββ ProjectsSection.tsx
β βββ ContactSection.tsx
β βββ Navbar.tsx
β βββ Footer.tsx
β βββ more...
βββ constants
β βββ projects.ts
β βββ TechStack.js
βββ hooks
β βββ useLocalStorage.ts
βββ lib
β βββ utils.ts
βββ styles
β βββ globals.css
Each section was modularized into components for better reusability.
HeroSection: My name, title, and intro.
Beautiful Landing Section with My Introduction
AboutSection: Brief story about me.
A Basic intro of me
ProjectsSection: Dynamic project cards pulled from constants.
Highlighting Some of My Best Works
ContactSection: Form to get in touch.
Easy Contact Section for Visitors
Navbar: Smooth navigation links.
Clean and Smooth Navigation Bar for Easy Access Across Sections
Footer: Copyright and social links.
Minimalistic Footer with Social Links and Copyright Information
Also, I added a Dark Mode Toggle with useLocalStorage
hook to save theme preferences!
π» Step 3: Making It Fully Responsive
Responsiveness was my top priority.
I used Tailwindβs utility classes like:
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
<section className="p-6 md:p-12 lg:p-24">
Mobile-first design was ensured by using sm:
, md:
, and lg:
prefixes in Tailwind classes.
- Fully Responsive Design on Mobile Devices
π Step 4: Deploying the Portfolio to GitHub and Vercel
Once my project was ready locally, I deployed it following these steps:
πΉ 1. Push the Project to GitHub
If you haven't initialized Git yet:
bashCopyEditgit init
git add .
git commit -m "Initial commit - portfolio setup"
Now create a new repository on GitHub (example: navi-portfolio
).
Then, link your local project to GitHub:
bashCopyEditgit remote add origin https://github.com/your-username/navi-portfolio.git
git branch -M main
git push -u origin main
β After pushing, your code will appear on GitHub.
πΉ 2. Setup and Deploy to Vercel
Now, let's make it live!
Go to Vercel.com and Login / Signup.
Click βNew Project".
Select your GitHub repository (
navi-portfolio
).Click "Deploy".
β Vercel will automatically detect itβs a Next.js app and deploy it within seconds!
Youβll get a live link like this:
π https://navya-sree-ram-kumar-chowdary.vercel.app/
π Final Thoughts
Crafting this portfolio with Next.js and Tailwind CSS turned out to be an incredibly smooth and enriching journey.
The modular structure of Next.js made development organized and efficient, while Tailwind's utility-first approach gave me full creative control over the design.
Within a short time, I was able to build a fast, modern, and fully responsive portfolio that truly reflects my skills and personality.
β¨ If youβre looking to establish your online presence, I highly recommend starting with these technologies β they make the process not only easy but also genuinely enjoyable!
- Your portfolio is the first page of your story β make it unforgettable!
Subscribe to my newsletter
Read articles from Navya Sree Ram Kumar Chowdary Penumarthi directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
