Philosophy

Interfaces that respect cognition. Surfaces that tell the truth. Complexity treated as a design failure, not a badge of sophistication.

Respecting cognition

Our greatest assets are our brains. Software that spends attention for us and abuses working memory is disrespectful. End-user tools should be minimally invasive on attention; developer workflows should keep cognitive overhead low. Programmers are users too. That respect also means using the mental models people already have — or teaching better ones — and designing features so they are discoverable and follow least surprise.

The question that keeps returning: Are we programming the computers, or are they programming us?

Product representation

When a backend can already answer a question but the first-class UI hides it behind power-user syntax, the product is lying about what counts. Discoverability is not a convenience nit — it teaches users which involvement is real.

The same rule applies to severity chrome, exit codes, settings GUIs versus config files, and previews that refuse the host theme. Clear signals build trust; false alarms and silent failures burn it.

Human intuition over backwards convention

Consistency with existing conventions has value, but it is not absolute. When a convention is fundamentally backwards from human intuition and creates compounding inconvenience, it should be corrected. Migration pain is temporary; living with the inversion is permanent.

Heirloom software

Be kind to your future self and considerate of others' time and attention. Every developer was once a user. Pass down maintainable software that a naïve reader can still understand. Things that behave similarly should not be presented in vastly different ways.

Scoped UX architecture

When an app coordinates many tools, keep each tool narrowly focused and share one shell so they still feel like one product. Hard boundaries prevent junk-drawer surfaces; a consistent interaction model lets learning transfer. Feedforward guidance lives inside those scoped tools — it is not a synonym for the architecture.

Essay · Demo · Docs

Instruction flows

When a doc is really a decision tree — install guides, multi-platform setup — present one choice at a time and insert the chosen subflow as a continuation. Navigate by content itself instead of dumping every branch or exiling Docker to a tangent page.

Essay · Demo · Docs

Titles as orientation

A title should place the reader in a mental room — first-party news omits the org, essays prefer as-framing and attached modifiers over rigid equations.

Essay · ryanjohnson.dev

Division of labor

HCI Nerdz owns graphical and interaction surfaces: themes, dialogs, IDE chrome, desktop metaphors, attention-respecting product UX.

OpenShellOrg owns shells and CLIs: SOS, structured pipelines, progressive help, entrypoint clarity. Boundary products that elevate input to a GUI while always writing the prompt to stdout remain shell-side.

DevCentr owns practitioner environments and toolchain management.

Three sibling efforts: what you run, how CLIs behave, and how humans see and act.

Further reading