when I design new software I bias/default to CLI, monolithic, local-hosted, and offline-only, first.
Then only if and when I have a good pressing reason to give it a GUI, or make it client/server, or require connectivity, or be cloud-hosted, do I carry out a refactor/redesign to add those features. And even after I apply the refactor/redesign I strive hard to maintain a UX configuration which retains all those original default qualities. Maintaining them side by side with the added alternate modes.
Maybe its an age/era thing. Because I'm increasingly surprised when folks DONT use this approach. Felt like a design no-brainer.
The private term I've coined for this philosophy is CLIFMO.
Then only if and when I have a good pressing reason to give it a GUI, or make it client/server, or require connectivity, or be cloud-hosted, do I carry out a refactor/redesign to add those features. And even after I apply the refactor/redesign I strive hard to maintain a UX configuration which retains all those original default qualities. Maintaining them side by side with the added alternate modes.
Maybe its an age/era thing. Because I'm increasingly surprised when folks DONT use this approach. Felt like a design no-brainer.
The private term I've coined for this philosophy is CLIFMO.