owls@internet:~$man ./guide
NAME
terminal — owls@internet:~$ — a living CRT terminal session, one of ten design directions built for the real agency Nomadic Owls.
SYNOPSIS
boot → whoami → cat manifesto.txt → grep belief .brain → ls services/ → ./disciplines --table → ./projects --list --status → cat contact.txt — then control passes to you at a real prompt.
DESCRIPTION — concept & inspiration
The brief for this direction was "the full-stack pillar as a world." Rather than a page about a terminal, the whole site had to actually behave like one: it powers on (BIOS splash, memory check, kernel boot), then performs its own content as a typed session — cat, ls, grep — before handing the prompt to the visitor. The reference points were CRT monitors from the DOS/BBS era, neofetch-style system dumps, and the specific joy of a site that answers back. Every string a visitor can read is genuine Nomadic Owls copy from @owls/content — the terminal framing is a costume, not a rewrite.
The ASCII owl and NOMADIC OWLS wordmark are hand-assembled <pre> art rather than an image: this direction's brief specifically calls for "ASCII is the art," and shipping it as text keeps the whole hero readable, selectable, and copy-pasteable — the way a real terminal would be.
PALETTE & TYPE SPECIMEN
#0a0e08 — background
#33ff66 — primary
#c8ffd9 — bright text
#ffb000 — accent / host
#1a5c2e — decorative / rules
VT323 (bitmap terminal face) drives every display size — prompts, boot text, section headers, ASCII art — for the raw glow of a monitor font. IBM Plex Mono carries long-form body copy (manifesto, project descriptions, guide prose) at 13.5–14.5px / 1.7 line-height, because VT323 at paragraph sizes reads charming for five words and tiring for fifty. Phosphor green #33ff66 is the default ink; amber #ffb000 is reserved for the host half of every prompt, section accents, and the CTA — a second signal colour, the way real dual-phosphor monitors distinguished system text from user text.
TECHNIQUES
- Content stays server-rendered. Every command's output — manifesto, the three pillars, the six disciplines table, all six live projects with real hrefs, contact — is plain Astro-rendered HTML from
Cmd.astro, sourced straight from@owls/content. No-JS visitors and crawlers get the complete page instantly; JavaScript only performs what's already there via a data attribute (ct.dataset.full) rather than inventing new markup. - Cancellable typing engine.
tty.jswraps everysetTimeoutin asleep()that registers itself in apending[]array; a single tap, key, or scroll during boot callsflushSleeps(), resolving every outstanding timer at once and instantly revealing the full session — no half-typed lines left behind, no orphaned timers still running after skip. - BIOS boot sequence. A fixed overlay plays POST-style lines (CPU, memory count-up in 4096K steps, disk mounts, service checks), then a CRT "power-on" keyframe (
scaleYfrom a hairline to full height with a brightness spike) before the owl splash and login prompt. It's gated by an inline head script that runs before first paint: bots (navigator.webdriver),prefers-reduced-motion, and repeat visits in the same tab (sessionStorage) skip straight to the finished page — the boot is a treat, never a tax. - The CRT itself is five stacked layers, not a filter: a scanline
repeating-linear-gradientinmultiply, a faint vertical aperture-grille, a radial-plus-edge vignette standing in for barrel curvature, a diagonal glass-glare band, and a slow phosphor "roll" band drifting down the tube on a 9s loop. Two prime-lengthsteps(1)keyframe animations on<html>and<body>desync just enough to read as an irregular flicker rather than a metronome — all disabled underprefers-reduced-motion. - A real shell, not a chat widget. The bottom bar is an actual
<form>: history via ↑/↓, Tab completion against command names and a small filesystem table, a Levenshtein-distance "did you mean" for typos, Ctrl+L/Ctrl+C, and easter eggs (sudo hire owls,vim,owl). The visible input is a transparent, caret-hidden<input>layered under a styled echo + ghost-completion span, so real text selection, autofill and mobile IME all keep working while the glow-styled text stays purely decorative. - Mobile keyboard handling.
visualViewport'sresize/scrollevents translate the fixed prompt bar upward by exactly the keyboard's height, so the input never hides behind the iOS/Android keyboard; command chips give touch visitors one-tap access tohelp,projects,contactand the easter eggs without typing at all. - Status bar fakes a live system: an uptime counter derived from the real "wandering since 2022" epoch, a random-walking three-number load average that drifts every 5s, and a UTC clock ticking every second — small, cheap signals that the "machine" is alive even before anyone touches the prompt.
Assets: none — no Higgsfield renders, no raster images. Every visual is hand-built ASCII, CSS gradients, and system fonts, per this direction's brief ("ASCII is the art").
THE ITERATION PASSES
- Pass 1 — full-session screenshot review at every scroll depth plus mobile: boot legibility, hero owl/wordmark alignment against the CRT vignette, section-header contrast, the disciplines table and project rows under 390px, and the interactive bar's resting state all checked out. One real bug found: the top status bar's brand text was truncating to a single character on mobile (
o_) because· tty1 · owls@internethad nowhere to go in the available width. Fixed by wrapping that segment in.sb-detailand hiding it under 700px, leaving justNOMADIC-OWLS OS v2.2— still legible, no more mid-word clipping. - Pass 2 — built this
/guideroute and screenshotted it. Found a sharper bug: Astro collapses any whitespace run containing a newline down to zero characters (not one space) when it sits between a text node and the next line's tag — so multi-line prose likea page\n<em>about</em>compiled topage<em>about</em>in the actual HTML, silently gluing words together in over a dozen places across this page's paragraphs and list items. Rewrote every affected block as single unwrapped source lines to remove the whole bug class, then re-diffed the compiled HTML for any remaining glued-word patterns until zero were left. Also wiredstatus.jsinto this page so the clock and uptime here are as alive as the homepage's, instead of frozen at--:--:--. - Pass 3 — nitpick sweep across desktop scroll depths and mobile for both routes: cursor blink, focus rings, footer rhythm, swatch alignment, and a final compiled-HTML scan confirmed no console errors and no leftover whitespace bugs anywhere in the session.
SEE ALSO
whoami(1), ./projects --list(1), sudo hire owls(8) — all live at /. Type help at the prompt for the full command list.
,___,
{O,o}
/)__)
-"-"--Designed & built end-to-end by Claude (Fable 5) for Nomadic Owls.
← cd / — return to the live session