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
Clone the repository
Clone the project from GitHub:
The repository is available at armank.dev - check the GitHub profile at @armans-code for the source code.
Install dependencies
Install the required packages using your preferred package manager:The project includes these key dependencies:
package.json
Configure environment variables (Optional)
If you want to use Supabase features, create a Add your Supabase credentials:
.env.local file:.env.local
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.
Open in your browser
Navigate to http://localhost:3000 to see the CLI interface:
The homepage displays:
The 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
thoughts(directory)experience.txtsocials.txtgui.app
Reading Files
Navigation
Fun Commands
Press Arrow Up to recall your last command - just like a real terminal!
Exploring the GUI
Switch to the GUI interface by:- Running
./gui.appin the CLI, or - Navigating directly to http://localhost:3000/gui
- 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:Understanding the CLI Component
The CLI component (src/components/cli.tsx) is the heart of the interactive experience:
src/components/cli.tsx
- 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:- Customize the content: Edit
INITIAL_FILESinsrc/components/cli.tsxto personalize the files - Add new commands: Extend the command switch statement to add your own commands
- Modify the styling: Update Tailwind classes or
globals.cssto change the look - Add blog posts: Create new pages in
src/app/thoughts/for your writing - Deploy: The project includes a
vercel.jsonand is ready for Vercel deployment
Available Scripts
Defined inpackage.json:
dev: Start development server on port 3000build: Create optimized production buildstart: Run production serverlint: Run ESLint to check code quality
Building for Production
When you’re ready to deploy:.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:Module Not Found Errors
Ensure all dependencies are installed:TypeScript Errors
The project uses TypeScript 5.9.3. If you encounter type errors, check your Node.js version is 18+:Get Help
If you run into issues:- Check the Next.js documentation
- Review the source code on GitHub
- Reach out via Twitter or LinkedIn