Terminal-style interface with a Canvas animated grid background and typewriter text effects
web-portfolio — Vite Portfolio Template
By MelihIlker
A terminal-style personal portfolio template built with Vite, React, and TypeScript, styled with Tailwind CSS. It includes an animated canvas background, project showcase, skill progress bars, Turkish/English bilingual support, and PWA capabilities.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Built-in Turkish and English language switching, with language state persisted to localStorage
Project showcase supports detail modals that can present tech stacks and live demo links
The skills section uses progress bars with count-up animations for visualization
Provides a Service Worker and manifest.json, with PWA installation and offline capabilities
Built with Vite and includes code splitting, lazy loading, and error boundaries
Template Details
This template is a terminal-style personal portfolio website built with Vite as the build tool, written in React and TypeScript, and styled with Tailwind CSS. The page structure covers sections such as the Hero area, project showcase, skills, work experience, education, contact information, and footer, along with a navigation sidebar. For interaction, it provides a Canvas-based animated grid background, typewriter-effect text, project detail modals, and count-up animations for skill progress bars.
The template includes built-in Turkish and English language switching. Language state is managed through Context and persisted to localStorage. It also provides PWA-related files (Service Worker, manifest.json) to support offline caching and installation. The project uses Framer Motion for animations and includes custom Hooks, error boundaries, skeleton loading, and lazy-loaded images.
Regarding usage limitations, the repository does not require environment variables, and the basic functionality can run directly. The deployment configuration targets Vercel, but it can also be built as static files and deployed to other static hosting platforms. The code is MIT licensed, but third-party assets such as demo images, fonts, and icons need to be checked separately for licensing. Performance metrics mentioned in the README, such as Lighthouse scores and Core Web Vitals, are the author's own statements and have not been independently verified in this material.
Is it right for your project?
Use Cases
- Developers or designers building a personal portfolio website to showcase projects, skills, and work experience
- Resume or portfolio pages that need bilingual switching beyond Chinese and English (Turkish/English)
- Static sites that want to present personal technical background with a terminal-style visual
- Personal websites that need PWA installation and offline access capabilities
Suitable For
- Developers with React and TypeScript fundamentals who want to quickly build a portfolio
- Personal website needs requiring terminal-style visuals and animation effects
- Job seekers or freelancers who need Turkish and English bilingual support
- Users planning to deploy to Vercel or other static hosting platforms
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the repository, run npm install to install dependencies, and use npm run dev to start the development server
- 2
Use npm run build for production builds; the output directory is dist/, and npm run preview can be used for previewing
- 3
Basic functionality does not require environment variables; when deploying to Vercel, use the vercel.json configuration in the repository
- 4
The code is MIT licensed; when distributing, retain the copyright notice and license notice; third-party assets such as demo images, fonts, and icons need to be checked separately for licensing
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version in a public repository under the MIT license; the free scope applies to that version's code and does not mean external services or third-party assets are free.
Must comply with when using
- The code for this version may be used, modified, used commercially, and distributed for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
https://github.com/MelihIlker/web-portfolio/blob/main/LICENSEhttps://github.com/MelihIlker/web-portfolio/blob/main/README.mdPermission is hereby granted, free of charge
Original License Text
Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 88 / 100
- Technologies
- Vite · React
- Website type
- Portfolio
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-04-21
- Screenshot last checked
- 2026-10-13
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Vite as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-13
Inspect the recorded source material
SHA-256: 695b7ab96addc5b5c5ef4d9e99b7ffa8cbd285b009d5e91a492f19e944da9928
2026-10-13T03:25:02.801Z
Source file / repository# 🚀 Portfolio Website
> A modern, responsive portfolio website showcasing professional work and skills with elegant animations and interactive features.
## ✨ Features
- **🎨 Animated Grid Backgrounds**: Dynamic canvas-based grid animations that respond to user interaction
- **📱 Responsive Design**: Optimized for all device sizes with mobile-first approach
- **🌍 Internationalization**: Complete Turkish and English language support
- **🎯 Interactive Project Showcase**: Detailed project modals with technology stacks and live demos
- **📊 Animated Skill Visualization**: Dynamic progress bars with smooth count-up animations
- **⚡ Performance Optimized**: Lazy loading, error boundaries, and efficient rendering
- **🎭 Smooth Animations**: Powered by Framer Motion for seamless user experience
- **♿ Accessibility**: Full keyboard navigation and screen reader support
- **🔧 PWA Ready**: Service Worker, manifest.json, and offline capabilities
- **📈 Performance Monitoring**: Lighthouse score 92+ with optimized Core Web Vitals
## 🛠 Tech Stack
### Frontend Framework
- **React 19** - Latest React with concurrent features
- **TypeScript** - Type-safe development
- **Vite** - Fast build tool and development server
### Styling & UI
- **Tailwind CSS** - Utility-first CSS framework
- **Framer Motion** - Animation and gesture library
- **Lucide React** - Beautiful icon library
### Development Tools
- **ESLint** - Code linting and quality assurance
- **TypeScript ESLint** - TypeScript-specific linting rules
### Performance & Optimization
- **React Lazy Load Image** - Optimized image loading
- **Custom Hooks** - Reusable logic abstraction
- **Error Boundaries** - Graceful error handling
- **Code Splitting** - Bundle optimization with Vite
## 🚀 Quick Start
```bash
# Clone the repository
git clone https://github.com/MelihIlker/personal-website.git
cd personal-website
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
```
## 📁 Project Structure
```
src/
├── components/ # React components
│ ├── ui/ # Reusable UI components
│ │ ├── SquaresBackground.tsx # Canvas-based animated grid
│ │ ├── GradientText.tsx # Gradient text effects
│ │ └── TextType.tsx # Typewriter effect
│ ├── Hero.tsx # Landing section
│ ├── Projects.tsx # Project showcase
│ ├── Skills.tsx # Skills visualization
│ ├── Experience.tsx # Work experience
│ ├── Education.tsx # Education background
│ ├── Contact.tsx # Contact information
│ ├── Footer.tsx # Footer component
│ ├── Navbar.tsx # Navigation sidebar
│ ├── Accessibility.tsx # Accessibility features
│ ├── MicroInteractions.tsx # UI micro-interactions
│ ├── ErrorBoundary.tsx # Error handling
│ └── SkeletonLoader.tsx # Loading states
├── hooks/ # Custom React hooks
│ ├── useScrollAnimation.ts # Scroll-triggered animations
│ ├── useLanguage.ts # Internationalization
│ ├── useCountUp.ts # Number counting animations
│ └── useAccessibility.ts # Accessibility features
├── contexts/ # React contexts
│ └── LanguageContext.tsx # Language state management
└── types/ # TypeScript type definitions
└── react-lazy-load-image-component.d.ts
```
## 🎯 Key Components
### Interactive Elements
- **SquaresBackground**: Custom canvas-based animated grid system with smooth 60fps animations
- **TextType**: Typewriter effect component for dynamic text animation
- **ProjectModal**: Detailed project information with technology stacks and live demos
- **SkillProgress**: Animated progress bars with count-up effects
- **Footer**: Terminal-style footer with social links and contact information
### Custom Hooks
- **useScrollAnimation**: Handles scroll-triggered animations with Intersection Observer
- **useLanguage**: Manages internationalization state with localStorage persistence
- **useCountUp**: Creates smooth number counting animations
- **useAccessibility**: Keyboard navigation and accessibility features
## 🌍 Internationalization
The portfolio supports both Turkish and English with:
- Complete UI translation
- Language persistence in localStorage
- Dynamic language switching
- Context-based translation system
## 📱 Responsive Design
Optimized for all screen sizes:
- Mobile-first approach
- Flexible grid layouts
- Touch-friendly interactions
- Optimized typography scaling
- Mobile sidebar with overlay
## ⚡ Performance Features
- **Lazy Loading**: Images and components load on demand
- **Code Splitting**: Manual chunks for vendor, animations, and UI components
- **Error Boundaries**: Graceful error handling and recovery
- **Skeleton Loaders**: Improved perceived performance
- **Optimized Animations**: 60fps smooth canvas animations
- **Critical CSS**: Inline critical CSS for faster initial render
- **Font Preloading**: Google Fonts preloaded for better performance
- **Async CSS Loading**: Non-blocking CSS loading
## 🎨 Canvas API Implementation
The `SquaresBackground` component uses HTML5 Canvas for:
- **Dynamic Grid Generation**: Responsive grid that adapts to screen size
- **Smooth Animations**: 60fps animations with `requestAnimationFrame`
- **Performance Optimization**:
- `devicePixelRatio` support for retina displays
- Optimized drawing with `lineWidth: 0.5` and `lineCap: 'round'`
- Sub-pixel precision rendering
- **Animation Control**: Direction-based movement (up/down) with smooth transitions
## 🔧 PWA Features
- **Service Worker**: `sw.js` for offline capabilities and caching
- **Web App Manifest**: `manifest.json` with app metadata
- **Theme Color**: Dark theme support (`#1f2937`)
- **App Shortcuts**: Quick access to Projects and Contact sections
- **Installable**: Can be installed as a PWA on mobile devices
## 📈 Performance Metrics
- **Lighthouse Score**: 92+ (Performance, Accessibility, Best Practices, SEO)
- **Core Web Vitals**: Optimized LCP, FID, and CLS
- **Bundle Size**: Optimized with code splitting
- **First Contentful Paint**: < 1.5s
- **Largest Contentful Paint**: < 2.5s
## 🚀 Deployment
### Vercel Deployment
The project is configured for Vercel with:
- **vercel.json**: Cache headers and build configuration
- **Static Assets**: 1-year cache for optimal performance
- **Build Command**: `npm run build`
- **Output Directory**: `dist/`
```bash
# Deploy to Vercel
vercel --prod
```
### Other Platforms
- **Netlify**: Drag and drop `dist/` folder
- **GitHub Pages**: Use GitHub Actions
- **Any Static Host**: Upload built files
## 🛠 Development
### Available Scripts
```bash
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
```
### Environment Variables
No environment variables required for basic functionality.
## 📄 License
This project is licensed under the MIT License.
## 🌐 Live Demo
Visit the live website: [Click!](https://melihilker-portfolio.vercel.app)
---
Built with ❤️ using React, TypeScript, and Tailwind CSSExplore similar templates
Compare previews and descriptions within the same stack and category.

Resumify
Resumify is a browser-based resume builder built with React, TypeScript, and Vite.
Vite · Portfolio

showlit
Showlit is a personal website template built with React, Vite, TypeScript, Tailwind CSS, and shadcn/ui.
Vite · Portfolio

folium
A developer portfolio template built with Vite, React, TypeScript, and Tailwind CSS.
Vite · Portfolio

kurizu-discord
A personal portfolio website built with React and Vite that mimics the Discord desktop app, organizing projects, skills, and experience into customizable channels, threads, a member list, and emoji reactions.
Vite · Portfolio

about-me-personal-portfolio-website-template
AboutMe is a free personal website template built with Bootstrap and Vite, released under the MIT license. It provides a single-page index.html with organized src directories for images, JavaScript, and SCSS, along with npm scripts for development and build.
Vite · Portfolio

HackFolio
HackFolio is a hacker-style personal portfolio template for ethical hackers, penetration testers, bug bounty hunters, red teamers, and cybersecurity professionals.
Vite · Portfolio
