OVERVIEW
Instead of a traditional portfolio, this project turns the browser into a terminal. Visitors can type help to see available commands, projects to list work, and contact to get social links. It’s a portfolio that developers immediately want to play with.
COMMANDS
help — list all available commands
projects — show all projects
about — display bio and skills
contact — show contact links
clear — clear the terminal
history — show command history
TECH_DECISIONS
No Frameworks
The terminal emulator is built entirely in vanilla JavaScript. No React, no Vue — just DOM manipulation and event listeners. The constraint forced clean, readable code and resulted in a near-instant load time.
Custom Command Parser
The command system uses a simple pattern: a Map of command names to handler functions. Commands support aliases (ls → projects), flags, and arguments. Tab completion iterates over the registered command names.
Vite as Build Tool
Vite handles module bundling and the dev server. The production build outputs a single HTML file with inlined styles — perfect for static hosting.
RESULTS
- Total page weight: 12KB (including all CSS)
- Load time: under 100ms on fast connections
- Became a conversation starter in interviews — most visitors spend 5+ minutes playing with it