Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/apursley2012/guest-portfolio.dev/llms.txt

Use this file to discover all available pages before exploring further.

Overview

These commands surface the actual portfolio content — bio, skills, career history, case studies, and a contact form — all rendered as rich React components inside the terminal window.

whoami / cat about.md

Syntax

whoami
cat about.md

Description

Both forms are handled by the same switch branch and render the AboutOutput component — a neofetch-inspired panel with an ASCII portrait on the left and a two-column info grid on the right.

Output

      .----.
    _.'__    '.
   .--($)($$)---/#\
 .' @          /###\        guest@portfolio.dev
:         ,   #####         -------------------
 '-..__.-' _.-\###/         OS:        Arch Linux x86_64 (btw)
        `;_:    `"'          Host:      Human Body v1.0
      .'""""".              Uptime:    28 years, 4 months, 12 days
     /,  ya ,\\             Packages:  1337 (npm), 42 (pip)
    //  hack!  \\           Shell:     zsh 5.8
    `-._______.-'           Editor:    nvim
    ___\_\__//___           Languages: TypeScript, Python, Rust, Go
   /___/____\___\           Coffee:    4 cups/day
                             Sleep:     Error: process not found
Below the info grid, a short bio paragraph is rendered in plain white text.
FieldValue
OSArch Linux x86_64 (btw)
HostHuman Body v1.0
Uptime28 years, 4 months, 12 days
Packages1337 (npm), 42 (pip)
Shellzsh 5.8
Editornvim
LanguagesTypeScript, Python, Rust, Go
Coffee4 cups/day
SleepError: process not found (rendered in red)

./skills.sh

Syntax

./skills.sh

Description

Executes the SkillsOutput component, which animates through 9 skills across three categories. Each bar appears one at a time at 150 ms intervals, giving a satisfying “loading” feel. Once all bars have rendered, a green completion message appears.

Skills Data

Each bar is 20 characters wide — filled blocks () for the proficiency level and dim empty blocks () for the remainder. Languages
SkillLevelBar
TypeScript90%██████████████████░░
Python85%█████████████████░░░
Rust60%████████████░░░░░░░░
Frameworks
SkillLevelBar
React95%███████████████████░
Node.js85%█████████████████░░░
Next.js80%████████████████░░░░
Tools
SkillLevelBar
Docker75%███████████████░░░░░
Git90%██████████████████░░
AWS70%██████████████░░░░░░

Example

./skills.sh
Executing skills.sh...

[Languages]
TypeScript   ██████████████████░░   90%
Python       █████████████████░░░   85%
Rust         ████████████░░░░░░░░   60%

[Frameworks]
React        ███████████████████░   95%
Node.js      █████████████████░░░   85%
Next.js      ████████████████░░░░   80%

[Tools]
Docker       ███████████████░░░░░   75%
Git          ██████████████████░░   90%
AWS          ██████████████░░░░░░   70%

Script execution completed successfully.

git log

Syntax

git log

Description

Renders the GitLogOutput component — three career entries formatted as authentic git commits, complete with hash, author, date, and an indented multi-line message body.
Only git log is handled. Any other git subcommand (e.g. git status, git diff) returns: git: '<subcommand>' is not a git command. See 'git --help'.

Example

git log
commit a1b2c3d
Author: guest <guest@portfolio.dev>
Date:   Mon Oct 24 09:00:00 2023 -0400

    feat(career): Senior Frontend Engineer at TechCorp

    - Led migration from Vue to React
    - Mentored 3 junior developers
    - Reduced bundle size by 40%

commit e4f5g6h
Author: guest <guest@portfolio.dev>
Date:   Wed Jun 15 10:30:00 2021 -0400

    feat(career): Full Stack Developer at StartupInc

    - Built MVP from scratch using Next.js and Node
    - Implemented CI/CD pipelines
    - Handled 10k daily active users

commit i7j8k9l
Author: guest <guest@portfolio.dev>
Date:   Mon Jan 10 08:15:00 2019 -0500

    feat(career): Junior Web Developer at AgencyLLC

    - Developed WordPress themes
    - Created responsive landing pages
    - Learned the hard way not to force push to main

man [page]

Syntax

man [page]

Description

Renders the ManOutput component for a named manual page. Currently one case study is available: migration-to-k8s, located at ~/case-studies/migration-to-k8s. The rendered page follows the classic Unix man page structure with a header bar, and sections: NAME, SYNOPSIS, DESCRIPTION, and CHALLENGES.

Available Pages

PageContent
migration-to-k8sCase study — moving a Rails monolith to Kubernetes microservices

Example

man migration-to-k8s
MIGRATION-TO-K8S(1)          User Commands          MIGRATION-TO-K8S(1)

NAME
        migration-to-k8s - A case study on moving a monolith to Kubernetes

SYNOPSIS
        migrate [OPTIONS] monolith microservices

DESCRIPTION
        The migration-to-k8s project involved breaking down a 5-year-old
        Ruby on Rails monolith into Go and Node.js microservices,
        orchestrated via Kubernetes.

        This resulted in a 40% reduction in infrastructure costs and
        improved deployment frequency from bi-weekly to multiple times
        a day.

CHALLENGES
        - Zero-downtime database migration using the strangler fig pattern.
        - Training the existing engineering team on container orchestration.
        - Setting up robust observability with Prometheus and Grafana.

Error Cases

No argument:
man
What manual page do you want?
Unknown page:
man unknown-topic
No manual entry for unknown-topic

mail [subject]

Syntax

mail [subject]
mail Hello there

Description

Opens an in-terminal vim-style email composer rendered by the MailOutput component. The editor has two modes — INSERT and NORMAL — and shows a status bar at the bottom, just like Vim.

Modes & Key Bindings

KeyModeEffect
ESCINSERT → NORMALSwitch to normal mode; status bar clears
iNORMAL → INSERTSwitch to insert mode; status bar shows -- INSERT --
:NORMALBegin a command (status bar shows :)
:wq + EnterNORMALSend the message; triggers SMTP simulation
:q! + EnterNORMALAbort; prints Message aborted.
BackspaceNORMAL (in : cmd)Delete last character of the command

Sending a Message

After :wq, the SMTP simulation sequence plays before the final confirmation:
Resolving mx records for portfolio.dev...
Connecting to smtp.portfolio.dev:587...
TLS connection established.
Authenticating...
Sending message...
Please wait...
Then, after ~2 seconds:
Message queued for delivery. Thank you!

Example

mail Saying hello
┌─────────────────────────────────────────────────────┐
│ To: guest@portfolio.dev        Subject: Saying hello │
│                                                      │
│ _                                                    │
│                                                      │
│                                                      │
│── INSERT ──────────── ESC for normal, :wq/:q! ──────│
└─────────────────────────────────────────────────────┘

theme [color]

Syntax

theme green
theme amber

Description

Switches the terminal’s CSS colour theme by updating the --color-primary custom property. Two values are accepted:
ValueEffect
greenClassic green phosphor CRT look
amberWarm amber phosphor CRT look

Example

theme amber
Theme set to amber
Invalid value:
theme blue
Usage: theme [green|amber]

clear

Syntax

clear

Description

Empties the terminal’s history array, wiping all previous command output from the screen. The prompt reappears at the top, clean. This is the only command that does not push a new history entry — it calls clearHistory() and returns immediately.

help

Syntax

help

Description

Renders a two-column CSS grid that lists every available command on the left (in green bold) and a one-line description on the right. This is the fastest way to get a quick-reference overview without leaving the terminal.

Example

help
help              Show this message
ls [dir]          List directory contents
cd [dir]          Change directory
cat [file]        Read file content
whoami            Display user info
./skills.sh       Execute skills script
git log           View work history
man [page]        Read case study manual
mail              Send a message
clear             Clear terminal
theme [color]     Change theme (green/amber)

Build docs developers (and LLMs) love