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

Future of the framework, contributions, evangelism #6

Closed
tkgalk opened this issue Apr 6, 2017 · 45 comments
Closed

Future of the framework, contributions, evangelism #6

tkgalk opened this issue Apr 6, 2017 · 45 comments

Comments

@tkgalk
Copy link

tkgalk commented Apr 6, 2017

@kamilmysliwiec

First of all I'd like to say I really like the idea and your work so far, secondly: what are you plans for the future of the project? Here are some questions I'd love to hear your answers to.

  1. Do you plan to move it to it's own GitHub organization (eg. nest/nest)?
  2. Do you intend to create a website (GitHub Pages?)?
  3. How do you want to approach contributions?
  4. Is there any roadmap?
  5. Are you going to make some future milestones that community could help you achieve?
  6. What are your plans for making the framework more popular (and thus attract more contributors)?

Thanks for the answers.

@kamilmysliwiec
Copy link
Member

Hi @galkowskit,

Many thanks! :)

  1. It sounds ridiculous, but Nest was born by accident. Some months ago I decided to create architecture for my node.js projects. It has been becoming larger and larger and here it is. This is why I put it on my github profile. I didn't think about own organization profile yet. Maybe in the future?
  2. I want to create simple landing page with logo and reference urls (github + documentation), probably nothing more.
  3. I believe that they are people, which loves challanges and new technologies, just like me. If anyone want to help - I will much appreciate it :)
    4 & 5. The bigger part of my ideas is already implemented in Nest (there is still some things to do of course). Now, I am interested what people want to, so I am waiting on new "issues" to help them.
  4. I know that it can be really hard to make framework more popular. I don't have well-known organizations as a partners and I don't know famous people ;) I think that the best way to make Nest more attractive is just to write articles about 'How to [...] with Nest'. Those tutorials are the best method to show people how easy is to achieve some things with this framework.

Thanks for good questions :)

@kamilmysliwiec kamilmysliwiec mentioned this issue Apr 9, 2017
@gima
Copy link

gima commented Apr 25, 2017

At first I was gonna say 👍 to some kind of trampoline page, but then again the current GitBook page serves the purpose nicely in my opinion. The only problem I had was that it was quite difficult finding this repository - or I just failed 😞 Had to assume it was hosted at GitHub under your username.

It could be useful if the main landing page contained a link to this repository - or lacking that - the GitBook main page (whose repository I couldn't find). Also, the npm package could also use a link to this repository, since it currently appears to have no homepage/repository defined.

I'm sorry if this doesn't add much to the current issue, but since my problem was brushed here, I thought I could comment.

@joshwiens
Copy link

joshwiens commented May 5, 2017

@kamilmysliwiec - The server side JS ecosystem is a bit of a mess at the moment. The IBM thing and lack of forward momentum in Express has ( imo ) done irreparable there, HapiJS is great but for those that prefer code over convention, it's obviously not a popular choice & and the rest of the offerings are what they are.

You have taken a very unique approach with Nest that has a ton of potential as it matures but to do that, you are going to need help as maintaining something popular is like a second job.

I took a few hours to re-write one of my existing HapiJS APIs using Nest and thus far, i'm really excited about the possibilities.

If I may offer a suggestion for I know that it can be really hard to make framework more popular

Twitter & Medium would be two places to start, the buzz around Nest has already started in with the Angular folks.

As to how to do that, I'd creating a profile for Nest ( and then using it ). I'd also suggest getting this into a GitHub Org as well. You already have a solid framework, right now what you need is docs + a bunch of people to help evangelize.

Also, though he is a super busy guy / dad / dev you may be able to sneak a bit of time with @TheLarkInn to discuss this topic. He has taken Webpack popularity / acceptance to a whole new level, I can't think of anyone better suited to ask for advice.

@Mark-McCracken
Copy link

Totally agree, I've shared this with a bunch of angular folks and they've been very impressed.
I think an organisation would be a great idea, similar to angular's, so could have packages on npm
@nest/nest,
@nest/cli,
@nest/testing (don't know if that's entirely included in what you've done already)
with public GitHub projects for each.
I'd love to help with providing some example stuff as soon as I can for how this can be used to host an angular application, and connect to a mysql database for api routes.

@HeroBart
Copy link

HeroBart commented May 5, 2017

@Mark-McCracken I agree, it might help in adoption as well to have an organisation name, because people will feel less like it's a "small project" (even though it might be currently). I'd love to see examples where you connect to a database, maybe even some kind of ORM (like Laravel has Eloquent).

@Mark-McCracken
Copy link

I've managed to connect to database and get results back, need to fix some stuff around async not waiting for my results, but should be easy. Need to work out how to serve angular application on home route, but hopefully won't be hard. Only had a few hours to play with this last night, but will try to take a look next week and get an example up somewhere

@Pinedo11
Copy link

Pinedo11 commented May 5, 2017

I have already done an example of how to implement a chat room with Nest and Angular. Feel free to modify it as you see fit. (missing DB part)

https://github.com/Pinedo11/nestDemo-ChatClient
https://github.com/Pinedo11/nestDemo-ChatServer

@yanlipnican
Copy link

Funny thing is that i had same idea, but i was not that determined, so development was slow and it was just prototype which i would in some point rewrite into well documented project. But you made a release and destroyed my dreams. Just kidding :D. I am happy to see that javascript ecosystem won't be mess anymore. I will try contribute with code, ideas and issues. Good Job.

Few ideas:

  • Add TypeORM
  • Make angular like cli tool

@tkgalk
Copy link
Author

tkgalk commented May 5, 2017 via email

@joshwiens
Copy link

Locking people into a specific orm or database is a mistake, you limit your target audience.

@Mark-McCracken
Copy link

I agree with both of the above comments.
Don't think it should lock people in to a specific ORM/database,
but being able to have an add-on package that makes this easy could be really useful and make this even more attractive

@KerryRitter
Copy link

KerryRitter commented May 5, 2017

I agree with points made by @yanlipnican, @galkowskit, @d3viant0ne and @Mark-McCracken.

On one hand, having an included ORM sucks because in the JS world, people prefer plug-and-play. But many other popular frameworks have a "preferred" ORM that is integrated out of the box or with a simple add-on: ASP.NET and Entity Framework, Laravel and Eloquent, Django ORM, Sails and Waterline... It makes things easier and will allow Nest to have starter templates with user auth built in, as well as allow for add-ons to be created with a standardized backend API - one big attraction of Laravel is their Official Packages such as Cashier, Envoy, Passport, Scout and Socialite and this is dependent on a standardized ORM.

In my opinion, having a standardized ORM (i.e. through 'starter templates' or otherwise) has more benefits and will open more doors to easily integrated add-ons in vein of those listed above.

@kamilmysliwiec
Copy link
Member

Hi guys!
About integration with databases - I agree with @d3viant0ne - we should not locking people into specific solutions. On the other hand - it would be very helpful to show how to work with Nest and well-known databases, both SQL & NoSQL, and orm tools - just like typeorm. Standarized starters and best practices overviews have a lot of benefits and should makes easier to get into Nest.

Secondly, the organization profile - it is necessary and in the next few days nest will be probably moved into separated @nest profile. Maybe something like @nest prefix for packages might be useful.

@KerryRitter
Copy link

Sounds good to me.

One great thing about Ionic's cli is that you can initialize projects by passing it a git repo. I think this would be an excellent idea to leverage and would allow us the ability to have starters, including one with TypeORM and the like.

@kamilmysliwiec
Copy link
Member

Hi guys!
I finished small landing page today. What do you think? ;)
http://nestjs.com/

@NoNameProvided
Copy link

NoNameProvided commented May 7, 2017

Looks great! A small note, the credit is barely visible on MAC with low background lit.

@KerryRitter
Copy link

Love it!

Wondering if perhaps there should be a gitter.im or slack chat room for this project? might be a good place to help people or converse ideas for the framework.

@Mark-McCracken
Copy link

100%!
I vote slack. There's a free tier right?

@joshwiens
Copy link

Slack is free with the limitation that it only saves a set amount of history.

If you are going to use Slack, use it as an invite only place to coordinate between developers as the ecosystem.

For support, my suggestion is a combination of Gitter & Stack Overflow.

@tkgalk
Copy link
Author

tkgalk commented May 8, 2017

Landing page is good, but the image on the right is cropped at the bottom.

For communication I'd suggest Gitter and Stack Overflow.

@juandav
Copy link

juandav commented May 9, 2017

Slack although gitter is cool

@alexjoverm
Copy link

@kamilmysliwiec here it goes my 2 cents :)

About evangelising I could help by creating a course on egghead.io, something like "Create a RESTful API in TypeScript with Nest" (any better idea?). That should give it a great boost.

Although, by that time I think some prerequisites must be accomplish. My suggestions, mostly discussed on this issue:

  • Find collaborators: After a point, is impossible just by one person to maintain a project. Find some first-line collaborators and coordinating with contributors is a must.
  • Make a transparent contribution workflow: Everyone can contribute, that's by definition, but organising all the information helps a lot. Some ideas: create labels for better issue classification, make a transparent roadmap, create a Github template for issues...
  • Move it to it's own Github org
  • Define minimum stuff to get done: Moving to @nest/... scoped packages, adding auth... Whatever you consider it must be done before starting evangelising, better get it done, otherwise it would cause confusion because of out-of-date articles, videos and so on.
  • Add a chat room, either Slack or Gitter: They'll avoid too poluted issues with discussions.

Not sure if I forgot anything. It could feel kind of a hassle, but it's true that when a project gets popular one spends more time just coordinating than coding 😄 (unless someone coordinates for you).

Hope this helps, tell us what do you think and what do you have in mind.

@kamilmysliwiec
Copy link
Member

Hi @alexjoverm,

If you have some time, feel free to create a course. It would be a pleasure and really nice feeling for me, to take a look on it 🥇

  • Find collaborators: You - guys - are awesome. There is a lot of people here, which incredible helps me with examples, suggestions, issues, CLI, so I think that there is nothing to look for. The team is formed itself and I am very happy with it 😺
  • Make a transparent contribution workflow - must have.
  • Move it to it's own Github org - repository will be moved this week 😄
  • Define minimum stuff to get done - today, maybe tomorrow the plan should be published
  • Add a chat room - maybe both Slack and Gitter?

Many thanks!

@alexjoverm
Copy link

@kamilmysliwiec good to hear! Thanks for the answers

About the course, I'm currently working on one, but after that I'd be happy to do it :)

About the collaborators: Keep in mind is not the same contributors than collaborators:

  • Contributor: anyone who helps
  • Collaborator: someone that you explicitly add to the project, so they have repo access for assigning labels, merging PR, etc. So kind of "part of core team"

Probably you don't need collaborators, just keep it in mind in case you cannot manage everything :)

@kamilmysliwiec
Copy link
Member

@alexjoverm, awesome! Can't wait 😃

Yep, I know the difference. Sure, not all of them could be a part of collaborators team, but I also know that additional hands to help will be needed :) Time will tell how it looks

@joshwiens
Copy link

Add a chat room - maybe both Slack and Gitter?

  • Gitter is a better tool for support as Google can index it's archives for web searches and it won't truncate your history.
  • Slack is a better tool from a usability standpoint and the fact that most of us are already in multiple slack channels already ( one less window to have open ).

Personally I think using both would send a confusing message to consumers. A lesson learned in Webpack, it's hard to change the support rules down the road. So while this level of specificity probably seems like overkill now, it's preferable to trying to apply the same down the road.

@kamilmysliwiec
Copy link
Member

kamilmysliwiec commented May 13, 2017

Hi guys! Do you have any ideas about the name of the package? I decided to move nest to scoped npm packages with @nestjs prefix, but now it is necessary to choose the name of the framework package. @nestjs/framework seems too long, but I don't have better idea.

@alexjoverm
Copy link

alexjoverm commented May 13, 2017

@nestjs/core?

Also I'd move the testing tools under @nestjs/test

@kamilmysliwiec
Copy link
Member

kamilmysliwiec commented May 13, 2017

Hmm.. @nestjs/core, @nestjs/common, @nestjs/websockets, @nestjs/test, @nestjs/microservices?

@alexjoverm
Copy link

Sorry, the words prefixed with @ were hidden :D

@tkgalk
Copy link
Author

tkgalk commented May 13, 2017

I'd remove the "js" part from the name. It sounds like "JustAnotherLibraryJS", "WhateverJS". Just keep it as @nest. Looks more proffesional IMHO.

@kamilmysliwiec
Copy link
Member

@galkowskit, @nest is not available. Also the website domain is nestjs, because nest is already used. Same here - organization profile is nestjs - same reason.

@kamilmysliwiec
Copy link
Member

Since ~2.0.0 nest is split into several packages - @nestjs/core, @nestjs/common, @nestjs/microservices, @nestjs/testing, @nestjs/websockets. There is also CQRS module available @nestjs/cqrs.

@alexjoverm
Copy link

Wow! Amazing work!!!! And great news the CQRS surprise!

@alexjoverm
Copy link

@kamilmysliwiec a side question, have you considered getting some reward for all this work? You could open an OpenCollective campaign, I'm sure there would be proud backers/sponsors over the time :)

@RobinVdBroeck
Copy link

RobinVdBroeck commented May 17, 2017

Also another good idea is to put the example into another repo. Right now it just bloats up the main repo, making it more difficult to work with. This way it might also be possible to have multiple examples with different dependencies using the same structure this monorepo uses.

@ellipizle
Copy link

@kamilmysliwiec well done, nest is amazing.

@kamilmysliwiec
Copy link
Member

Hi guys! I added Gitter chat if anyone is interested 😺

@ndabAP
Copy link

ndabAP commented Jul 8, 2017

Hey, I also think this framework has a huge potential. Great work!

One small thing I'd like to say is that there should be more possiblities to support this project. Because I don't have a credit card 😉.

@kamilmysliwiec
Copy link
Member

Thanks @ndabAP!

@kamilmysliwiec
Copy link
Member

Hi!
It was a long road.. 😄 But I think it's the best time - nest repository is finally moved into the organization 🎉 🎉 🎉 @alexjoverm @d3viant0ne @everyone

kamilmysliwiec pushed a commit that referenced this issue Nov 22, 2017
@rgolea
Copy link

rgolea commented Feb 26, 2018

@kamilmysliwiec is there a way we can be collaborators? can you make a video with a walkthrough of the code or a live stream on youtube where you explain the architecture? It's quite difficult to follow the code without comments and I, for one, would love to contribute as much as possible but I don't have lots of time so a fast walkthrough on the architecture would be really nice so we can jump right in the code and help with further development. Am I asking a lot or would this be possible?

Great project btw! Made me switch instantly when I saw it! Keep up the good work!

P.S.: Here is an example of what I mean: https://www.youtube.com/watch?v=OQTnXNCDywA

@vvdwivedi
Copy link

@alexjoverm Any updates on the egghead course? I came from loopback looking for a better way to write my apis. I noticed that you mentioned about a course and I would be glad to pay for that.

@kamilmysliwiec
Copy link
Member

Hey @vvdwivedi. We are investigating this topic. Hopefully, we will be able to publish something more soon :)

@lock
Copy link

lock bot commented Sep 23, 2019

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@lock lock bot locked as resolved and limited conversation to collaborators Sep 23, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests