A modern, full-stack portfolio web application featuring a responsive UI, animated transitions, and a Node.js backend. Built with Vite, React, TypeScript, Tailwind CSS, Framer Motion, shadcn-ui, and Express.
- Project Info
- Features
- Tech Stack
- Monorepo Structure
- Getting Started
- Project Scripts
- Configuration
- Deployment
- Custom Domain
- Contributing
- License
Live URL: https://portfolio-brown-nu-26.vercel.app/
A showcase portfolio for developers, featuring a beautiful UI, dark/light theme toggle, and smooth animations. Easily customizable for your own needs.
- Responsive navigation bar with theme toggle (light/dark)
- Animated transitions using Framer Motion
- Mobile-friendly menu and navigation
- Modern UI with Tailwind CSS and shadcn-ui components
- Modular React components for easy customization
- Backend API with Express (Node.js)
- Environment variable support for configuration
- Ready for deployment on Vercel, Netlify, or Lovable
Frontend:
- Vite
- React
- TypeScript
- Tailwind CSS
- shadcn-ui
- Framer Motion
- Radix UI (for accessible UI primitives)
- Axios (for HTTP requests)
Backend:
off-portfolio/
│
├── Readme.md # Project root README
├── Client/ # Frontend (React)
│ ├── src/ # React source code
│ ├── public/ # Static assets
│ ├── package.json # Frontend dependencies & scripts
│ └── ... # Config files (Vite, Tailwind, etc.)
│
└── server/ # Backend (Node.js/Express)
├── index.js # Express server entry
├── package.json # Backend dependencies & scripts
└── ... # Config files
Clone the repository and install dependencies for both frontend and backend:
git clone https://github.com/AmjustGettingStarted/off-portfolio.git
cd off-portfolio
# Install frontend dependencies
cd Client
npm install
# Install backend dependencies
cd ../server
npm install
Start the backend (Express server):
cd server
npm run start
By default, the backend runs at http://localhost:8080.
Start the frontend (React app):
Open a new terminal:
cd Client
npm run dev
The frontend runs at http://localhost:5173 (or as indicated in your terminal).
Frontend (Client/package.json
):
npm run dev
– Start Vite dev servernpm run build
– Build for productionnpm run preview
– Preview production buildnpm run lint
– Lint code with ESLint
Backend (server/package.json
):
npm run start
– Start Express server
- Frontend environment variables:
Place variables inClient/.env
(see Vite docs for variable naming). - Backend environment variables:
Place variables inserver/.env
.
You can deploy the frontend and backend separately or together, depending on your hosting provider.
- Frontend: Deploy
Client
to Vercel, Netlify, or Lovable. - Backend: Deploy
server
to Vercel, Render, or Railway.
Example: Deploying to Vercel
- Deploy the
Client
folder as a Vercel project (set build command tonpm run build
and output directory todist
). - Deploy the
server
folder as a separate Vercel project (set build command tonpm run start
).
Custom domains are not supported directly via Lovable. For custom domains, deploy using Netlify or Vercel and configure your domain settings.
- Fork the repository
- Create your feature branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin feature/YourFeature
) - Open a pull request
This project is for personal portfolio use. Feel free to customize and use it for your own projects.
Because light attracts bugs!" 🐞🐞🐞
💝 HMV 💝