Fast relief from framework fatigue...
Nix. As in:
- Unix: the Unix philosophy
- nix: Veto, Reject. This according to Merriam-Webster
We are rejecting walled-gardens in favor of smaller, more composeable pieces. For specialized components that can be combined in different ways to form a desired outcome.
The cure to framework fatigue is not more frameworks. It's less, or more specifically, to create a way to combine micro-framworks and libraries (or the lack thereof) into a whole that is more than the sum of its parts.
Nix style apps attempt to build specialized systems by combining generic sub components. We do this by utilizing typescript to enforce contracts between these pieces.
From a high level, Nix components in a system can act as one of four things:
- A Consumer: Takes arguments of a specified type as input. Returns no output. Assumed to have side effects.
- A Producer: Takes no arguments, has no input. Returns specified type as output. May or may not have side effects.
- A Filter: Takes arguments of a specified type as input. Returns specified type as output. Filters must be pure, thus cannot modify their input nor have side effects.
- An Actor: Takes arguments of a specified type as input. Returns specified type as output. Actors are impure and make no promises about purity. Side effects are thus allowed.