Skip to main content
This guide will help you clone, install, and run the project on your local machine.

Prerequisites

Before you begin, ensure you have the following installed:
  • Node.js: Version 18 or higher
  • Package Manager: npm, pnpm, or yarn
  • Git: For cloning the repository

Installation

1

Clone the repository

Clone the project from GitHub:
git clone https://github.com/armans-code/me.git
cd me
The repository is available at armank.dev - check the GitHub profile at @armans-code for the source code.
2

Install dependencies

Install the required packages using your preferred package manager:
npm install
The project includes these key dependencies:
package.json
{
  "dependencies": {
    "@supabase/ssr": "^0.8.0",
    "@supabase/supabase-js": "^2.97.0",
    "lucide-react": "^0.575.0",
    "next": "^16.1.6",
    "react": "^19.2.4",
    "react-dom": "^19.2.4"
  }
}
3

Configure environment variables (Optional)

If you want to use Supabase features, create a .env.local file:
touch .env.local
Add your Supabase credentials:
.env.local
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
Supabase is optional for basic functionality. The CLI and GUI interfaces work without it. It’s primarily used for backend features like the anonymous notes functionality.
4

Start the development server

Run the development server:
npm run dev
You should see output similar to:
▲ Next.js 16.1.6
- Local:        http://localhost:3000
- Environments: .env.local

✓ Starting...
✓ Ready in 2.3s
5

Open in your browser

Navigate to http://localhost:3000 to see the CLI interface:CLI InterfaceThe homepage displays:
  • Personal introduction
  • Social links (Twitter, GitHub, LinkedIn)
  • Interactive CLI component at the bottom

Exploring the CLI

Once the site is running, try these commands in the CLI:

Basic Commands

help
Displays all available commands
whoami
Shows the current user (returns “arman”)
ls
Lists all available files and directories:
  • thoughts (directory)
  • experience.txt
  • socials.txt
  • gui.app

Reading Files

cat experience.txt
Displays work experience and internship history:
mintlify (w22):
 - software engineer intern (may 2025 - august 2025)
 - Next.js, MongoDB, Express

apten (s24):
 - software engineer intern (may 2024 - july 2024)
 - Next.js, LangChain, AWS CDK
...
cat socials.txt
Shows social media links:
twitter: ksw_arman
github: armans-code
linkedin: armankumaraswamy
cd thoughts
Navigates to the thoughts (blog) section
./gui.app
Opens the Windows 98-style GUI version of the site

Fun Commands

touch kitty.jpg
Creates a new file with a random cat image from the cataas.com API!
rm kitty.jpg
Removes the file you just created
clear
Clears the terminal output
reset
Resets the file system to its initial state
Press Arrow Up to recall your last command - just like a real terminal!

Exploring the GUI

Switch to the GUI interface by:
  1. Running ./gui.app in the CLI, or
  2. Navigating directly to http://localhost:3000/gui
The GUI features:
  • Desktop icons you can single-click to select and double-click to open
  • Draggable windows with authentic Windows 98 styling
  • Resizable windows using the bottom-right corner handle
  • Taskbar showing open windows
  • Terminal icon that links back to the CLI version

Project Structure Overview

Key files you might want to explore:
📁 src/
├── 📁 app/
│   ├── 📄 page.tsx              # Main homepage with CLI
│   ├── 📄 layout.tsx            # Root layout, metadata, fonts
│   ├── 📁 gui/
│   │   ├── 📄 page.tsx          # GUI version wrapper
│   │   └── 📄 mini-desktop.tsx  # Windows 98 desktop logic
│   ├── 📁 thoughts/
│   │   ├── 📄 page.tsx          # Blog listing
│   │   └── 📄 [id]/page.tsx     # Individual blog posts
│   └── 📁 api/
├── 📁 components/
│   └── 📄 cli.tsx               # CLI component with all commands
└── 📁 utils/
    └── 📁 supabase/
        └── 📄 server.ts         # Supabase client setup

Understanding the CLI Component

The CLI component (src/components/cli.tsx) is the heart of the interactive experience:
src/components/cli.tsx
const INITIAL_FILES = [
  {
    name: "thoughts",
    content: "run 'cd thoughts' to see my thoughts on various topics",
  },
  {
    name: "experience.txt",
    content: "mintlify (w22):\n - software engineer intern...",
  },
  {
    name: "socials.txt",
    content: "twitter: ksw_arman\ngithub: armans-code...",
  },
  {
    name: "gui.app",
    content: "run './gui.app' to open the GUI version",
  },
];
The component maintains:
  • Message history: All inputs and outputs
  • Virtual file system: Simulated files you can interact with
  • Command parser: Handles 11+ different commands
  • State management: Tracks files, messages, and user input

Next Steps

Now that you have the project running:
  1. Customize the content: Edit INITIAL_FILES in src/components/cli.tsx to personalize the files
  2. Add new commands: Extend the command switch statement to add your own commands
  3. Modify the styling: Update Tailwind classes or globals.css to change the look
  4. Add blog posts: Create new pages in src/app/thoughts/ for your writing
  5. Deploy: The project includes a vercel.json and is ready for Vercel deployment

Available Scripts

Defined in package.json:
{
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  }
}
  • dev: Start development server on port 3000
  • build: Create optimized production build
  • start: Run production server
  • lint: Run ESLint to check code quality

Building for Production

When you’re ready to deploy:
npm run build
This creates an optimized production build in .next/. You can then deploy to Vercel, Netlify, or any platform that supports Next.js.
The project is already configured for Vercel deployment with vercel.json included.

Troubleshooting

Port Already in Use

If port 3000 is already in use, you can specify a different port:
npm run dev -- -p 3001

Module Not Found Errors

Ensure all dependencies are installed:
rm -rf node_modules package-lock.json
npm install

TypeScript Errors

The project uses TypeScript 5.9.3. If you encounter type errors, check your Node.js version is 18+:
node --version

Get Help

If you run into issues:

Build docs developers (and LLMs) love