Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bikeshed discussion: naming and marketing, again #246

Closed
markerikson opened this issue Nov 5, 2019 · 29 comments
Closed

Bikeshed discussion: naming and marketing, again #246

markerikson opened this issue Nov 5, 2019 · 29 comments

Comments

@markerikson
Copy link
Collaborator

markerikson commented Nov 5, 2019

Issue Update

The current plan is to rename the RSK package to "Redux Toolkit" / @reduxjs/toolkit. See #248 for current migration status.

Original Post

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 reduxjs/redux#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:

Pros and cons:

  • Don't rename:
    • 👍 keeps existing SEO; no migration step
    • 👎 folks continue to get confused about the benefits and audience
  • Rename to something global:
    • 👍 maybe a better name?
    • 👎 migration, loss of SEO; have to find an available package name
  • Rename to something scoped:
    • 👍 differentiates from other random Redux packages; precedent from react-testing-library
    • 👎 migration, loss of SEO
  • Merge into core:
    • 👍 becomes very obvious that this is official and the default approach; everyone gets it
    • 👎 everyone gets the deps; no tree-shaking atm; recursive dependencies from libs to core?; migration, loss of SEO; where do all the RSK docs go?

Merging 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?

@mfpiccolo
Copy link

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.

@Ericnr
Copy link

Ericnr commented Nov 5, 2019

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.

@markerikson
Copy link
Collaborator Author

markerikson commented Nov 5, 2019

There are at least a couple potential technical issues with merging everything into the core:

  • Apparent duplication of createStore and configureStore
  • Recursive dependency: redux-devtools-extension depends on redux, but now we'd depend on it unless we went back to setting up the devtools manually
  • Added dependencies for folks who aren't using the rest of the pieces (although this would maybe be less of a bundle issue with tree shaking, it's still a bunch of additional stuff that many folks don't currently use)

We 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.

@stevensacks
Copy link

stevensacks commented Nov 5, 2019

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. 😉

@phryneas
Copy link
Member

phryneas commented Nov 5, 2019

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 )

    • 👍 differentiates from other random Redux packages; precedent from react-testing-library
    • 👍 👎 almost no loss of SEO, since domain, articles etc can stay largely unchanged
    • 👎 migration
    • 👎 still has "starter" in the name
  • add the scope, change the name ( => @Redux[js]/[tool]kit )

    • 👍 differentiates from other random Redux packages; precedent from react-testing-library
    • 👍 "starter" is gone
    • 👎 loss of SEO
    • 👎 migration

@markerikson
Copy link
Collaborator Author

Unfortunately it seems to be the word "starter" that's throwing everyone off, so if we're gonna rename it, that's gotta go.

@markerikson
Copy link
Collaborator Author

markerikson commented Nov 5, 2019

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:

  • "initials only"
  • @redux/starter-kit
  • ++
  • Accelerator (2)
  • Advanced Kit Pro With Hooks
  • Basics
  • Batteries
  • Catalyst
  • Concurrent Mode
  • Dev Kit
  • Essentials
  • Fire
  • Focus
  • Kit (3)
  • Lightning
  • Magnify
  • On Rails
  • Plus (3)
  • Pro Max
  • Recipes
  • Reduxnator 3000
  • Rocket
  • Setup
  • Shortcut
  • Simply
  • Sparkle
  • Super Kit
  • Superstar Kit
  • Supreme Kit
  • Toolbox
  • Toolkit (4)
  • Tools
  • Tools
  • With-No-More-Boilerplate

The ones that actually have multiple votes are:

  • Toolkit
  • Kit
  • Plus
  • Accelerator

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:

https://twitter.com/acemarke/status/1191755498749648896

@markerikson
Copy link
Collaborator Author

markerikson commented Nov 5, 2019

Okay, so let's discuss what would actually be needed to do this migration. We would need to:

  • Publish the new package name
  • Get the new redux-toolkit.js.org domain name
  • Point it at the docs site
  • Also somehow have redux-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.)
  • Rewrite all the docs content to scrub and update the package name, the actual name, and the abbrevations
  • Also preferably come up with a single "sales pitch" description line. I've been using multiple variations in different places, and it would be nice to have something short, descriptive, and consistent.

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.

@phryneas
Copy link
Member

phryneas commented Nov 5, 2019

We'll need a version bump (patch/minor/major?) of the old package name that either

  • throws an exception with a migration message (testing library currently does that)
  • re-exports everything from the new package and prints a mirgation guide on installation/in dev environments on the console

@markerikson
Copy link
Collaborator Author

markerikson commented Nov 6, 2019

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.

@stevensacks
Copy link

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) 🚀

@markerikson
Copy link
Collaborator Author

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.

@markerikson
Copy link
Collaborator Author

@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.

@Ericnr
Copy link

Ericnr commented Nov 8, 2019

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.

@thehousecat
Copy link

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.

@phryneas
Copy link
Member

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 🤷.

@giacomocerquone
Copy link

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.

@markerikson
Copy link
Collaborator Author

It'd be nice to keep the "RSK" acronym, but I could live with "RTK" for "Redux Toolkit".

@RichiCoder1
Copy link
Contributor

RichiCoder1 commented Nov 12, 2019

👍 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

@markerikson
Copy link
Collaborator Author

@RichiCoder1 : hmm. That's an interesting suggestion, actually.

The immediate issues I see are:

  • The RSK docs are currently completely separate in terms of repo, content, and location
  • I don't think Docusaurus would have any way to do some kind of "embedding" or something.

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!

@markerikson
Copy link
Collaborator Author

Opened an issue to ask about migrating the redux-starter-kit.js.org domain to redux-toolkit.js.org, with redirects:

js-org/js.org#3532

@markerikson
Copy link
Collaborator Author

Opened a new issue to track the actual migration process: #248

@markerikson
Copy link
Collaborator Author

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?

@sumitngupta
Copy link

Something around the "Reduction and elimination of common Redux boilerplate like action creators and action types".

Eliminating boilerplate is what hooked me.

@RichiCoder1
Copy link
Contributor

RichiCoder1 commented Nov 12, 2019

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.

@tgallacher
Copy link

More of a brain dump, but something along the lines of:

  1. Redux Toolkit: A utility belt of tools to streamline Redux state management

or maybe just:

  1. Redux Toolkit: Streamline and scale your application's Redux state management

@markerikson
Copy link
Collaborator Author

Hmm. Maybe:

The official, opinionated, batteries-included toolset for streamlined Redux development

Could drop "opinionated" out of there, or say "efficient" instead of "streamlined".

@tgallacher
Copy link

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?

@markerikson
Copy link
Collaborator Author

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 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants