Welcome to my personal portfolio repository! I'm Ayush, and this is where I showcase my work, share my thoughts through blog posts, and highlight my research contributions. This modern, responsive portfolio is built with React, TypeScript, and Tailwind CSS to provide an engaging way for visitors to learn about my projects and get in touch.
You can view the live website here: https://roguepikachu.github.io/portfolio
This website serves as a comprehensive showcase of my professional work and interests, featuring:
- Modern Design: Clean, responsive interface with dark and light mode support
- Mobile-First Approach: Fully responsive design that works seamlessly on all devices
- Blog Integration: Dynamic blog posts with markdown support for sharing insights and tutorials
- Project Showcase: Featured projects with live demos and GitHub repository links
- Publications Section: Academic publications and research work display
- Interactive Features: Voting and commenting system powered by Supabase
- SEO Optimized: Built with best practices for search engine optimization
- Fast Performance: Optimized with Vite for lightning-fast loading and development
To run this portfolio locally for development purposes, follow these steps:
- Node.js (version 16 or higher) - install with nvm
- npm or yarn package manager
- Clone the repository:
git clone <repository-url>
cd portfolio- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and visit
http://localhost:3000
npm run dev- Start development server with hot reloadnpm run build- Build for productionnpm run build:dev- Build in development modenpm run preview- Preview production build locallynpm run lint- Run ESLint for code quality checks
This portfolio leverages modern web technologies for optimal performance and developer experience:
- React 18 - Component-based UI library for building interactive interfaces
- TypeScript - Type-safe JavaScript development for better code quality
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework for rapid styling
- Shadcn/ui - Beautiful, accessible UI component library
- Supabase - Backend-as-a-Service providing authentication and database functionality
- PostgreSQL - Robust relational database system (managed by Supabase)
- React Router - Declarative client-side routing
- React Query - Powerful data fetching and caching library
- Lucide React - Beautiful and consistent icon library
- Date-fns - Modern JavaScript date utility library
- React Hook Form - Performant form handling and validation
src/
├── components/ # Reusable UI components
│ ├── ui/ # Shadcn/ui components
│ ├── auth/ # Authentication components
│ └── blog/ # Blog-specific components
├── pages/ # Route components
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries and configurations
├── types/ # TypeScript type definitions
└── utils/ # Helper functions
public/
└── content/ # Markdown content files
├── blog/ # Blog posts
├── projects/ # Project descriptions
└── publications/ # Academic publications
Content for the portfolio is organized through markdown files in the public/content/ directory structure:
- Blog Posts: Create new blog entries by adding
.mdfiles topublic/content/blog/ - Project Descriptions: Add detailed project information to
public/content/projects/ - Research Publications: Document academic work in
public/content/publications/
Each content file includes frontmatter with essential metadata such as titles, descriptions, tags, and relevant links for proper categorization and display.
This portfolio can be deployed to various static hosting platforms:
- Connect your GitHub repository to Vercel
- Vercel automatically detects the Vite configuration
- Deploy with a single click
- Connect your repository to Netlify
- Set build command:
npm run build - Set publish directory:
dist
- Install gh-pages:
npm install --save-dev gh-pages - Add deployment script to package.json
- Run
npm run deploy
For local development, create a .env.local file in the project root:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_keyIf you'd like to contribute improvements or suggestions:
- Fork the repository
- Create a feature branch:
git checkout -b feature/improvement-name - Make your changes and commit:
git commit -m 'Add specific improvement' - Push to the branch:
git push origin feature/improvement-name - Submit a pull request for review
This project is open source and available under the MIT License.