Dindaleon / hapi-react-starter-kit

A hapi React Starter kit with react-router, redux, react-transform
172 stars 29 forks source link

Feedback for Extensions System #10

Open Dindaleon opened 8 years ago

Dindaleon commented 8 years ago

I would like to know what you think about it and what you would to improve it.

zebapy commented 8 years ago

My only thought on this is why not build the system from scratch to work with the concept of modules 100%? Like Users should also be a module or part of these "extensions". I don't have much experience but I think Meteorjs works with a concept like this. Same with the "Rooms" feature (though that'd be a bit more complex because of socketio stuff. Another thing I have 0 experience with)

Dindaleon commented 8 years ago

Yes, I am thinking about going that route; however, I would like to make it similar to what wordpress and other cms do. Where people can download an extension, upload it through an admin dashboard and install it from there, without having to rebuild the whole app. Not easy thing to do, but I find it quite challenging and interesting.

"Users" and "Rooms" should be part of these extensions, you are right about that. The thing is that I did those before coming up with the concept of these "extensions." For future releases, I do plan to remove them from the main starterkit and make them extensions. So, others can use a vanilla starterkit without redis.

By modules, you mean nodejs modules, right? That can be installed by npm install. I might do both.

Thank you for your feedback, greatly appreciated, it helps me put my ideas together.

zebapy commented 8 years ago

Firstly I'll correct myself. When I was saying modules, I was thinking the broad term module/package/extension/plugin, etc. Nothing to do with NPM but I could see that being useful – if they were constructed to be used in that manner.

I believe https://github.com/nylas/N1 has a module system but I haven't looked into it. I know that's one of their selling points.

It makes sense that perhaps Users need to be part of the core system since a user is required to install other extensions. I personally don't have a desire for that since, as a developer, I just need to write a scalable app structure and modules would be helpful vs MVC-like separation.

Dindaleon commented 8 years ago

Well, I will be releasing a very basic cms based on this starterkit in the upcoming months, so in there, "Users" and "Rooms" will be part of the core. On the other hand, I want to keep the starterkit as modular as possible, so anything that can be optional will be optional.

I would love to allow the possibility of installing extensions through npm as nodejs modules and through a custom extension's manager system such as wordpress as well.

Thank you for pointing out that app, I did not know about it. It looks very cool. I will take a look at it.