Ask HN: How can I better market my JavaScript library
Hey.  I think I&#x27;m in a pretty good position to give you some feedback.  As background, I maintain a well-received list of high-quality React and Redux tutorials and articles [0], and a catalog of Redux-related libraries, addons, and utilities [1].  I also spend a lot of time hanging out in the Reactiflux chat channels, and apparently currently have the messages posted in Reactiflux since the service moved to Discord [2].  Finally, I wrote the official Redux FAQ page from scratch [3].  So, while I&#x27;m not a public name in the React community like Dan Abramov, I&#x27;m pretty in tune with what&#x27;s going on in the ecosystem.<p>The first thing to consider is that the size of the target market for any &quot;addon&quot;, &quot;mod&quot;, or &quot;extension&quot; for any technology is, by definition, limited to the size of the user base for the original technology.  While Redux is certainly popular, and basically the winner of the &quot;Flux Wars&quot;, you&#x27;re limited to a subset of the JS dev community.<p>A second factor is idiomatic usage.  Any framework ecosystem is going to have an idiomatic way of doing things.  Tutorials will teach those same idioms, training classes will teach those idioms, people will write apps using those idioms, and the vast majority of the userbase is going to share those idioms.  When you start going outside those idioms, fewer people will understand your approach, and fewer people will be interested in something that&#x27;s not &quot;the normal way&quot;.<p>Redux is fairly minimal, so similar to Backbone, there _is_ a fairly active ecosystem with people adding numerous different spins in usage, and additional layers on top, like yours.  However, only a few of those have gained particular traction (like redux-saga).  Idiomatic Redux tends towards explicit and functional, rather than implicit and object-oriented.<p>Third, there are a number of overlapping approaches and implementations being developed by different people, as you can see by browsing my addons catalog.  Two dozen libraries implementing &quot;local&#x2F;component state&quot; in various ways, a dozen more for &quot;subscribe to changes in a slice of state&quot;, and I don&#x27;t know HOW many approaches to handling &quot;side effects&quot;.  Not sure how much of that is people not knowing what else is out there, how much is &quot;Not Invented Here&quot; syndrome, and how much is people just trying to scratch an itch.  So, any one addon in a given category is somewhat competing for mindshare, and only a few will really get attention.<p>Fourth, honestly, a lot of it really is actually getting the attention of the &quot;thought leaders and influencers&quot;.  I signed up for Twitter just so I could actually reply to some of the conversations I saw going on, and when Dan saw that, he tweeted out that I&#x27;d just joined.  Five minutes later I had 30 followers, and 100 by the end of the day.  Small potates as Twitter goes, obviously, but the point is that people followed me just because Dan said I was interesting.  (I&#x27;m not, really :) )  The &quot;Doing Whatever Dan Abramov Tells Me To Do&quot; fake book cover has a bit of truth to it [4].  Now, I&#x27;m not saying go harass Dan, or Ryan Florence, or Christopher Chedeau, but when core members of the React&#x2F;Redux community point at stuff, other people look.  And, that said, Dan does tweet out anything that looks vaguely interesting, so tweeting him a link is a valid approach.<p>So, Radical.  I _do_ actually have Radical listed in my addons catalog, but I have it listed on the &quot;Variations&quot; page [5], which is where I list libraries that are distinctly deviating from the idiomatic Redux approach (and, as you&#x27;ll note, there&#x27;s quite a few of those).  Looking at it, there&#x27;s good points and bad points.<p>Good:<p>- &quot;Reducing boilerplate&quot; is certainly a viable selling point.  One of Redux&#x27;s core principles is that things are explicit rather than implicit, but obviously many people dislike much of the verbosity.  So, that&#x27;s a good focus.<p>- Radical has documentation.  Like, _real_ documentation.  An actual description that tries to give a motivation and explanation, some meaningful code samples, and API docs.  The average JS lib on Github has a short repo one-liner, maybe a couple paragraphs in the README, and a five-line code snippet with very little explanation for where it fits in.  This is decidedly a good thing.<p>Mixed:<p>- Focus on grouping actions and reducers.  Again, there&#x27;s numerous opinions and ideas, and putting those together _is_ one semi-popular approach (per the &quot;Ducks&quot; concept), so it&#x27;s not unheard of.  On the other hand, Dan encourages arbitrary reducers responding to arbitrary actions to prevent coupling, and that&#x27;s considered the idiomatic approach.<p>- Use of Typescript in the lib and the samples.  There are certainly Typescript users in the Redux community, but ES6 is the common approach.<p>Bad:<p>- Use of an OOP approach to managing things.  I know it&#x27;s still dispatching actions and such and updating its own slice of the store, but the Redux community is heavily influenced by Functional Programming, and as such an OOP approach is less likely to gain interest.<p>- The fact that you do need to hook the generated reducer into the store isn&#x27;t as clearly called out as I&#x27;d like to see.<p>- Lack of a full-blown example written using Radical.  Again, the fact that you have actual code samples is good, but if this is such a big improvement, a &quot;real&quot; app example would go a long way to show that.<p>- Both the docs and the source are in single files.  Both might be easier to read through if they were split into smaller pieces.<p>- There&#x27;s a number of libraries that look like they do something fairly similar.  The list at [6] has many that are more component-oriented, but there&#x27;s some overlap.  The list at [5] also has some similar options.<p>Overall, it looks like a well-written library, with a valid use case, but the fact that it&#x27;s a non-idiomatic approach means there won&#x27;t be as much interest, and therefore fewer users _and_ fewer people willing to pass it along.<p>For what it&#x27;s worth, I hang out in the Reactiflux chat channels [7] evenings EST if you&#x27;d like to drop in and talk about it.<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;markerikson&#x2F;react-redux-links" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;markerikson&#x2F;react-redux-links</a><p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;markerikson&#x2F;redux-ecosystem-links" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;markerikson&#x2F;redux-ecosystem-links</a><p>[2] <a href="http:&#x2F;&#x2F;pipend.github.io&#x2F;reactiflux-dashboard&#x2F;#&#x2F;fame?ago=1+year" rel="nofollow">http:&#x2F;&#x2F;pipend.github.io&#x2F;reactiflux-dashboard&#x2F;#&#x2F;fame?ago=1+ye...</a><p>[3] <a href="http:&#x2F;&#x2F;redux.js.org&#x2F;docs&#x2F;FAQ.html" rel="nofollow">http:&#x2F;&#x2F;redux.js.org&#x2F;docs&#x2F;FAQ.html</a><p>[4] <a href="https:&#x2F;&#x2F;twitter.com&#x2F;ThePracticalDev&#x2F;status&#x2F;718462272335704064" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;ThePracticalDev&#x2F;status&#x2F;71846227233570406...</a><p>[5] <a href="https:&#x2F;&#x2F;github.com&#x2F;markerikson&#x2F;redux-ecosystem-links&#x2F;blob&#x2F;master&#x2F;variations.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;markerikson&#x2F;redux-ecosystem-links&#x2F;blob&#x2F;ma...</a><p>[6] <a href="https:&#x2F;&#x2F;github.com&#x2F;markerikson&#x2F;redux-ecosystem-links&#x2F;blob&#x2F;master&#x2F;component-state.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;markerikson&#x2F;redux-ecosystem-links&#x2F;blob&#x2F;ma...</a><p>[7] <a href="https:&#x2F;&#x2F;www.reactiflux.com" rel="nofollow">https:&#x2F;&#x2F;www.reactiflux.com</a>