For now, all UI components and styles are hand-crafted. It's neither elegant nor robust, so experience suffers for example on mobile, or Safari. The idea is to use this format (with hand-written Sass extending HTML5 elements) for the time being, until a "proof-of-concept" milestone is reached and then transition to a UI kit/component library.
I'm looking at Blueprint—and haven't found a better alternative—since it has both a Select
and a Slider
component. These are components I figure we need, and it would be better than having something homespun with react-select
and Rheostat
, which are both more heavy-weight solutions than we really need. An alternative would be Material-UI, but 🤮 (sorry).
Using local state for rapid prototyping right now, but I think that we should transition to Redux. Local state may still make sense for UI state, such as forms, etc.
Going to use Apollo for this, and specifically apollo-boost
(which is a pre-configured, batteries-included wrapper around Apollo Client) and @apollo/react-hooks
which is in beta! But it should be fine for what we're doing: consuming an external GraphQL endpoint.
There have already been a couple times where I've wanted to bring in some heavy-weight FP solutions, but for now just sticking with the lodash/fp
set of functions, which is easily accessible.
I think the first concept to introduce would be a Maybe
type (something found in most modern programming languages as a way of avoiding null
values, the billion-dollar mistake).
Down the line, I would be interested in trying to incrementally adopt a functional PL, such as Reason or PureScript, or just explore the benefits adding types with TypeScript. All these languages can live happily side-by-side with plain JavaScript so buy-in is not steep.