A modern, interactive portfolio website built with React, TypeScript, and Framer Motion. Features smooth animations, responsive design, and a dynamic contact form powered by Supabase.
- π¨ Modern UI/UX: Sleek design with gradient effects and smooth animations
- β‘ Lightning Fast: Built with Vite for optimal performance
- π± Fully Responsive: Works seamlessly on all devices
- π Interactive Animations: Powered by Framer Motion
- π¬ Contact Form: Integrated with Supabase for message storage
- π― Smooth Navigation: Scroll-based navigation with animated sections
- π‘ Thought & Jokes: Dynamic content that refreshes on demand
- π Dark Theme: Eye-friendly dark mode design
- βΏ Accessible: Built with accessibility best practices
Visit the live site: [Your Portfolio URL]
- React 18.3.1 - UI library
- TypeScript 5.6.3 - Type safety
- Vite 5.4.2 - Build tool
- Tailwind CSS 3.4.1 - Styling
- Framer Motion 12.23.22 - Animations
- Lucide React 0.344.0 - Icons
- Supabase - Database and authentication
- PostgreSQL - Database (via Supabase)
- ESLint - Code linting
- PostCSS & Autoprefixer - CSS processing
- Node.js 18+
- npm or yarn
- Supabase account (for contact form)
- Clone the repository
git clone https://github.com/jaiashwinisatish/portfolio.git
cd portfolio- Install dependencies
npm install
# or
yarn install- Set up environment variables
Create a .env file in the root directory:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key- Run database migrations
Execute the SQL migration in your Supabase dashboard:
-- Located in: supabase/migrations/20251108152050_create_contacts_table.sql- Start the development server
npm run dev
# or
yarn dev- Open your browser
Navigate to
http://localhost:5173
npm run build
# or
yarn buildThe optimized production build will be in the dist directory.
portfolio/
βββ public/ # Static assets
βββ src/
β βββ assets/ # Images and media
β βββ components/ # React components
β β βββ About.tsx
β β βββ Contact.tsx
β β βββ Hero.tsx
β β βββ Navigation.tsx
β β βββ Projects.tsx
β β βββ Skills.tsx
β β βββ ThoughtJoke.tsx
β βββ data/ # Static data files
β β βββ thoughtsAndJokes.ts
β βββ lib/ # Utilities and configs
β β βββ supabase.ts
β βββ App.tsx # Main app component
β βββ main.tsx # Entry point
β βββ index.css # Global styles
βββ supabase/
β βββ migrations/ # Database migrations
βββ .env.example # Environment variables template
βββ package.json
βββ tsconfig.json
βββ tailwind.config.js
βββ vite.config.ts
- Animated particle background
- Typewriter effect with rotating phrases
- Social media links
- Call-to-action buttons
- Personal introduction
- Animated profile image
- Key strengths showcase
- Animated skill bars
- Technology icons
- Proficiency levels
- Project cards with hover effects
- Live demo and GitHub links
- Technology tags
- Responsive grid layout
- Random inspirational thoughts
- Tech-related humor
- Refresh functionality
- Working contact form
- Social media links
- Contact information
- Form validation
- Success/error notifications
- Hero Section - Edit
src/components/Hero.tsx - About Section - Edit
src/components/About.tsx - Projects - Edit the projects array in
src/components/Projects.tsx - Skills - Edit the skills array in
src/components/Skills.tsx - Contact Info - Edit contact details in
src/components/Contact.tsx
Colors are defined in Tailwind CSS classes. Main colors used:
- Primary:
cyan-400/cyan-500 - Secondary:
purple-400/purple-500 - Background:
slate-900/slate-800
Update these in component files to change the color scheme.
Edit src/data/thoughtsAndJokes.ts to add more content.
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm run typecheck # Run TypeScript type checking- Push your code to GitHub
- Import your repository on Vercel
- Add environment variables
- Deploy!
- Push your code to GitHub
- Connect repository on Netlify
- Build command:
npm run build - Publish directory:
dist - Add environment variables
- Deploy!
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
Ashwini Jaiswal
- Email: ashwinisj2005@gmail.com
- GitHub: @jaiashwinisatish
- LinkedIn: Ashwini Jaiswal
- React - UI framework
- Framer Motion - Animation library
- Tailwind CSS - CSS framework
- Lucide Icons - Icon library
- Supabase - Backend services
- Vite - Build tool
- None at the moment! If you find any, please open an issue.
- Add blog section
- Implement dark/light theme toggle
- Add more project examples
- Include resume download feature
- Add testimonials section
- Implement analytics
Made with β€οΈ by Ashwini Jaiswal
β Star this repo if you found it helpful!