Right now there's a bit of confusion for newcomers - most of us learn the server bit of feathers first, and then jump over to implementing it on the client.
However, the client has a completely different structure than the server and (in my opinion) is a little less organized than its relative (the server).
What if both the client and server had a similar structure across the board?
For example:
- Client
feathers-client (core)
feathers-hooks-client
feathers-rest-client
feathers-socketio-client
feathers-authentication-client
- Server
feathers (core)
feathers-hooks
feathers-rest
feathers-socketio
feathers-authentication
I hope you can see the pattern; for every server package, there's a client counterpart.
As for setting these up, it would work the same way on the client as it does on the server; you have your core feathers or feathers-client and you plug your feathers-* or feathers-*-client into each one, respectively.
Yes, this means more dependencies and repositories. I think though, that it will create a system that is more unified and easy to understand across the board because setup will be relatively similar on both frontend and backend.
That's good for individual developers and teams in general.
It means less confusion, more building.