Skip to content

gujarathisampath/portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Portfolio β€” Sampath Gujarathi

License Next.js TypeScript

A clean, responsive developer portfolio built with Next.js 15, Tailwind CSS, and TypeScript. All content lives in a single page with no CMS or external data source required.

πŸ”— Live: gujarathisampath.github.io/portfolio (update if different)


✨ Features

  • Next.js 15 App Router β€” file-based routing and server components out of the box
  • Dark / Light Mode β€” theme toggle powered by next-themes
  • Responsive Layout β€” optimised for mobile, tablet, and desktop
  • Type-Safe β€” full TypeScript support throughout
  • Shadcn UI β€” accessible, composable component primitives
  • Contact Form β€” client-side form with loading & success states
  • Collapsible Tech Stack β€” projects show/hide their technology list

πŸ—‚οΈ Sections

Section Description
Hero Profile picture, banner, name, tagline, and social links
About Short personal bio
Work Experience Employment history using WorkCard
Education Academic background using EducationCard (with grade)
Projects Project showcase using ProjectCard (with collapsible tech stack)
Skills Flat list of technologies and tools
Contact Two-column contact form with email, LinkedIn, and GitHub links

πŸ› οΈ Built With


🧩 Components

WorkCard

Displays a single work experience entry.

Prop Type Required Description
title string βœ… Job title (e.g., "Software Engineer")
company string βœ… Company name
type string βœ… Employment type / location (e.g., "Remote", "Hybrid")
startDate string βœ… Start year / date (e.g., "2024")
endDate string βœ… End year / date (e.g., "Present")
description string βœ… Brief summary of responsibilities
<WorkCard
  title="Software Engineer"
  company="AspireDev"
  type="Remote"
  startDate="2024"
  endDate="Present"
  description="Working with a group of developers to build next-generation applications."
/>

EducationCard

Displays a single education entry with an optional grade.

Prop Type Required Description
degree string βœ… Degree name (e.g., "Bachelor of Technology")
branch string βœ… Field of study (e.g., "Computer Science and Engineering")
institution string βœ… Institution name
startDate string βœ… Start year
endDate string βœ… End year or "Present"
grade string βž– CGPA (for B.Tech) or percentage (for others)

The component automatically labels the grade as CGPA for "Bachelor of Technology" and Percentage for all other degrees.

<EducationCard
  degree="Bachelor of Technology"
  branch="Computer Science and Engineering"
  institution="Malla Reddy College Of Engineering and Technology"
  startDate="2024"
  endDate="Present"
  grade="9.58"
/>

ProjectCard

Showcases a project with an optional link and collapsible tech stack.

Prop Type Required Description
title string βœ… Project name
description string βœ… Short project summary
link string βž– URL to the live project or repository
techStack string[] βž– List of technologies used
<ProjectCard
  title="Aspire Mail"
  description="A modern, self-hosted webmail client built as a clean alternative to Roundcube."
  link="https://github.com/gujarathisampath/aspire-mail"
  techStack={["Next.js", "Tailwind CSS", "TypeScript"]}
/>

ContactForm

A two-column contact section with:

  • Left panel β€” tagline, description, and direct contact links (email, LinkedIn, GitHub)
  • Right panel β€” form with Name, Email, Subject, and Message fields

No backend required β€” the form currently simulates a send after 1.8 s. To wire it up to a real service (e.g. Resend, Formspree), edit the handleSubmit function in components/ContactForm.tsx.


πŸš€ Quick Start

# Clone the repository
git clone https://github.com/gujarathisampath/portfolio.git
cd portfolio

# Install dependencies (uses Bun)
bun install

# Start the dev server
bun run dev

Open http://localhost:3000 in your browser.


🎨 Customisation

All content is managed inside app/page.tsx.

1. Personal Info (Hero)

<h1 className="text-2xl font-bold">Your Name</h1>
<p className="text-muted-foreground">Your tagline here.</p>
  • Profile picture β†’ replace /public/profile.png
  • Banner image β†’ replace /public/banner.png
  • Social links β†’ update the href values on the <Link> components (LinkedIn, GitHub, Resume)

2. About

Edit the <p> tag inside the About section.

3. Work Experience

Add or remove <WorkCard /> components in the Work Experience section.

4. Education

Add or remove <EducationCard /> components in the Education section.

5. Projects

Add or remove <ProjectCard /> components in the Projects section (renders in a 2-column grid on desktop).

6. Skills

Add or remove <Button variant="secondary" size="sm"> tags inside the Skills section.

7. Contact

Update the SOCIAL_LINKS array at the top of components/ContactForm.tsx to point to your own email and social profiles.


πŸ“ Project Structure

portfolio/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ layout.tsx        # Root layout (fonts, theme provider, metadata)
β”‚   └── page.tsx          # Main page β€” all sections live here
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ ContactForm.tsx   # Contact section with form
β”‚   β”œβ”€β”€ EducationCard.tsx # Education entry card
β”‚   β”œβ”€β”€ ProjectCard.tsx   # Project showcase card
β”‚   β”œβ”€β”€ WorkCard.tsx      # Work experience card
β”‚   β”œβ”€β”€ theme-provider.tsx
β”‚   └── ui/               # Shadcn UI primitives
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ profile.png       # Profile photo
β”‚   └── banner.png        # Banner image
└── lib/
    └── utils.ts

πŸ“„ License

This project is open source and available under the MIT License.

About

A minimal, responsive developer portfolio built with Next.js 15, Tailwind CSS, and TypeScript. Designed for speed and simplicity.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors