cassiozen / useStateMachine

The <1 kb state machine hook for React
MIT License
2.38k stars 47 forks source link

Branding? #57

Closed devanshj closed 3 years ago

devanshj commented 3 years ago

I was wondering if you want to give some name to your library other than "useStateMachine". Mainly because saying "useStateMachine" doesn't ring bells that I'm talking about your library, it could be a generic hook or even other libraries out there. So right now I mention it like "Cassio's useStateMachine".

It doesn't have to be fancy something, "CState" (like XState but C for Cassio) also works haha, just like how "M" in "Mobx" is for Michel. Or if you have something original out of the world in mind that would be even better!

In case your mother tongue is not English, you can name the library whatever "state" is called in your mother tongue. That's what I do sometimes xD

cassiozen commented 3 years ago

That's an interesting thought: I originally named it useStateMachine intentionally - As I mentioned before, the main target for this library is users who aren't super familiar with State Machines. Maybe they heard about them and want to start using them on some parts of their projects.

Because of that, the library needs to appear simple: Simple to adopt, simple to use. Size is a part of that - it's easier to adopt a new library if it doesn't make a huge size impact on your project. Being a hook with idiomatic React patterns also help - it feels familiar. Naming is also part of that strategy.

I really like XState, I use it at work, and I'm thrilled with their potential future with stately - but XState is intimidating to new users. useStateMachine goes purposefully on a different direction: It avoids new terminology, strives to be less strict, and, well, doesn't have an exciting name =]

(As always, I could be convinced otherwise - but that's my current take.)

devanshj commented 3 years ago

Hmm from a strategic perspective it does make a lot of sense. It's mostly because of the kind of person I am, I'd trade having an identity over adoption but I think you'd choose otherwise which is okay too! And anyway in some sense it does have an identity in that the package name is @cassiozen/usestatemachine had it been usestatemachine only it'd have been worse xD

Well, so then I'll keep calling it "Cassio's useStateMachine" ;)