ReactPortfolio

Linux-Portfolio — React Portfolio Template

By prasadkjose

A developer portfolio website themed around a Linux desktop environment, built with React and TypeScript, showcasing projects, resume, and contact information through terminal commands and window interactions.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-13View source

What stands out

A quick read of the recorded project description.

01

Uses a Linux desktop as the interface metaphor, with switchable themes for Ubuntu, Kali, and Fedora distributions

02

Built-in terminal supports TAB/Ctrl+i autocompletion and up/down arrow key command history

03

Provides a command set including about, projects, resume, socials, email, and education

04

Resume changes with the distribution theme, corresponding to consulting, information security, and software development tracks

05

Includes a taskbar with clock, calendar, system announcements, and a widget panel

06

Uses Supabase for visitor statistics and session tracking, and a serverless function to proxy GitHub GraphQL requests

Template Details

This is a front-end project that turns a personal portfolio into a Linux desktop simulator. When the page loads, it presents a Linux-like desktop interface where users can switch between three distribution themes: Ubuntu, Kali, and Fedora, with the interface colors and style changing accordingly. The core interaction is a built-in terminal that supports TAB or Ctrl+i autocompletion, up and down arrow keys to browse command history, and provides commands such as about, help, projects, resume, socials, email, education, and clear to open the corresponding content. The project also offers a graphical taskbar with a clock, calendar, system announcements, and a widget panel. Resume content is tied to the distribution theme: Ubuntu corresponds to a consulting track, Kali to an information security track, and Fedora to a software development track. Technically, it uses TypeScript, React, Vite, and Styled Components, and includes Supabase database integration for visitor statistics and session tracking (according to the README, it only records visit counts and country locations, not IP addresses), as well as a serverless function that proxies GraphQL requests to store the GitHub token on the server side. The repository provides a Dockerfile for containerized deployment and includes a Netlify deployment status badge. The project is based on a fork of Kali-Linux-Hacker-Portfolio and is licensed under MIT.

ReactPortfolio

Is it right for your project?

Use Cases

  • Developers who want to present personal projects and resume through terminal-style interaction
  • Job-seeking portfolios that need to display resumes for multiple career tracks simultaneously
  • As a UI reference project for learning React, TypeScript, and Styled Components
  • Running a static portfolio site in a container locally or on a server using Docker

Suitable For

  • Developers with React and TypeScript basics who want to customize an existing portfolio template
  • Authors of personal sites who prefer a command-line interaction style and want to highlight technical attributes
  • Those who need a portfolio source code with switchable themes and resume versions as a starting point

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Requires Node.js 16 or higher; pnpm is recommended, but npm can also be used

  2. 2

    For local development, run pnpm install then pnpm dev, accessible by default at http://localhost:3000

  3. 3

    Docker method: docker build -t prasad-portfolio . then run the container and map port 3000

  4. 4

    Supabase and GitHub token related configurations need to be prepared according to the instructions in the serverless directory within the repository

  5. 5

    Third-party assets such as demo images, fonts, and icons need their licenses checked separately; the MIT license covers only the code

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version of the public repository under the MIT license; the free scope applies to that version's code and does not imply that external services or third-party assets are free.

Must comply with when using

  • The code of this version may be used, modified, commercially used, and distributed for free.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full 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 against 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.
  • Visitor statistics, session tracking, and data persistence rely on a Supabase PostgreSQL database; you need to register for Supabase and configure the connection yourself, which is an external service dependency.
  • Fetching GitHub pinned repositories requires deploying a serverless function and configuring a GitHub token, which involves external services and API key requirements.
  • The project is a fork of Kali-Linux-Hacker-Portfolio and continues from upstream code; usage must also comply with the upstream project's license and attribution requirements.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

__Supabase Database Integration__: Built-in visitor analytics, session tracking and persistent data storage using Supabase PostgreSQL database.

Original README

__Serverless Function__: A backend function proxies GraphQL API calls (GitHub fetching pinned repos for now) to keep the token server-side.

Original README

This project is based on a fork of [Kali-Linux-Hacker-Portfolio](https://github.com/jihedkdiss/Kali-Linux-Hacker-Portfolio).

Original README
https://github.com/prasadkjose/Linux-Portfolio/blob/main/LICENSEhttps://github.com/prasadkjose/Linux-Portfolio/blob/main/README.md

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 · 83 / 100
Technologies
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-07-29
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 React 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: 0f640034860cfe86a9906ee8341ea00342514056a8921fe5cc053b34229f6f64

2026-10-13T03:23:02.450Z

Source file / repository
# Linux-like Portfolio Website

[![Netlify Status](https://api.netlify.com/api/v1/badges/9818157c-d810-4ad6-b218-038707143a3c/deploy-status?style=flat-square)](https://app.netlify.com/sites/prasadkjose/deploys)
[![License](https://img.shields.io/github/license/prasadkjose/Kali-Linux-Portfolio?style=flat-square)](LICENSE)
[![Repo Size](https://img.shields.io/github/repo-size/prasadkjose/Kali-Linux-Portfolio?style=flat-square)](https://github.com/prasadkjose/Kali-Linux-Portfolio)
[![Top Language](https://img.shields.io/github/languages/top/prasadkjose/Kali-Linux-Portfolio?style=flat-square)](https://github.com/prasadkjose/Kali-Linux-Portfolio)

[![Live Demo](https://img.shields.io/badge/View%20Live%20Demo-prasadkjose.com-17BB98?style=for-the-badge)](https://prasadkjose.com)

My developer portfolio website themed after Linux, built with React & TypeScript, simulating a Linux desktop environment to showcase projects, resume, and contact information.

## 🚀 Features

- **Linux Desktop Experience**: With Linux themes and colours. Choose between Ubuntu, Kali and Fedora distros at any time and see the UI change. 
- **Interactive Terminal**: Built-in Linux Terminal for you command line junkies with autocomplete (TAB/Ctrl+i) and command history (Up/Down)
- **Rich Command Set**: Navigate through `about`, `help`, `projects`, `resume`, `socials`, `email`, `education`, and more
- **Keyboard-First Design**: Type commands, open windows, toggle fullscreen for optimal developer experience
- **Responsive Design**: Works seamlessly across desktop, tablet, and mobile devices
- **Dynamic Resume**: Choose between Ubuntu, Kali, and Fedora themes to view different professional resumes - Ubuntu shows Consultant resume, Kali shows Information Security resume, and Fedora shows SDE resume
- __Resource Preloading__: Critical assets are preloaded after the splash screen for faster subsequent renders.
- __Supabase Database Integration__: Built-in visitor analytics, session tracking and persistent data storage using Supabase PostgreSQL database. Handles anonymous visitor metrics securely with row level security. **Tracks only visitor counts and country location, no IP addresses are stored or logged.**
- __Serverless Function__: A backend function proxies GraphQL API calls (GitHub fetching pinned repos for now) to keep the token server-side. Look at [serverless/readme](src/serverless/README.md)
- __Docker Support__: Dockerfile included for containerized deployment.
- **Modern Taskbar**: Fully featured desktop taskbar with clock, calendar, system announcements and widget panel. See [Taskbar Documentation](src/layout/taskbar/README.md) for full details.

## 🛠️ Tech Stack

[![TypeScript](https://img.shields.io/badge/TypeScript-3.9%2B-blue?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![React](https://img.shields.io/badge/React-17%2B-%2361DAFB?style=flat-square&logo=react&logoColor=white)](https://reactjs.org/)
[![Vite](https://img.shields.io/badge/Vite-%40vitejs-%23646cff?style=flat-square&logo=vite)](https://vitejs.dev/)
[![Styled Components](https://img.shields.io/badge/Styled--Components-102029?style=flat-square&logo=styled-components&logoColor=white)](https://styled-components.com/)
[![Supabase](https://img.shields.io/badge/Supabase-Database-3ECF8E?style=flat-square&logo=supabase&logoColor=white)](https://supabase.com/)

## 📦 Installation & Setup

### Prerequisites

- Node.js (version 16 or higher)
- pnpm (recommended) or npm

### Local Development

1. **Clone the repository:**
   ```bash
   git clone https://github.com/prasadkjose/Linux-Portfolio.git
   cd Linux-Portfolio
   ```
2. **Install dependencies:**
   ```bash
   # Using pnpm (recommended)
   pnpm install
   
   # Or using npm
   npm install
   ```

3. **Start development server:**
   ```bash
   pnpm dev
   ```

4. **Open your browser:**
   Navigate to `http://localhost:3000` to view the portfolio

### Docker Setup

For containerized development:

```bash
# Build the Docker image
docker build -t prasad-portfolio .

# Run the container
docker run -p 127.0.0.1:3000:3000 prasad-portfolio
```

## 🎯 Usage

Once the application is running, you'll be greeted with a Linux-style desktop interface. Here are some commands you can try:

- `help` - Display available commands
- `about` - Learn about the developer
- `projects` - View featured projects
- `resume` - Access the professional resume
- `socials` - View social media links
- `email` - Get contact information
- `education` - View educational background
- `clear` - Clear the terminal output

### Keyboard Shortcuts

- **TAB** or **Ctrl+i** - Autocomplete commands
- **Up/Down Arrow** - Navigate command history
- **F11** - Toggle fullscreen mode

## 🤝 Contributing

We welcome contributions! Here's how to get started:

1. **Fork the repository** on GitHub
2. **Clone your fork** locally
3. **Create a feature branch** with a descriptive name
4. **Make your changes** following our coding standards
5. **Test your changes** thoroughly
6. **Submit a pull request** with a clear description

### Development Guidelines

- Use TypeScript for type safety
- Follow the existing code style and patterns
- Add appropriate comments for complex logic
- Ensure responsive design across all screen sizes
- Test in multiple browsers

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 👥 Author

**Prasad Koshy Jose**

[![Website](https://img.shields.io/badge/Website-prasadkjose.com-17BB98?style=for-the-badge)](https://prasadkjose.com)
[![LinkedIn](https://img.shields.io/badge/LinkedIn-%230A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/prasadkjose)
[![X / Twitter](https://img.shields.io/badge/X-%231DA1F2?style=for-the-badge&logo=x&logoColor=white)](https://x.com/prasadkjose)

## 🙏 Acknowledgements

This project is based on a fork of [Kali-Linux-Hacker-Portfolio](https://github.com/jihedkdiss/Kali-Linux-Hacker-Portfolio). I would like to thank the original authors and contributors for their excellent work and for making the project open source.

This fork builds upon their work with additional modifications and improvements to better showcase my professional portfolio.

## 📊 Project Statistics

- **Languages**: TypeScript, React, CSS-in-JS with styled components.
- **Framework**: React 17+
- **Build Tool**: Vite
- **Package Manager**: pnpm (recommended)
- **License**: MIT

## 🔗 Quick Links

- [Live Demo](https://prasadkjose.com)
- [GitHub Repository](https://github.com/prasadkjose/Linux-Portfolio)
- [Issues](https://github.com/prasadkjose/Linux-Portfolio/issues)
- [Pull Requests](https://github.com/prasadkjose/Linux-Portfolio/pulls)

---

**Built with ❤️ using React & TypeScript**
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

react-portfolio-template

react-portfolio-template

A React-based developer portfolio template for showcasing projects, work history, and skills. It offers a multi-component layout, dark and light modes, and responsive mobile adaptation, with text and images editable in src/components.

React · Portfolio

personal-website-react

personal-website-react

A single-page developer portfolio template built with React and Material-UI, driven by a JSON Resume-compliant resume.json. It offers light/dark theme switching with localStorage persistence, a clean responsive layout, and Create React App tooling for simple builds and static deployment.

React · Portfolio

karngyan.com

karngyan.com

A personal website and blog template for developers, built with TanStack Start, React 19, Tailwind CSS v4, and shadcn/ui. It uses MDX for articles with Shiki highlighting and GFM tables, and automatically generates RSS, sitemap, robots.txt, llms.txt, and OG images.

React · Portfolio

react-portfolio-template

react-portfolio-template

A React portfolio template by Ryan Balieiro with a fixed sidebar and page-turn transitions on desktop, bottom navigation on mobile, multilingual support, light/dark themes, and content components for experience, education, skills, projects, and testimonials.

React · Portfolio

portfolio

portfolio

A data scientist personal portfolio template built with React and MUI, with content centrally managed through configuration files in the assets directory.

React · Portfolio

react-portfolio

react-portfolio

A React 16 and Material-UI developer portfolio template that centralizes personal information in a JSON Resume-compliant resume.json, with light/dark theme switching saved to local storage. It currently provides portfolio display only; resume page templates and structured data enhancements are still planned.

React · Portfolio