Private · daily infrastructure · Developer environment

Workstation system

A reproducible, machine-aware developer environment designed to make a fresh macOS, Linux or Termux system converge on a known working state safely.

Niche
Personal developer-platform engineering
Core stack
Shell · Rust TUI · GNU Stow · YAML
Platforms
macOS · Linux · Android/Termux
Focus
Reproducibility, reversibility, low drift

The niche

Most dotfile repositories save configuration. This one treats the entire workstation as a product that should be reproducible, inspectable and recoverable.

The system handles platform prerequisites, package manifests, shared configuration, machine profiles, deployment and lifecycle hooks so a new machine does not depend on remembering years of manual setup.

What is different

The goal is convergence, not cloning one machine blindly onto another.

Machine-aware profiles

Shared defaults are extended by explicit host/use-case configuration instead of accumulating hidden one-off shell conditions.

Reversible boundaries

GNU Stow packages, dry runs, rolling backups and skip-able stages make changes easier to inspect and undo.

Guided and scriptable

A Rust TUI supports interactive installation without sacrificing a deterministic non-interactive path for automation.

Drift is observable

CI validates configuration and monitors platform synchronization rather than assuming branches and machines remain aligned.

Product & design thinking

A developer environment is an interface used all day, so consistency is a product feature.

Shells may differ, but navigation, history, prompt behavior, keyboard workflows and core tooling should converge where practical. Platform-specific behavior is isolated only when the platform genuinely requires it.

The installer is designed around confidence: preview the plan, understand which stages will run, keep backups, and make machine-specific differences explicit rather than surprising.

Development approach

The repository is treated as infrastructure, with the same expectations placed on application code.

Package definitions are declarative, lifecycle order is explicit, generated state is minimized, and the repository remains the source of truth. Automation validates syntax and synchronization while Stow preserves clear ownership boundaries for deployed configuration.

Private repository · daily-used infrastructure
Next: Defend