Create your own interactive terminal-style portfolio in minutes—no coding required!
Live Demo: subhayu99.github.io
This repository uses a dual-branch strategy:
mainbranch (you are here) → Clean template with .example files onlypersonalbranch → Maintainer's actual portfolio (deployed to subhayu99.github.io)
For template users: You're in the right place! When you click "Use this template", you'll get this clean main branch.
For maintainers: See MAINTAINER_GUIDE.md for how to work with both branches.
- 🎨 Beautiful Terminal UI - Retro-style terminal interface with multiple themes
- 📱 Fully Responsive - Works perfectly on desktop, tablet, and mobile
- 🚀 Zero-Code Setup - Use visual resume builder, no programming needed
- 🤖 AI Resume Converter - Convert existing resumes to YAML with AI (built-in!)
- ⚡ Lightning Fast - Built with React and Vite for optimal performance
- 📄 Auto-Generated PDF - Your resume automatically converts to downloadable PDF
- 🎭 Multiple Themes - Matrix, Blue, Purple, Amber, Red, and more
- 🔍 Smart Search - Search across all your content instantly
- 📊 Interactive Commands - Explore your portfolio through terminal commands
- 💾 PWA Support - Installable as a progressive web app with offline capabilities
- 🔒 Secure - Built-in XSS protection and Content Security Policy
- ♿ Accessible - ARIA labels and keyboard navigation support
- 🔄 Auto-Deploy - Push changes to GitHub, site updates automatically
- 🎨 Custom Fields Support - Add any custom fields to personalize your resume beyond the standard schema
- 📂 Dynamic Sections - Create custom sections (certifications, awards, etc.) that become terminal commands automatically
Perfect for non-technical users! No installation of npm, Python, or any tools required.
Visit app.rendercv.com and create your resume using the visual builder:
- Fill in your information (name, email, experience, education, etc.)
- Add your skills, projects, and achievements
- Customize sections to match your background
- Download the YAML file when done
Time: ~5 minutes
Already have a resume? Skip the manual entry and let AI do the work!
🤖 Method 1: Built-in AI Resume Converter (Recommended)
After deploying your portfolio (Steps 2-4), you can use the built-in converter:
- Visit your live portfolio at
https://yourusername.github.io - Type
replicatein the terminal - Click "Get AI Conversion Prompt" button
- Copy the comprehensive prompt to your clipboard
- Paste it into ChatGPT, Claude, or Gemini along with your resume
- Get perfectly formatted
resume.yamloutput - Upload it to your repository to update your portfolio
Time: ~2 minutes | Benefit: Always uses the latest schema format!
📝 Method 2: Manual AI Conversion (Before Deployment)
If you want to prepare your resume before deploying:
- Open
resume.yaml.examplein the template repository - Copy its contents
- Use this prompt with ChatGPT, Claude, or Gemini:
I have my resume below. Please convert it to this YAML format: [Paste resume.yaml.example contents] Here's my resume: [Paste your resume text, PDF content, or LinkedIn profile] Please maintain all my information but structure it exactly like the example. - Copy the AI-generated YAML and save it as
resume.yaml
Why this works: AI excels at reformatting structured data. You get perfect YAML syntax without learning the format!
- Click the "Use this template" button at the top of this page
- Name your repository:
yourusername.github.io- Replace
yourusernamewith your GitHub username - This naming is important for GitHub Pages!
- Replace
- Choose Public visibility
- Click "Create repository"
Time: ~1 minute
Important: Do this BEFORE uploading your resume to avoid workflow errors!
- Go to Settings → Pages (in left sidebar)
- Under "Source", select "GitHub Actions"
- Go to Settings → Actions → General
- Under "Actions permissions", ensure actions are enabled
Time: ~1 minute
- In your new repository, click "Add file" → "Upload files"
- Drag and drop your
resume.yamlfile from Step 1 - Commit the file (click "Commit changes")
- The deployment will start automatically! Wait 2-5 minutes
Time: ~3 minutes (mostly waiting for deployment)
Your portfolio is now live at: https://yourusername.github.io
To update your information:
-
Option A: Edit on GitHub
- Go to your repository
- Click on
resume.yaml - Click the pencil icon to edit
- Make changes and commit
-
Option B: Use RenderCV again
- Update your resume at app.rendercv.com
- Download new YAML file
- Upload to replace old
resume.yaml
Your site will automatically rebuild and update within 2-5 minutes!
Visit your portfolio and use these commands in the terminal:
theme matrix # Green Matrix-style (default)
theme blue # Blue terminal
theme purple # Purple hacker theme
theme amber # Vintage amber monitor
theme red # Red alert themeThe theme is saved in your browser, so it persists across visits!
Create a custom ASCII art version of your name:
- Go to patorjk.com/software/taag
- Type your name and choose a font
- Copy the ASCII art
- Create
client/public/data/styled_name.txtin your repo - Paste the ASCII art and commit
Customize the neofetch output (the welcome banner):
- Create
client/public/data/neofetch.txtin your repo - Add your custom ASCII art and info
- See
client/public/data/neofetch.txt.examplefor inspiration
Customize the PWA (installable app) settings:
-
Copy
client/public/manifest.json.exampletoclient/public/manifest.json -
Edit the file:
{ "name": "Your Name - Terminal Portfolio", "short_name": "Your Portfolio", "description": "Your description here" } -
Commit the changes
Want to add extra information beyond the standard resume fields? You can add any custom fields AND any custom sections you want!
Examples of custom fields you can add:
social_networks:
- network: "LinkedIn"
username: "yourname"
profile_url: "https://linkedin.com/in/yourname" # ✨ Custom field!
verified: true # ✨ Custom field!
technologies:
- label: "Languages"
details: "JavaScript, TypeScript, Python"
proficiency_level: "Expert" # ✨ Custom field!
years_experience: 5 # ✨ Custom field!
experience:
- company: "Tech Company"
position: "Senior Engineer"
github_team: "tech-company/platform" # ✨ Custom field!
tech_stack: ["React", "Node.js", "AWS"] # ✨ Custom field!
team_size: 8 # ✨ Custom field!
education:
- institution: "University"
degree: "B.S. Computer Science"
gpa: 3.8 # ✨ Custom field!
honors: "Magna Cum Laude" # ✨ Custom field!
projects:
- name: "Cool Project"
date: "2024"
github_repo: "https://github.com/you/project" # ✨ Custom field!
live_url: "https://project.com" # ✨ Custom field!
tech_stack: ["React", "TypeScript"] # ✨ Custom field!
# 🆕 Dynamic Sections! Add ANY section you need:
certifications:
- name: "AWS Certified Solutions Architect"
date: "2024-03"
highlights:
- "Demonstrated expertise in designing distributed systems"
issuer: "Amazon Web Services" # ✨ Custom field!
certification_id: "AWS-PSA-12345" # ✨ Custom field!
awards:
- name: "Engineering Excellence Award"
date: "2024-01"
highlights:
- "Recognized for outstanding technical contribution"
awarded_by: "Tech Corp" # ✨ Custom field!
# Simple text entries also work!
languages:
- "English (Native)"
- "Spanish (Professional)"How it works:
- ✅ Custom Fields: Add any extra fields to standard sections - they appear in your portfolio automatically
- ✅ Dynamic Sections: Create new sections (like certifications, awards, languages) - they become terminal commands!
- ✅ Web Interface: Custom fields and sections are fully accessible in your terminal portfolio
- ✅ PDF Generation: Custom fields are automatically stripped for RenderCV compatibility
- ✅ Zero Errors: No manual management needed - it just works!
- ✅ Fully Backward Compatible: All existing resumes continue to work
Examples of dynamic sections you can add:
certifications- Professional certificationsawards- Awards and recognitionslanguages- Language proficienciesvolunteer_work- Volunteer experiencespeaking- Speaking engagementscourses- Online courses or training- Any section name you want!
See resume.yaml.example for more examples and inspiration!
Want full control? Clone the repository and customize everything!
- Node.js 18+ (download)
- npm or yarn
- Git
# Clone your repository
git clone https://github.com/yourusername/yourusername.github.io.git
cd yourusername.github.io
# Install dependencies
npm install
# Copy configuration files
cp template.config.yaml.example template.config.yaml
cp .env.example .env
cp client/public/manifest.json.example client/public/manifest.json
# Add your resume
# (Create resume.yaml using RenderCV or copy from examples/)
# Generate resume data
npm run generate-resume
# Start development server
npm run devVisit http://localhost:5173 to see your portfolio!
# Build the application
npm run build
# Preview production build
npm run previewSee the Advanced Guide for:
- Custom themes and colors
- Adding new terminal commands
- Modifying UI components
- API integrations
- Custom features
- Deployment Guide - How GitHub Actions deploys your site
- Advanced Guide - Full customization options
- Troubleshooting - Common issues and solutions
- RenderCV Docs - Resume YAML format reference
Once your portfolio is live, try these commands in the terminal:
| Command | Description |
|---|---|
help |
Show all available commands |
about |
Display introduction and quick links |
skills |
List technical skills and technologies |
experience |
Show work experience and roles |
education |
Display educational background |
projects |
Show professional projects |
personal |
Show personal projects |
publications |
Display publications (if available) |
timeline |
Show chronological timeline of all events |
contact |
Display contact information and social links |
resume |
Download resume PDF |
theme [name] |
Change terminal color theme |
replicate |
AI Resume Converter & portfolio setup guide |
neofetch |
Display system information |
search [query] |
Search across all portfolio content |
whoami |
Display your name and title |
ls |
List available commands (alias for help) |
pwd |
Print working directory |
cat [file] |
Display file contents |
clear |
Clear the terminal screen |
subhayu99.github.io/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── hooks/ # Custom hooks (terminal logic)
│ │ ├── lib/ # Utilities and themes
│ │ └── config/ # Configuration files
│ └── public/
│ ├── data/ # Generated resume data
│ └── icons/ # PWA icons
├── scripts/ # Build scripts
│ ├── generate-resume.js # Resume generation script
│ ├── generate-ai-prompt.js # AI conversion prompt generator
│ └── build.js # Smart build script
├── docs/ # Documentation
├── examples/ # Example resume files
├── .github/workflows/ # GitHub Actions workflows
├── resume.yaml # Your resume (create this!)
└── resume.config.yaml # Resume generation config
Found a bug? Have a feature idea? Contributions are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
- Built with React and Vite
- Resume generation powered by RenderCV
- Inspired by classic terminal interfaces and retro computing
- ASCII art from patorjk.com
If you found this template helpful, please consider:
- ⭐ Starring this repository
- 🐦 Sharing it on social media
- 🔗 Adding a link back to the template in your portfolio
- 💬 Spreading the word to friends and colleagues
Need help? Have questions?
- 📖 Check the Documentation
- 🐛 Open an Issue
- 💬 Start a Discussion
- 📧 Contact the maintainer
Made with ❤️ by developers, for developers
