A unique, interactive terminal-based portfolio website that showcases skills through an actual working Linux-style terminal interface powered by AI.
- 🖥️ Authentic Terminal Experience: Boot sequence, command line interface, and real terminal aesthetics
- 🤖 AI-Powered Natural Language Processing: Ask questions in plain English, powered by Google's Gemini API
- ⚡ Lightning Fast: Built with React + Vite for blazing-fast performance
- 🎨 Beautiful Design: Catppuccin Mocha color theme with Fira Code font
- 📱 Fully Responsive: Works seamlessly on desktop, tablet, and mobile
- 🔧 Interactive Commands: Type commands like a real terminal or ask natural questions
- Frontend: React 18, Vite
- Backend: Node.js, Express
- AI: Google Gemini API
- Styling: Pure CSS with custom terminal theme
- Deployment: Vercel (with serverless functions)
- Font: Fira Code
-
Clone the repository
git clone <your-repo-url> cd portfolio
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Edit
.envand add your Gemini API key:GEMINI_API_KEY=your_api_key_hereGet your free API key from: https://makersuite.google.com/app/apikey
-
Run the development servers
Terminal 1 - Frontend:
npm run dev
Terminal 2 - Backend (AI Orchestrator):
npm run server
-
Open your browser
http://localhost:3000
Type any of these commands in the terminal:
help- Show all available commandsabout- Learn about meskills- View my technical skillsprojects- List all projectsprojects view <name>- View detailed project informationcontact- Get contact informationclear- Clear the terminal screenexit- Try to exit (spoiler: you can't 😏)
Or just ask questions naturally!
- "What are your skills?"
- "Tell me about your projects"
- "How can I contact you?"
-
Install Vercel CLI
npm i -g vercel
-
Deploy
vercel
-
Add environment variable
- Go to your Vercel dashboard
- Select your project
- Go to Settings → Environment Variables
- Add
GEMINI_API_KEYwith your API key
-
Redeploy
vercel --prod
The app can be deployed to any platform that supports:
- Static site hosting (for the React frontend)
- Serverless functions or Node.js hosting (for the AI backend)
Edit src/data/portfolioData.js to customize:
- Your name and username
- About section
- Skills list
- Projects
- Contact information
Edit CSS variables in src/index.css:
:root {
--base: #1e1e2e;
--text: #cdd6f4;
--green: #a6e3a1;
/* ... more colors */
}Add or modify commands in src/utils/commandHandler.js
The AI orchestrator maps natural language to commands. Configure it in api/orchestrator.js:
- Adjust the system prompt
- Modify the fallback keyword matching
- Change the AI model or provider
Customize terminal behavior in src/components/Terminal.jsx:
- Boot sequence duration
- Command history size
- Auto-scroll behavior
The terminal is fully responsive and works on mobile devices. Special considerations:
- Touch-optimized input
- Responsive font sizes
- Adjusted layout for small screens
Feel free to fork this project and customize it for your own portfolio!
MIT License - feel free to use this for your own portfolio!
- Color scheme: Catppuccin
- Font: Fira Code
- AI: Google Gemini
Built with ❤️ by ultrabot
This portfolio itself demonstrates the skills it describes - it's a full-stack React app with AI orchestration!