Skip to content

Repository files navigation

Servon Lewis - Portfolio Website

A modern, professional portfolio website built with Next.js, TypeScript, and Tailwind CSS. This site showcases your skills, experience, and availability for freelance opportunities.

πŸš€ Features

  • Responsive Design: Fully responsive across all devices
  • Modern UI: Built with shadcn/ui components and Tailwind CSS
  • Smooth Animations: Elegant animations powered by Framer Motion
  • SEO Optimized: Comprehensive meta tags and structured data
  • Dark Mode Support: Automatic dark mode based on system preferences
  • Performance Focused: Optimized for fast loading and smooth interactions

πŸ“ Project Structure

servon-portfolio/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ page.tsx          # Main page with all sections
β”‚   β”œβ”€β”€ layout.tsx        # Root layout with SEO metadata
β”‚   └── globals.css       # Global styles and theme variables
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ navigation.tsx    # Header navigation component
β”‚   β”œβ”€β”€ footer.tsx        # Footer component
β”‚   β”œβ”€β”€ sections/
β”‚   β”‚   β”œβ”€β”€ hero.tsx      # Hero section with intro
β”‚   β”‚   β”œβ”€β”€ about.tsx     # About section
β”‚   β”‚   β”œβ”€β”€ skills.tsx    # Skills and technologies
β”‚   β”‚   β”œβ”€β”€ experience.tsx # Work experience timeline
β”‚   β”‚   └── contact.tsx   # Contact section
β”‚   └── ui/               # Reusable UI components
β”‚       β”œβ”€β”€ button.tsx
β”‚       β”œβ”€β”€ card.tsx
β”‚       └── badge.tsx
β”œβ”€β”€ lib/
β”‚   └── utils.ts          # Utility functions
└── public/
    └── images/           # Image assets

πŸ–ΌοΈ Adding Your Images

Profile Photo

  1. Prepare your image:

    • Recommended size: 800x800 pixels (square)
    • Format: JPG or PNG
    • Keep file size under 500KB for optimal performance
  2. Add the image:

    • Place your profile photo in: public/images/profile.jpg
    • The hero section will automatically load this image
  3. Fallback behavior:

    • If no image is found, a placeholder with text "Your Photo Here" will display
    • This allows you to see the layout before adding your actual photo

Adding More Images (Optional)

If you want to add more images to other sections:

// Example: Add an image to any section
import Image from "next/image"

<Image
  src="/images/your-image.jpg"
  alt="Description"
  width={800}
  height={600}
  className="rounded-lg"
/>

πŸ› οΈ Getting Started

Prerequisites

  • Node.js 18+ installed
  • npm or yarn

Installation

  1. Install dependencies:
npm install
  1. Run development server:
npm run dev
  1. Open your browser: Navigate to http://localhost:3000

Building for Production

npm run build
npm start

✏️ Customization Guide

⚠️ Important: Add Your Profile Photo

Your profile photo is ready to add!

  1. Save the photo you provided (sitting on steps in black shirt) as public/images/profile.jpg
  2. The hero section will automatically display it
  3. See public/images/PROFILE_IMAGE_INSTRUCTIONS.md for details

Update Personal Information

1. Contact Email

The email (servonlewis@gmail.com) is already set in:

2. Social Links

Update your social media URLs in:

Replace with your actual profiles:

  • LinkedIn: https://linkedin.com/in/YOUR_USERNAME
  • GitHub: https://github.com/YOUR_USERNAME

3. SEO Metadata

Update SEO information in app/layout.tsx:

  • Change the domain URL from https://servonlewis.com to your actual domain
  • Update any other metadata as needed

Customizing Content

Skills Section

Edit components/sections/skills.tsx:

  • Modify the skillCategories array to add/remove skills
  • Update certifications in the Certifications card

Experience Section

Edit components/sections/experience.tsx:

  • Modify the experiences array to update work history
  • Each experience object includes: company, role, period, highlights, and technologies

About Section

Edit components/sections/about.tsx:

  • Update the highlights array for key strengths
  • Modify the biography text in the Card component

Styling and Theme

Colors

Customize theme colors in app/globals.css:

  • Modify CSS variables in the :root selector for light mode
  • Modify variables in @media (prefers-color-scheme: dark) for dark mode

Fonts

Change fonts in app/layout.tsx:

  • Replace Geist and Geist_Mono with your preferred Google Fonts

πŸ“± Sections Overview

1. Hero Section

  • Eye-catching introduction
  • Profile image placeholder
  • Call-to-action buttons
  • Social links

2. About Section

  • Brief biography
  • Key highlights with icons
  • Professional summary

3. Skills Section

  • Organized by categories
  • Visual badges for each skill
  • Certifications display

4. Experience Section

  • Timeline-style layout
  • Company logos (optional)
  • Key achievements
  • Technology tags

5. Contact Section

  • Email contact button
  • Social media links
  • Professional call-to-action

🌐 Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Import project in Vercel
  3. Deploy with one click

Other Platforms

This is a standard Next.js app and can be deployed to:

  • Netlify
  • AWS Amplify
  • Google Cloud Platform
  • Any platform supporting Next.js

πŸ“ License

This project is open source and available for personal use.

🀝 Support

For questions or issues, contact: servonlewis@gmail.com


Built with ❀️ using Next.js, TypeScript, and Tailwind CSS

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages