Why Is Front-End Development So Unstable? (2018)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • Scout APM - Less time debugging, more time building
  • SonarLint - Clean code begins in your IDE with SonarLint
  • aws-gocljs

    fullstack web should be easy

    the last good ideas in js land were react and google’s closure compiler.

    reagent[1], a react wrapper, has had a stable and tiny api for a decade.

    easy, fun, and effective sdlc[2] on mature technology is easier now than ever.

    there are no more excuses.

    1. https://reagent-project.github.io/

    2. https://github.com/nathants/new-gocljs

  • reagent

    A minimalistic ClojureScript interface to React.js

    the last good ideas in js land were react and google’s closure compiler.

    reagent[1], a react wrapper, has had a stable and tiny api for a decade.

    easy, fun, and effective sdlc[2] on mature technology is easier now than ever.

    there are no more excuses.

    1. https://reagent-project.github.io/

    2. https://github.com/nathants/new-gocljs

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

  • redux

    Predictable state container for JavaScript apps

    > > I maintain my 2017 apps including major version bumps with no issues today

    > Sorry but I have to call bullshit on that, unless you’re taking about tiny one page “apps”

    What a strange stance. It's a React/MobX collaborative model editing internal tool deployed in production to users who generate and analyze models with it. It started on Webpack 2 and React 15 and MobX 4, now it's on Webpack 5 and React 17 and MobX 6. I of course had to update some babel configurations but it was much more version bumping than configuration rebuilding. It still uses decorators and looks like complete dog-shit, and that's my point: the same tricks and patterns available then are not only there, but working identically now.

    Re: native, I don't believe in React Native or any webview-based "native" replacement anyways, but it's easy to do this as my user-base is interacting with this app from their company-provided laptops anyways. I would willingly concede React Native is an environment with churn, I don't really recall RN every reaching meaningful stability

    > Redux is dead in the water

    https://www.npmjs.com/package/redux shows 7M downloads weekly

    https://www.npmjs.com/package/react-redux shows 5M

    https://www.npmjs.com/package/@reduxjs/toolkit shows 1.5M

    MobX / MobX React are around 1M/700k

    Your list of "flummox / redux / unstated / mobx / mobx-state-tree / xstate / apollo / apollo-link-state / swr / react-query / zustand / recoil / jotai" seems to peak at 500k with the exception of "react-query", which I don't really see as applicable to a conversation about state management, and perfectly illustrates my point that there's new stuff but you don't need to know it

    > you say it’s #1, but Redux is dead in the water

    I never personally believed in Redux, it struck me as a terrible pattern from the start, thus why I selected MobX; but I find it difficult to believe that you really think React Context scales the same way building an external state management tree does. I like React Context, but it doesn't do a very good job of hiding away complexity from the developer as the application grows. Not to mention it does no render-optimization for you.

    Again, I'm not saying things don't change or that there's not alternatives, but I am saying that someone who learned fundamentals in 2017 is still able to get up-to-speed in the updated versions of the library kings of 2017 in virtually no time, and deliver standard-fare webapps. I say this because I've worked at the same place for over 5 years, I use the same tools, and my users regularly are telling me the tools my team puts in front of them are the gold standard. The churn is long gone, everything you describe would have perfect analogues in any other popular modern language / library ecosystem.

  • react-redux

    Official React bindings for Redux

    > > I maintain my 2017 apps including major version bumps with no issues today

    > Sorry but I have to call bullshit on that, unless you’re taking about tiny one page “apps”

    What a strange stance. It's a React/MobX collaborative model editing internal tool deployed in production to users who generate and analyze models with it. It started on Webpack 2 and React 15 and MobX 4, now it's on Webpack 5 and React 17 and MobX 6. I of course had to update some babel configurations but it was much more version bumping than configuration rebuilding. It still uses decorators and looks like complete dog-shit, and that's my point: the same tricks and patterns available then are not only there, but working identically now.

    Re: native, I don't believe in React Native or any webview-based "native" replacement anyways, but it's easy to do this as my user-base is interacting with this app from their company-provided laptops anyways. I would willingly concede React Native is an environment with churn, I don't really recall RN every reaching meaningful stability

    > Redux is dead in the water

    https://www.npmjs.com/package/redux shows 7M downloads weekly

    https://www.npmjs.com/package/react-redux shows 5M

    https://www.npmjs.com/package/@reduxjs/toolkit shows 1.5M

    MobX / MobX React are around 1M/700k

    Your list of "flummox / redux / unstated / mobx / mobx-state-tree / xstate / apollo / apollo-link-state / swr / react-query / zustand / recoil / jotai" seems to peak at 500k with the exception of "react-query", which I don't really see as applicable to a conversation about state management, and perfectly illustrates my point that there's new stuff but you don't need to know it

    > you say it’s #1, but Redux is dead in the water

    I never personally believed in Redux, it struck me as a terrible pattern from the start, thus why I selected MobX; but I find it difficult to believe that you really think React Context scales the same way building an external state management tree does. I like React Context, but it doesn't do a very good job of hiding away complexity from the developer as the application grows. Not to mention it does no render-optimization for you.

    Again, I'm not saying things don't change or that there's not alternatives, but I am saying that someone who learned fundamentals in 2017 is still able to get up-to-speed in the updated versions of the library kings of 2017 in virtually no time, and deliver standard-fare webapps. I say this because I've worked at the same place for over 5 years, I use the same tools, and my users regularly are telling me the tools my team puts in front of them are the gold standard. The churn is long gone, everything you describe would have perfect analogues in any other popular modern language / library ecosystem.

  • material-ui

    MUI Core is a collection of React UI libraries for shipping new features faster. Start with Material UI, our fully-loaded component library, or bring your own design system to our production-ready components.

    Some libraries will create code mods to assist in transitions. For example I've used some MUI codemods in the past to make transitions to newer versions of the library more seamless [1].

    There are also codemods to say move from underscore to lodash and vice versa (been a while and can't find them at the moment).

    ASTs [2] are pretty cool in this regard. Especially if you write your code in a manner that easier to automate against.

    [1] https://github.com/mui/material-ui/blob/master/packages/mui-...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts