Personal site (https://bnied.dev)
  • JavaScript 83.8%
  • CSS 15.5%
  • HTML 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-12 06:30:46 +02:00
assets Initial commit: terminal-aesthetic personal website 2026-04-11 15:53:44 -07:00
css feat: xload, xcalc, checkerboard root, authentic X exit 2026-07-11 21:26:51 -07:00
data k8s --> Kubernetes 2026-07-05 19:24:48 -07:00
fonts feat: accurate Netscape 3.x chrome with working menu bar 2026-07-05 18:29:04 -07:00
img feat: add 'cat pictures' easter egg 2026-04-13 11:21:45 -07:00
js feat: xload, xcalc, checkerboard root, authentic X exit 2026-07-11 21:26:51 -07:00
test feat: xload, xcalc, checkerboard root, authentic X exit 2026-07-11 21:26:51 -07:00
vendor/js-dos feat: self-host js-dos 8.4.0 instead of loading from CDN 2026-07-06 08:45:29 -07:00
.gitignore chore: gitignore .superpowers/ brainstorm scratch 2026-06-02 15:49:13 -07:00
apple-touch-icon.png Initial commit: terminal-aesthetic personal website 2026-04-11 15:53:44 -07:00
favicon.ico Initial commit: terminal-aesthetic personal website 2026-04-11 15:53:44 -07:00
favicon.svg Initial commit: terminal-aesthetic personal website 2026-04-11 15:53:44 -07:00
index.html feat: add crt command (off/on/max) with persistence + pre-paint apply 2026-06-02 16:00:04 -07:00
LICENSE.txt feat: startx boots an X11 session — twm, Netscape 3.x, xclock, xeyes 2026-07-04 23:44:50 -07:00
package.json feat: extract pure cowsayText core + node test harness 2026-06-02 12:18:16 -07:00
README.md docs: note self-hosted js-dos in README 2026-07-06 11:31:31 -07:00

bnied.dev

Personal website with a CRT terminal aesthetic. Visitors interact via a command prompt to explore resume content, run easter eggs, and play DOOM.

Commands

Command Description
about Bio and certifications
skills Technical expertise
experience Work history overview
experience <role> Drill into a specific role
projects Open-source projects
education Academic background
contact Email, GitHub, LinkedIn
resume Download a PDF resume, typeset client-side from live site data (no libraries; cat resume.txt for plain text)
theme <name> Switch color theme (green, amber, blue, high-contrast, colorblind)
figlet <text> Render big ASCII banner text
lolcat Rainbow-colorize output (best at the end of a pipe)
crt CRT effect intensity: off / on / max (persists)
help List all commands

Easter Eggs

Too many to list. Try some Linux commands and see what happens.

Pipes

Commands compose with | just like a real shell:

fortune | cowsay
figlet bnied | lolcat
echo hello | figlet | lolcat
cat about | cowsay
neofetch | lolcat

Pipeable commands: echo, fortune, cat <section>, figlet, cowsay, lolcat, neofetch, ls, uname, whoami, pwd, hostname, date, uptime, ps, free, df, yes, dmesg.

CRT effects

The phosphor-CRT look has three intensity levels, set with crt:

  • crt off — flat, plain terminal (max readability / low power)
  • crt on — default: curvature, bloom, glare, scanlines, phosphor afterglow
  • crt max — adds edge chromatic aberration and an occasional sync-roll

The choice persists across visits (localStorage). All levels honor prefers-reduced-motion: animations freeze, the static look remains, and the boot sequence collapses to near-instant.

Tech Stack

  • Vanilla HTML, CSS, JavaScript -- no frameworks, no build step
  • Fira Code font
  • js-dos for DOOM (self-hosted in vendor/js-dos/, loaded on demand)
  • Content stored in data/*.json, logic split across ES modules in js/

Structure

.
├── index.html
├── css/style.css
├── js/
│   ├── main.js              # entry point
│   ├── commands.js          # command dispatch
│   ├── pipeline.js          # pipe engine
│   ├── data.js              # loads JSON assets
│   └── easter-eggs/         # easter-egg handlers
├── data/
│   ├── sections.json        # resume sections
│   ├── experience.json      # per-role details
│   ├── help.json            # command help text
│   ├── fortunes.json        # fortune quotes
│   ├── ascii.json           # ASCII art assets
│   ├── easter-eggs.json     # easter egg data
│   └── figlet-font.json     # block font for figlet
├── assets/
│   └── doom.jsdos           # DOOM shareware bundle
├── vendor/
│   └── js-dos/              # self-hosted js-dos emulator (GPL-2.0)
└── img/                     # favicon variants

Running Locally

python3 -m http.server 8000
# open http://localhost:8000

Tests

Pure logic (figlet, cowsay, the pipe engine) has unit tests run by Node's built-in runner — no dependencies, no build:

node --test

License

Original site code is 2-clause BSD. See LICENSE.txt for the full text and third-party attributions.

Third-party components

  • Fira Code -- SIL Open Font License 1.1 (self-hosted in fonts/)
  • Fixedsys Excelsior -- public domain (self-hosted in fonts/, used by the startx easter egg)
  • js-dos -- GPL v2 (self-hosted in vendor/js-dos/, see its README for version and upgrade notes)
  • DOSBox -- GPL v2 (bundled inside assets/doom.jsdos)
  • DOOM shareware WAD -- freely distributable shareware, (c) 1993 id Software (bundled inside assets/doom.jsdos)