An interactive terminal-style portfolio built with Next.js. Visitors explore skills, experience, projects, and more through a CLI interface.
- Terminal UI with macOS-style window chrome (traffic light dots, title bar)
- Animated boot sequence on load
- Interactive command input with autocomplete suggestions
- Sidebar file tree navigation (desktop)
- Mobile-friendly bottom nav bar
- Multiple color themes (including CRT and Matrix effects)
- Responsive layout with max-width constraint for ultrawide screens
- Neofetch-style profile hero with animated stats and skill bars
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Font: JetBrains Mono
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm startOpen http://localhost:3000 to view the site.
Type help in the terminal to see all available commands, including:
about- About meskills- Technical skillsexperience- Work historyeducation- Academic backgroundprojects- Project showcasecerts- Certificationscontact- Contact informationneofetch- System-style profile summarytheme- Change color themesocial- Social linkslanguages- Programming languagesresume- Download resumewhoami- Current userdate- Current date/timeecho- Echo texthistory- Command historyclear- Clear terminal output
deploy/ # Dockerfile and build scripts
public/ # Static assets (images, robots.txt, sitemap)
src/
├── app/
│ ├── globals.css
│ ├── icon.svg
│ ├── layout.tsx
│ ├── not-found.tsx
│ └── page.tsx
├── components/
│ ├── effects/
│ │ ├── BootSequence.tsx
│ │ ├── CRTEffect.tsx
│ │ ├── MatrixRain.tsx
│ │ └── TypingAnimation.tsx
│ ├── terminal/
│ │ ├── CommandSuggestions.tsx
│ │ ├── ProfileHero.tsx
│ │ ├── Terminal.tsx
│ │ ├── TerminalInput.tsx
│ │ ├── TerminalOutput.tsx
│ │ └── TerminalPrompt.tsx
│ └── ui/
│ ├── MobileNav.tsx
│ ├── Sidebar.tsx
│ └── StatusBar.tsx
├── context/
│ └── TerminalContext.tsx
├── hooks/
│ ├── useAutocomplete.ts
│ ├── useCommandHistory.ts
│ ├── useTerminal.ts
│ ├── useTheme.ts
│ └── useTypingAnimation.ts
├── lib/
│ ├── commands/
│ │ ├── index.ts
│ │ ├── parser.ts
│ │ ├── registry.ts
│ │ ├── types.ts
│ │ ├── about.ts
│ │ ├── certs.ts
│ │ ├── contact.ts
│ │ ├── education.ts
│ │ ├── experience.ts
│ │ ├── help.ts
│ │ ├── neofetch.ts
│ │ ├── projects.ts
│ │ ├── skills.ts
│ │ ├── system.ts
│ │ └── theme.ts
│ └── data/
│ ├── ascii-art.ts
│ ├── profile.ts
│ └── themes.ts
└── types/
└── terminal.ts
docker build -f deploy/Dockerfile -t krishan-run .
docker run -p 3000:3000 krishan-run