This repository contains Surya's personal developer portfolio – a single-page React application built with TypeScript, Vite, and Tailwind CSS. It showcases projects, skills, and experience with a modern, animated UI.
The site is optimized for desktop and mobile, includes a theme toggle (light/dark), smooth transitions, and integrates a GitHub contribution calendar.
Hi, I'm Surya (vathsav) – a developer who enjoys building clean UIs, experimenting with animations, and solving problems through code. This portfolio is my place to highlight the projects, technologies, and ideas I'm currently exploring.
Hosted on GitHub Pages:
https://suresurya.github.io/portfolio/
- Clean, responsive layout focused on readability
- Dark and light themes with smooth animated transitions
- Custom mouse tracking and subtle motion effects
- Projects section highlighting multiple real-world projects
- GitHub activity calendar using
react-github-calendar - Resume and contact sections so people can reach out easily
- Hero / Intro: brief introduction and highlight of who I am
- Projects: curated list of my favorite personal and academic projects
- Resume: quick view of experience, education, and skills
- Contact: ways to reach me for opportunities or collaboration
- Framework: React 19 + React DOM
- Language: TypeScript
- Bundler/Dev Server: Vite
- Styling: Tailwind CSS 4, custom CSS variables, Google Fonts
- Routing: React Router
- UI Helpers:
react-icons,clsx,tailwind-merge - Tooling: ESLint, TypeScript
- Node.js (recommended: 18 or later)
- npm (comes with Node)
git clone https://github.com/suresurya/portfolio.git
cd portfolio
npm installnpm run devThe app will start on the URL shown in the terminal (by default http://localhost:5173).
npm run buildnpm run previewnpm run lintnpm run dev– start the Vite development servernpm run build– type-check and build the app for productionnpm run preview– preview the built app locallynpm run lint– run ESLint on the project
suryaPortfolio/
├─ public/ # Static assets
├─ src/
│ ├─ components/ # Page sections (Body, NavBar, Projects, Contact, etc.)
│ ├─ components/projects/ # Individual project components
│ ├─ assets/ # Images and icons used across the site
│ ├─ utils/ # Shared helpers
│ ├─ App.tsx # Root application component
│ └─ main.tsx # React/Vite entry point
├─ index.html
├─ package.json
└─ vite.config.ts
You can explore more detailed UI behavior in:
src/components/Body.tsx– main layout and sectionssrc/components/NavBar.tsx– navigation bar and theme toggle entrysrc/components/projects/*– individual project cards and details
This app is configured to use Vite and includes the gh-pages package so it can be deployed to GitHub Pages.
Typical deployment flow:
- Build the site:
npm run build - Deploy the contents of
dist/to GitHub Pages (for example using adeployscript withgh-pages)
If you host this portfolio somewhere else (Vercel, Netlify, etc.), you can deploy the contents of
dist/using that platform's instructions.
- Update the content in
src/components(intro text, skills, resume details, etc.) - Add or edit project cards in
src/components/projects - Tweak global styles in
src/index.css - Replace or add images in
src/assets
You can customize this section in the UI, but typically it will include:
- Email address
- LinkedIn / GitHub profile links
- Any other social/contact options
This portfolio is maintained by Surya (vathsav).