Skip to content

npm namespaces Digital Business Card

One introduction, shaped by who's asking.

The aidandevaney terminal profile home screen with ASCII initials and a slash-command prompt

01 · Context

A package name should lead somewhere useful.

I began by reserving personal npm names and asked what someone would find if they ran one. A placeholder would make the name a dead end, while a small terminal profile could turn that moment of curiosity into an introduction and a route to the work behind it.

The command already signals a willingness to explore, but a general portfolio still leaves visitors to sort through projects for themselves. I treated the terminal as a place to ask what brought them there, then put the relevant evidence and next link within reach.

The aidandevaney terminal profile showing slash-command autocomplete
Typing `/` reveals the four role routes and utility commands.

02 · Feature set

Make the first choice about the visitor's role.

I organized the content around four likely visitors: a recruiter, engineer, hiring manager, and product collaborator. Each view changes the opening, supporting experience, and link order, while the same terminal frame keeps the interaction easy to learn.

Slash-command suggestions expose those routes as soon as someone types `/`. Arrow keys move through suggestions and links, and the same prompt supports help, returning home, and copying contact details. The role choice becomes part of the introduction instead of a separate setup step.

Engineering noteTreat terminal capability as part of the interface

A command can run in a full terminal or in a pipe with no keyboard input. I built a small state machine with Node's standard library so the interactive route can handle keys, width, and links while the noninteractive route still prints a useful introduction.

  • Raw key handling is enabled only for an interactive TTY; piped execution prints the introduction and exits.
  • Text wraps against a bounded 48–100 column frame so role content remains readable across terminal sizes.
  • Links and clipboard actions use platform-specific executables with argument arrays and expose fallback status instead of stopping the session.

03 · What shipped

Ship one command with a complete path through the profile.

I released the canonical package as one Node executable with no runtime dependencies. Version 1.3.1 brings the opening, four role views, command suggestions, links, contact copying, and help into the same session. If a terminal cannot accept interaction, the command prints an introduction and exits cleanly.

The repository also holds alternate package names, but I kept one command as the active profile. That gave the business card a clear destination while leaving the other names as packaging choices rather than competing versions of the story.

Change the story with the audience

The aidandevaney CLI showing the Hiring Manager role view and selected portfolio link
The Hiring Manager route changes the summary, proof points, call to action, and link priority inside the same terminal frame.

04 · Reflection

Let the format make the introduction more useful.

The command is memorable because it turns a package name into something people can try. The four views make that format useful: someone can start with their own question and reach an introduction, proof, and contact path without navigating a full site.

Keeping one active package also made a trade-off visible. The alternate names can each run independently, but their copied entry files make profile changes more costly. One clear command keeps the destination simple for visitors even as those copies complicate maintenance behind it.

Continue with the project

Explore npm namespaces in context.