This is a sleek and interactive developer portfolio built with React, TypeScript, Tailwind CSS, and Vite. It showcases Babin Joeβs work, including projects, certificates, education, and resume β along with a dark/light mode toggle and animated, responsive UI.
β‘οΈ https://babin-joe-portfolio.vercel.app/
- π Dark/Light Mode Toggle
- β‘ Fast and optimized with Vite
- π¬ Contact form powered by Vercel Serverless Function
- π§ Smooth client-side routing via React Router
- π¨ Styled with Tailwind CSS + ShadCN UI
- π± Fully Responsive across devices
- π SEO-Friendly Structure
- π Auto Scroll-to-Top on route change
- π§ͺ TypeScript for type safety
- π Organized code with modular components
- π Markdown-supported and clean README
- React
- TypeScript
- Tailwind CSS
- ShadCN UI
- Vite
- React Router
- Lucide Icons
- Vercel (Hosting + API)
Portfolio/
βββ public/
β βββ (favicons, og images, etc.)
βββ src/
β βββ assets/
β βββ components/
β β βββ Navigation.tsx
β β βββ Footer.tsx
β β βββ ScrollToTop.tsx
β βββ pages/
β β βββ Home.tsx
β β βββ About.tsx
β β βββ Projects.tsx
β β βββ Certificates.tsx
β β βββ Education.tsx
β β βββ Resume.tsx
β β βββ Contact.tsx
β β βββ NotFound.tsx
β βββ components/ui/ (ShadCN UI components)
β βββ App.tsx
β βββ main.tsx
βββ api/
β βββ contact.js # Contact form backend (Node.js)
βββ vercel.json
βββ package.json
βββ tailwind.config.ts
βββ tsconfig.json
- Clone the repository
git clone https://github.com/BABIN-JOE/Portfolio.git
cd Portfolio
- Install dependencies
npm install
- Start development server
npm run dev
- Start backend (contact API) locally
cd api
node contact.js
The project is deployed using Vercel. It includes a Serverless Function (api/contact.js
) to handle contact form submissions securely and efficiently.
To deploy manually:
vercel deploy
To run locally via Vercel:
vercel dev
The backend is a Vercel serverless function defined in api/contact.js
. It uses nodemailer to send emails to your address when a user submits the contact form.
Make sure to set these environment variables in Vercel or in a .env
file inside the api/
directory:
FROM_EMAIL=your_email@example.com
FROM_PASS=your_email_password
TO_EMAIL=recipient_email@example.com
Note:
The environment variable names must match those above.
The.env
file is already gitignored for security.
- Scroll-to-top on route change
- Contact form routing bug fixed
- Responsive mobile nav bar
- Add animations using Framer Motion
- Project filtering or tag system
- Multilingual support
This portfolio is custom-built to reflect Babin Joeβs personality, technical skillset, and UI/UX preferences β sleek, techy, with interactive glowing touches.
This project is licensed under the MIT License. Feel free to fork and customize, but credit is appreciated.
Babin Joe
π Portfolio | GitHub | LinkedIn
Built with β€οΈ by Babin Joe