The current plan is to rename the RSK package to "Redux Toolkit" / @reduxjs/toolkit. See #248 for current migration status.
Back in #36 , we debated name options for a while. We settled on redux-starter-kit because that's basically what we already had (@acemarke/redux-starter-kit , which itself came from https://github.com/reduxjs/redux/issues/2859 ), and the NPM package name was donated to us in that thread.
Unfortunately, I'm seeing a _lot_ of folks say that they didn't even want to look at the lib, because the name "starter" suggests it's only good for beginners, like these examples:
I don't _want_ to rename RSK, but clearly the name is throwing people off, and that concerns me.
I tried asking about ways to improve the marketing, and mostly got a bunch of random name suggestions.
Soooo... I'm gonna open this up for discussion again, and ask if we should seriously consider renaming RSK to something else, and if so, what.
Overall, the options are:
@reduxjs/Pros and cons:
react-testing-libraryMerging RSK into the core is highly unlikely, and @timdorr has said he's against that. Still, it's a hypothetical option.
_If_ we were going to rename it, my inclination would be something like @reduxjs/toolkit.
Thoughts?
How hard would it be to achieve including it with tree shaking? That would be my vote if that was achievable. If not, I would vote for don't rename.
I see no downside to merging into core, if tree-shaking is possible. Without tree-shaking it's probably not an option. Second best would be using the @redux scope, as it shows right away its an official redux lib. @redux/starter-kit or @redux/toolkit sounds good.
There are at least a couple potential technical issues with merging everything into the core:
createStore and configureStoreredux-devtools-extension depends on redux, but now we'd depend on it unless we went back to setting up the devtools manuallyWe do currently own the @reduxjs scope on NPM, but not @redux. There's some confusion over whether Dan currently is the actual owner of that or not. Honestly, I'd just go with @reduxjs since that matches the Github org and we own it.
Use apollo-boost as your guide.
Drop the word âstarterâ. redux-kit might suffice. Not a starter kit, just a kit. But kit also has connotations of a toy, or something for teenagers. Plus, anyone who previously gave RSK a miss isnât likely to use this lib if it still is named similarly. I think choosing an entirely new name is the only way to fix the situation.
Apolloâs docs make no bones about boost. They donât offer it as an option. From the get-go they say that boost is how you use apollo, and only mention the non-boost methodology later. They go all in on boost because for most people it will suffice, and you wonât even know when it wonât suffice until you hit those situations.
You have to make a decision about how important this kit is. If you want more people to use it, make it sound like itâs the best way to use redux for most situations and only in specific cases would you want to go custom, with instructions on how to import all the individual pieces separately, just like boost.
Check out this page to see what I mean:
https://www.apollographql.com/docs/react/get-started/
Note that they use the term âstarter kitâ in the docs, but not in the actual name of the library. They clearly had this conversation prior to releasing it and came to the same conclusion you reached the hard way. đ
As I think scoping would be the way to go, to make it stand out from all the non-official redux boilerplate toolkits (you noticed how it's received if you're not saying that "it's official" in this thread, didn't you?), I'll suggest to split that option up:
add the scope, keep the name ( => optimally @redux/starter-kit, if that doesn't work out @reduxjs/starter-kit )
add the scope, change the name ( => @redux[js]/[tool]kit )
Unfortunately it seems to be the word "starter" that's throwing everyone off, so _if_ we're gonna rename it, that's gotta go.
Looking through https://twitter.com/acemarke/status/1190296894494388229 and https://twitter.com/acemarke/status/1191518131765821443 , here's a list of all the proposed names (even the silly ones). Repeated suggestions counted in parentheses:
The ones that actually have multiple votes are:
And as one person pointed out, a search for redux toolkit turns up RSK as the first hit already.
There is an existing redux-toolkit package on NPM, and ironically it's pretty close in concept. But, it was also last published over four years ago. There's also http://rekit.js.org/ , a CLI and IDE for React+Redux development.
So yeah, _if_ we were going to rename it, it seems like @reduxjs/toolkit would be the most likely option. "Redux Toolkit" as a name is similar enough to "Redux Starter Kit", and we could abbreviate it as "RTK" instead of "RSK".
Here's the obligatory Twitter poll on renaming options:
Okay, so let's discuss what would actually be needed to do this migration. We would need to:
redux-toolkit.js.org domain nameredux-starter-kit.js.org still pointing at the docs site. (This may not require any work, if the .js.org settings just point both names at the same place.)Anything else?
The other complication is that #226 is in the process of trying to switch the docs site over to Docusaurus v2.
edit
Oh. We'd have to re-create all the tutorial repos and sandboxes, _again_. Oops.
We'll need a version bump (patch/minor/major?) of the old package name that either
Another line of thought on naming suggestions :
Any good words that start with 'S' and go well with "Kit", to keep the RSK acronym?
Or, another suggestion that popped into my head : "Redux Standard Toolkit" / @reduxjs/standard-toolkit? Keeps "toolkit", emphasizes that this is the default approach.
Forget about SEO, that doesnât matter. Itâs already been established that the current name is unpopular and confusing so whatâs the benefit to hanging on to it? None. This is a rebranding. Start fresh.
Names that are unique and sticky are better than ones that are descriptive and accurate.
Fire
Catalyst
Rocket (alliteration ftw) đ
I wouldn't say that the name is _unpopular_, just that the "starter" term is confusing people.
I would like any new name to be meaningful (ie, not a random code word), and ideally as similar as possible to the existing name. "Redux Toolkit" seems to be the best option at this point.
@mplis : honestly, I'm against redux-boost simply because Apollo is using that naming already, and I want to avoid any confusion or appearance of copy-cat behavior.
also, in Apollo's case, apollo-boost REALLY is a starter kit. You quickly find out you need to ditch it if you need more control over the lib. I think that's the exact mentality we are trying to avoid here.
I thought I'd throw my 2c in since I made one of the Twitter comments you quoted above.
I honestly think redux-starter-kit is fine. There might be the odd person like me who gets the wrong end of the stick initially. Once it becomes established in the blogosphere and social media it won't matter in the long run - it'll just be another name. It's not like "starter" doesn't make sense - it's obvious (now) it helps you start a new project and nothing to do with learning Redux.
If you do decide to change the name then one I like best is standard-toolkit.
I don't like "boost" because it assumes that I know what a "boost" or an Apollo is :-). It's adding another terminology dependency that may not be ubiquitous enough.
Oh, to add another thing: Initially, I didn't think that "starter" would confuse ppl too much. Until last week a team member told me that it had confused him when I added RSK to the project, because surely, we need no starter kit.
Seems people actually do read the package name đ€·.
I'm following this from the very first tweet and yes, I was initially throwed off by the "starter" word too.
To me, redux-toolkit is great, but in order to keep the rsk acronym, I'd say redux-standard-kit (I wouldn't use toolkit, it'd become too long) and as someone else already pointed out, I wouldn't worry too much about seo.
These kind of things are established because of the people who use them and not because of the fame.
One will use this not because it's famous but because it's good/needed and if something in the actual name is throwing people off, that is the issue.
It'd be nice to keep the "RSK" acronym, but I could live with "RTK" for "Redux Toolkit".
đ For @reduxjs/toolkit, I think it has good clarity. The other thing I'd say, piggy backing on the Apollo docs comment about, would to maybe have Redux & RTK under the same domain? E.g. https://redux.js.org/toolkit or something? Edit: I understand that may not be practical for technical reasons, but it would closer link the two
@RichiCoder1 : hmm. That's an interesting suggestion, actually.
The immediate issues I see are:
I suppose we could duplicate some of the content, maybe, kind of like how we cover some of the React-Redux API and usage in the core docs. That might be a reasonable approach - have an additional category for RTK, duplicate some of the API and usage stuff, and point to the actual RTK docs for the complete coverage. Thanks for the idea!
Opened an issue to ask about migrating the redux-starter-kit.js.org domain to redux-toolkit.js.org, with redirects:
Opened a new issue to track the actual migration process: #248
Having established that, I'm still looking for suggestions on a good marketing / sales pitch summary sentence. I've been using different variations, and it'd be nice to have a single consistent one.
Phrases I've used so far:
- A simple set of tools to make using Redux easier
- A simple batteries-included toolset to make using Redux easier
- The official, opinionated, batteries-included toolset for Redux
Also, my typical paragraph description:
Check out our new Redux Starter Kit package. It includes utilities to simplify several common Redux use cases, including store setup, defining reducers, immutable update logic, and even creating entire "slices" of state at once [without writing any action creators or action types by hand]
Any better suggestions?
Something around the "Reduction and elimination of common Redux boilerplate like action creators and action types".
Eliminating boilerplate is what hooked me.
I'd err away from "simple" for the short descriptions, if only since that might convey the same issues that docs have with the word "just". That said, I really like batteries included and opinionated as descriptors, as that's often what statements critical of Redux zero in on.
For the paragraph description, I think that's a great sell to existing Redux users, but makes a lot of prerequisite knowledge assumptions that might drive away beginners and skeptics.
Maybe something like:
Redux Toolkit is a high level, opinionated set of tools to make it simple to manage your state using Redux. From quickly creating "slices" of your application's data to scaling up and composing complex state management, RTK provides a variety of foundational tools to build and update your application's state. All this while still taking advantage of Redux's rich ecosystem of middleware and tools.
More of a brain dump, but something along the lines of:
- Redux Toolkit: A utility belt of tools to streamline Redux state management
or maybe just:
- Redux Toolkit: Streamline and scale your application's Redux state management
Hmm. Maybe:
The official, opinionated, batteries-included toolset for streamlined Redux development
Could drop "opinionated" out of there, or say "efficient" instead of "streamlined".
Hmm. Maybe:
The official, opinionated, batteries-included toolset for streamlined Redux development
Could drop "opinionated" out of there, or say "efficient" instead of "streamlined".
Or possible drop both:
The official, batteries-included toolset for Redux development
Succinct and mostly objective? In fact, maybe even:
The official toolset for Redux development
Which is fully succinct and objective?
And the migration is basically done! New package is published, repo and website have been renamed, and the docs have been mostly updated. I still need to rework the RTK tutorial repos and sandboxes, and clean up some other bits. But, not bad for one night :)
I settled on a sales pitch phrase of:
The official, opinionated, batteries-included toolset for efficient Redux development
Since this is basically done, I'll go ahead and close the issue. Thanks for all the feedback - now go migrate your apps over to RTK :)
Most helpful comment
Use apollo-boost as your guide.
Drop the word âstarterâ.
redux-kitmight suffice. Not a starter kit, just a kit. But kit also has connotations of a toy, or something for teenagers. Plus, anyone who previously gave RSK a miss isnât likely to use this lib if it still is named similarly. I think choosing an entirely new name is the only way to fix the situation.Apolloâs docs make no bones about boost. They donât offer it as an option. From the get-go they say that boost is how you use apollo, and only mention the non-boost methodology later. They go all in on boost because for most people it will suffice, and you wonât even know when it wonât suffice until you hit those situations.
You have to make a decision about how important this kit is. If you want more people to use it, make it sound like itâs the best way to use redux for most situations and only in specific cases would you want to go custom, with instructions on how to import all the individual pieces separately, just like boost.
Check out this page to see what I mean:
https://www.apollographql.com/docs/react/get-started/
Note that they use the term âstarter kitâ in the docs, but not in the actual name of the library. They clearly had this conversation prior to releasing it and came to the same conclusion you reached the hard way. đ