A modern, responsive portfolio website showcasing my journey as an Android Native & Cross-Platform Developer. Built with cutting-edge web technologies and designed with a focus on performance and user experience.
- β‘ Lightning Fast: Built with Vite for optimal performance and instant hot module replacement
- π¨ Modern Design: Clean, minimalist interface with smooth animations and transitions
- π Dark Mode: Seamless theme switching that respects system preferences
- π± Fully Responsive: Optimized experience across all devices and screen sizes
- βΏ Accessible: WCAG compliant with semantic HTML and proper ARIA labels
- π SEO Optimized: Structured data and meta tags for better discoverability
- π Analytics Ready: Integrated with Vercel Analytics and Speed Insights
- TypeScript - Type-safe JavaScript for better developer experience
- React 19 - Latest React with concurrent features
- React Router DOM - Client-side routing for seamless navigation
- Styled Components - CSS-in-JS for component-scoped styling
- Tailwind CSS 4 - Utility-first CSS framework for rapid UI development
- PostCSS - CSS transformations and optimizations
- Autoprefixer - Automatic vendor prefixing
- Vite 7 - Next-generation frontend tooling
- TypeScript 5 - Static type checking
- Vercel Analytics - Privacy-friendly website analytics
- Vercel Speed Insights - Real-time performance metrics
portfolio/
βββ src/
β βββ components/ # Reusable UI components
β β βββ Intro.tsx
β β βββ Portfolio.tsx
β β βββ PortfolioItem.tsx
β β βββ Timeline.tsx
β β βββ TimelineItem.tsx
β β βββ Contact.tsx
β β βββ Footer.tsx
β β βββ Title.tsx
β βββ pages/ # Page components
β β βββ tapit/
β β βββ PrivacyPolicy.tsx
β β βββ CookiePolicy.tsx
β βββ data/ # Static data and content
β β βββ portfolio.ts
β β βββ timeline.ts
β βββ styles/ # Global styles
β β βββ tailwind.css
β βββ assets/ # Images and static files
β βββ App.tsx # Main application component
β βββ main.tsx # Application entry point
β βββ vite-env.d.ts # Type declarations
βββ public/ # Static assets
βββ index.html # HTML template
βββ vite.config.ts # Vite configuration
βββ tailwind.config.js # Tailwind configuration
βββ tsconfig.json # TypeScript configuration
βββ package.json # Project dependencies
- Node.js 18+ and npm/yarn/pnpm installed
- Git for version control
- Clone the repository
git clone https://github.com/yourusername/portfolio.git
cd portfolio- Install dependencies
npm install- Start the development server
npm run dev-
Open your browser
Navigate to
http://localhost:5173to see the portfolio in action!
| Command | Description |
|---|---|
npm run dev |
Start development server with hot reload |
npm run build |
Build for production with TypeScript checking |
npm run preview |
Preview production build locally |
- Introduction Section: Edit
src/components/Intro.tsx - Portfolio Projects: Modify
src/data/portfolio.ts - Timeline/Experience: Update
src/data/timeline.ts - Contact Form: Configure endpoint in
src/components/Contact.tsx
Customize colors, fonts, and spacing in tailwind.config.js:
theme: {
extend: {
colors: {
// Add your custom colors
},
fontFamily: {
// Add your custom fonts
}
}
}- Create component in
src/pages/ - Add route in
src/App.tsx - Update navigation if needed
This portfolio is optimized for deployment on Vercel, but works with any static hosting service.
- Push your code to GitHub
- Import project on Vercel
- Configure build settings (auto-detected)
- Deploy!
# Build for production
npm run build
# Deploy the 'dist' folder to your hosting service- Lighthouse Score: 100/100 across all metrics
- First Contentful Paint: < 1s
- Time to Interactive: < 2s
- Bundle Size: Optimized with code splitting and lazy loading
While this is a personal portfolio, suggestions and feedback are welcome! Feel free to:
- Fork the repository
- Create a 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.
- Icons from Heroicons
- Fonts from Google Fonts
- Form handling by Getform
β Star this repo if you find it helpful!
