nestjs / nest

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀
https://nestjs.com
MIT License
67.69k stars 7.63k forks source link

Future of the framework, contributions, evangelism #6

Closed tkgalk closed 7 years ago

tkgalk commented 7 years ago

@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 commented 7 years ago

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

gima commented 7 years ago

At first I was gonna say :+1: 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 :disappointed: 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 commented 7 years ago

@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 commented 7 years ago

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 commented 7 years ago

@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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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:

tkgalk commented 7 years ago

I believe TypeORM or Mongoose would be great addiditions. Especially if nicely integrated.

pt., 5 maj 2017, 12:08 użytkownik Jan Lipničan notifications@github.com napisał:

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:

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kamilmysliwiec/nest/issues/6#issuecomment-299428786, or mute the thread https://github.com/notifications/unsubscribe-auth/ADCjUFAb9Hwkm4jMvEtzNSidD3A8qOZGks5r2vUygaJpZM4M1pL0 .

joshwiens commented 7 years ago

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

Mark-McCracken commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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

NoNameProvided commented 7 years ago

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

KerryRitter commented 7 years ago

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 commented 7 years ago

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

joshwiens commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

Slack although gitter is cool

alexjoverm commented 7 years ago

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

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 commented 7 years ago

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 :1st_place_medal:

Many thanks!

alexjoverm commented 7 years ago

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

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

kamilmysliwiec commented 7 years ago

@alexjoverm, awesome! Can't wait :smiley:

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 commented 7 years ago

Add a chat room - maybe both Slack and Gitter?

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 commented 7 years ago

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 commented 7 years ago

@nestjs/core?

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

kamilmysliwiec commented 7 years ago

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

alexjoverm commented 7 years ago

Sorry, the words prefixed with @ were hidden :D

tkgalk commented 7 years ago

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

kamilmysliwiec commented 7 years ago

@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 commented 7 years ago

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 commented 7 years ago

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

alexjoverm commented 7 years ago

@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 commented 7 years ago

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 commented 7 years ago

@kamilmysliwiec well done, nest is amazing.

kamilmysliwiec commented 7 years ago

Hi guys! I added Gitter chat if anyone is interested :smiley_cat:

ndabAP commented 7 years ago

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 commented 7 years ago

Thanks @ndabAP!

kamilmysliwiec commented 7 years ago

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

rgolea commented 6 years ago

@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 commented 5 years ago

@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 commented 5 years ago

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

lock[bot] commented 5 years ago

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.