Skip to main content

What is Arman’s Living Room?

Arman’s Living Room is a personal portfolio website that reimagines the traditional personal homepage with an interactive, terminal-inspired interface. Instead of clicking through navigation menus, visitors can use Unix-like commands to explore content, creating a unique and memorable experience.
The website offers both a CLI (Command Line Interface) and a Windows 98-inspired GUI alternative for different browsing preferences.

Key Features

Interactive CLI Interface

The main interface mimics a Unix terminal where visitors can:
  • Execute commands like ls, cat, cd, whoami
  • Read files using cat experience.txt or cat socials.txt
  • Navigate to sections using cd thoughts
  • Create and remove files with touch and rm commands
  • Access the GUI alternative with ./gui.app

Retro GUI Alternative

For users who prefer a graphical interface, the site includes a Windows 98-style desktop environment featuring:
  • Draggable and resizable windows
  • Desktop icons and taskbar
  • Notepad-style text viewers
  • Retro aesthetic with authentic Win98 styling
  • Accessible at /gui and /desktop routes

Personal Content Sections

  • Profile Information: Introduction, location, and current work
  • Experience: Work history and internship details
  • Social Links: Twitter, GitHub, LinkedIn connections
  • Thoughts: Personal blog with long-form writing
  • Dynamic Content: Fun Easter eggs like random cat images
  • Talk Page (currently disabled): Anonymous message submission form at /talk

Tech Stack

The project is built with modern web technologies:

Frontend Framework

package.json
{
  "dependencies": {
    "next": "^16.1.6",
    "react": "^19.2.4",
    "react-dom": "^19.2.4"
  }
}
  • Next.js 16: Latest version with App Router for modern React patterns
  • React 19: Cutting-edge React features and performance improvements
  • TypeScript: Full type safety across the codebase

Styling & UI

  • Tailwind CSS 4: Utility-first CSS with latest v4 features
  • Geist Mono Font: Clean, monospace typography for the terminal aesthetic
  • Lucide React: Icon library for UI elements
  • Dark Mode: Dark theme with #0f0f0f background for reduced eye strain

Backend & Data

  • Supabase: Backend-as-a-service for data storage and authentication
  • @supabase/ssr: Server-side rendering support for Supabase
  • Server Components: Leveraging Next.js 16 server component architecture

Project Structure

The codebase follows Next.js 16 App Router conventions:
src/
├── app/
│   ├── page.tsx              # Main CLI interface homepage
│   ├── layout.tsx            # Root layout with fonts and metadata
│   ├── actions.ts            # Server actions (message submission)
│   ├── gui/
│   │   ├── page.tsx          # GUI version entry point
│   │   └── mini-desktop.tsx  # Windows 98 desktop component
│   ├── desktop/
│   │   └── page.tsx          # Alias for GUI interface
│   ├── thoughts/
│   │   ├── page.tsx          # Blog listing page
│   │   └── [id]/page.tsx     # Individual blog posts
│   ├── talk/
│   │   └── page.tsx          # Anonymous message form (currently disabled)
│   └── api/
│       └── cron/
│           └── route.ts      # Cron endpoint for Supabase connectivity
├── components/
│   └── cli.tsx               # Main CLI component with command logic
└── utils/
    └── supabase/
        └── server.ts         # Supabase server client configuration

Design Philosophy

The website embraces several key design principles:
  1. Interactive Experience: Users actively explore rather than passively scroll
  2. Nostalgic Aesthetic: Terminal and Windows 98 interfaces evoke computing history
  3. Technical Showcase: The implementation itself demonstrates development skills
  4. Playful Design: Easter eggs and fun interactions create memorable moments
  5. Accessibility Options: Multiple interfaces (CLI + GUI) accommodate different preferences

Core Implementation

The CLI component at the heart of the experience (src/components/cli.tsx:54) handles:
  • Command parsing and execution
  • File system simulation with virtual files
  • Command history (Arrow Up to recall last command)
  • Auto-scrolling to latest output
  • Error handling for invalid commands
The CLI supports 11 built-in commands including whoami, ls, help, cd, cat, clear, touch, rm, reset, and executable apps like ./gui.app.
Visitors can interact with a simulated file system that includes real personal information stored in virtual files like experience.txt, socials.txt, and a thoughts directory.

Build docs developers (and LLMs) love