Hashnode/mern-starter

MERN v3.0.0 πŸš€

abinavseelan opened this issue Β· 108 comments

Hey πŸ‘‹

It's been a little over a year since MERN v2 was released. A lot has changed in the React landscape and it's about time we get back to this project to bring it up to speed with 2018. πŸ˜„

Progress on this project has been rather slow from our end due us focusing our efforts on development of Hashnode. While retrospecting our open-source contributions, the need for a new version of MERN came to light, as highlighted by the numerous issues and PR’s that have been raised over the past year to update the repository. We apologize for not getting to this sooner.

What's coming πŸ“¦

Here is a brief list of the features that we have in the pipeline for the 3.0:

  • Out of the box Yarn support
  • Bring base Node version to v8.x LTS, for all that async-await goodness πŸ˜‹
  • Upgrade to Webpack 3 and move to babel-preset-env
  • Migrating to React 16.x
  • Moving from React Router v2 to v4
  • Have a simpler workflow so that you can start your project(s) with much more ease!

Have a request or suggestion? πŸ’­

If you have any feature requests or suggestions, do leave them below and we'll see if we can bring it into 3.0 πŸ˜„


Update

(27th May, 2018)
We're are looking for new maintainers… Read full update

Can we list "decrease start-up time while in development mode" as an official objective? The last point ("Have a simpler workflow so that you can start your project(s) with much more ease!") is a bit vague, and I'm not sure of what that means. It is currently very painful to do server side development in Mern (due to slow restarts), but I would like to see that change!

It would also be lovely to explore using a node require hook to potentially cache-bust JSX on the server side, or really any other way to eliminate the divergence that comes after many code changes, which require server restarts.

I would love to be more involved with and contribute to the Mern community, so please let us know how. Very happy to finally see activity here! πŸ˜€

Hey @mattlubner!

The point "Have a simpler workflow so that you can start your project(s) with much more ease!" is more of an umbrella term for things the community needs or might need to help in their development workflow. Once we've aggregated a list of things, we'll update the issue to highlight the specifics that you'd see in v3.0. This includes reducing server startup time, of course! πŸ˜„

Thanks for the suggestions! πŸ™‚

Hi. You could add also a graphql implemententions, /gql/endpoints, this would be great !

ready to use graphql crud with apollo would be realy nice

graphql is a example πŸŽ‰

I am sorry if this might be a little bit out of topic.
But why MERN stack build time is much higher than MEAN (in server post-modified rebuild). This is quite time consuming.

@lordknight1904 We're actually looking into this and trying to revamp the build pipeline with v3.0. πŸ™‚

@carloscuatin @chrisLovesCode @alexandru-tomescu

GraphQL sounds pretty exciting! We'll evaluate this and see how we can integrate GraphQL into MERN, without bloating the user experience for users who don't want it.

We have a couple of ideas on how we can manage this, and we're currently floating them around the office to get opinions. πŸ˜„

@abinavseelan option flag with the mern-cli πŸ‘

how can we help in the new version of mern ?

When can we expect new version of MERN ?

Maybe add a default landing page.

Can we start using the 3.0 branch? Cause we have a project that needs to kickstart now and may just use the latest version of MERN.

@lucaskuan

Hey! πŸ‘‹

I'm sorry. But it's not yet at a stable state to use I'm afraid. 😞 We are doing our best to see this version out as soon as a possible!

Would love to have swagger/jsdoc support

@abinavseelan I see, looking forward to have it ready. Will there be a huge migration trouble from 2.0 to 3.0?
Any tasks that we could contribute to make it happen faster?

How can I store image using this repo?

pm ERR! Failed at the mern-starter@3.0.0 start script 'NODE_ENV=production ./node_modules/.bin/nodemon server/index.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the mern-starter package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! NODE_ENV=production ./node_modules/.bin/nodemon server/index.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs mern-starter
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls mern-starter
npm ERR! There is likely additional logging output above.

My 4 suggestions:

  • Ability to use decorators, eg. @connect for Redux.
  • Make the style loader compatible with both SASS and SCSS syntax.
  • Include something in the development config like xip.io or browserSync, which serves the site in the local network so we can test on our mobile devices.
  • ESLinter config based on Javascript Standard Style.

All the suggestions above are great but I'd suggest you focus on the main improvements/upgrade such as React V16+, Router V4, Yarn support and webpack latest versions and build other ideas as extensions. This way build times will be shorter and also GTM faster.

Webpack 4 is out. Build performance is so much faster it's worth a look.

I hope in big MERN update, the official web page will use React. πŸ’ƒ πŸ˜„ πŸ˜…

Is this project still active? Haven't seen any commits or PRs merged since a month... Is any other branch being used?

Waiting for this...

I'm also waiting for this and very excited, any updates on progress? @abinavseelan, Thanks!

What about this param for installation?
--scripts-version=tsx or jsx

I'm also waiting for this and very excited, any updates on progress? @abinavseelan, Thanks!

Looking forward to trying this out πŸ‘

MERN full-stack project as a boilerplate, with all best practices implemented out of the box and latest up-to-date components/modules, including the possibility to easily put-in your own preferable modules sounds so nice! But, looks too good to be true :)

Yes, at least an update on progress would be amazing :)

How's the work on version 3 going? Will it, also, support JSX files?

It looks dead to me. I'd like to contribute as soon as I graduate

Hello,

I noticed that the maintainer is to longer working at Hashcode since March. Is that supposed to mean that v 3.0 is never going to be release? @abinavseelan please leave your comments.

Update

Hey all πŸ‘‹

Thank you for your interest in this project. We started the new version ambitiously a few months back, but due to a sudden change in the priorities of the company, we had to delay it.

However, we love MERN, and we want to finish version 3.0. We are currently looking for active maintainers for this project who can help us release the next version asap. If you are interested, please leave a comment below, and we will get back.

PS: Out of love, the Hashnode team would be sending Power MERN Tees and dev stickers to all the new maintainers of the project. ❀️🍺

@fazlerocks please add me to the team I'll help out. I also have a deep interest in this version 3 to be completed as we have a pending course on MERN Essentials at Lynda/Linkedin Learning I'd like to record sooner than later.

So add @mannyhenri to the maintainers and I'll take a look at where the version is and see how I can give a hand.

Hi there @fazlerocks! I'm interested in being an active maintainer of MERN. Reach out and let's chat; there's likely some logistics to figure out with bringing community developers like myself onboard (since MERN development has thus far been managed exclusively by Hashnode employees, if I understand correctly). There's a lot of work to do to hit the "MERN 3.0" milestone, and even more potential work beyond that, if we wish to keep MERN modern with respect to our community as a whole. I'd very much love to be a part of it! πŸ»πŸš€

I am interested. I am currently in a coding bootcamp at the University of Miami and they are focused on teaching the MERN stack. I don't know how much I can contribute as a "junior" developer but I'd love to help out if possible.

jnlsn commented

Having just started a MERN project on next.js because this project seemed abandoned, I'm also interested in contributing.

Wow! @fazlerocks with all of us @mattlubner @rosariorussell @jayarnielsen we should be able to bring V3 faster than a parsec! (sorry just saw Han Solo, had to say it). :shipit:

@fazlerocks might it make sense to add a board to the ongoing MERN V3 repo with a todo list as issues and assign them to each of us. You guys probably have something already going, if not, I'd be glad to do a quick rundown of ongoing items, wishlists (what makes sense for V3 and what should be done for later)...like we always say...ship less but have more updates so the MERN community benefits from ongoing updates until we get to V3. And V3, might be simply bringing all dependencies to latest versions and then we look into the future of what can be added?

Yes, that's a great idea. I will get back with the current status of the project by tomorrow EoD. @mannyhenri

I’ll gladly spend some time on this project if we’re able to go off a roadmap like @mannyhenri suggested πŸ‘πŸΌ

I'll be happy to contribute in v3.

@fazlerocks I would love to contribute in V3.

I would also like to help this project :)

I'm also interested in contributing to V3. Let me know once you have a roadmap put together.

@fazlerocks let me know if you need my help in putting the roadmap together. We have lots of people willing to get started, eager to get this going! ;)

@fazlerocks, I would love to help out as well.

🚒 Welcome abroad

Welcome the new maintainers of MERN project.
@mannyhenri @mattlubner @rosariorussell @jayarnielsen

All let me know anyone that haven't been added to the maintainers and would like to help out. The team is working on a board where we can define a realistic timeline and issues related to it to get to V3!

@mannyhenri Definitely still interested :)

@MrChristofferson You are a maintainer now! πŸ…πŸŽ‰

Also keen to contribute πŸ‘

@AndrewBestbier Added you. 🍺

Just tried it and there seems to be a lot of errors, which I have a feeling are all related to React Router’s V4 updated syntax. Let me suggest this if you guys are ok and up to it, unless @fazlerocks or anyone that has touched it before you have an objection…we start fresh and update only the safest items first, like React V16 should be straightforward. I would also create branches up to 3.0 so start at 2.5 (React 16 update with Redux validation)….2.6 (webpack)….2.7…(Mongoose and DB validation check)….2.8 (React Router V4)…2.9 (express & remaining dependencies)…3.0 (official new release)…3.1( replace redux with improved context APIs or not?). Going from 2 to 3 is a monumental task and it would be better to take it one step at a time and isolate errors and patches to specific versions before we move on, also this way we could upgrade master at each step. What do you guys think? I will also post these comments on the issue related to updating the version. If all agree I’ll clean up the related PRs/issues related to current V3.0.0 branch.

Also, anyone that hasn't been added to contributors and would like to help, let @fazlerocks know and we'll add you.

jnlsn commented

I stopped using MERN because it wasn't fit for Production in my case. I don't need Webpack code in my server code - also it's a shared server where I don't have permission to install global NPM modules like Webpack, which made it simply impossible for me to deploy MERN. After building the whole project with MERN, sadly I had to revert everything to a simple express.js + "create-react-app" setup.

Would be great if you guys could come up with a more "purist" approach to the server-side production deployment. Without Webpack stuff in the server code at least.

@fazlerocks others who offered to help: @ashifa454 @AndrewBestbier @the-bionic @russellr86 @zakpgrove @alexandru-tomescu

@abinavseelan and All, as soon as we've got a roadmap with specific milestones and labels we'll remove this issue to clean up and get a specific and granular list of issues focused on building the roadmap. Note to all!

I've been hoping for this project to come back to life for a while now. Happy to help out and looking forward to seeing the new roadmap!

All, I've started working on the board, milestones, labels and new tasks towards V2.5 which will be our next version adding React V16.x. I'm going through all the PRs and issues and will categorize them accordingly. Also I will close this issue to keep the repo issues and PRs clean and focused! Thanks all for your comments we're on our way.

@AndrewBestbier if you want to take a look at #342 let me know.

For anyone contributing or willing to:

We have now an official agile board for tracking progress through our tasks towards V3.0.0. We'll do more updates with interim versions and if you're curious what each will bring look at the milestones and/or labels.

How we track issues

Each issue will be labeled and assigned a milestone. If the task/issue/bug doesn't track towards a specific goal then it will be marked into Futures. Each below versions will be officially tested and merged into the official repo and available for all to enjoy when ready. Needless to say, if there are any bugs they will have priority over upgrading code or dependencies. We want a stable MERN as we move up the versions.

We are tracking towards V3 with the following milestones:

  • V2.5.0 -> React V16.x upgrade and propTypes fix
  • V2.6.0 -> React Router V4
  • V2.7.0 -> Webpack upgrade to V4
  • V2.8.0 -> database/mongo/mongoose updates/fixes
  • V2.9.0 -> Express/Server dependencies/code upgrade
  • V3.0.0 -> CLI/devtools optimization (docker, etc.

How to participate

If you want to help, request @fazlerocks to add you to the contributors and we'll gladly assign you a task. We are currently catching up and moving as fast as we can to bring all the goodies and any help will be welcomed. Thanks in advance to all that are willing and working on this repo.

@fazlerocks can you add @AndrewBestbier to contributors?

@AndrewBestbier added you. Please follow the invite link to get started.

I'm not a ninja yet, but i have good experience with all these technologies and i want to do some tasks to help you in my free time. Waiting for you guys :)

Awesome @alexandru-tomescu ! Could you pull and test branch 2.4.0? See if everything works on your end. We are planning to merge it into master so the more heads that test it before the better!

yes @mannyhenri, seems everything ok, only some deprecations warnings, but no errors.

i think a slack channel would be useful :)

we have one @fazlerocks could you add @alexandru-tomescu to contributors and slack!

All...V2.4 has been pushed to master!!! Take a look at the Readme file for changes, etc.

I also want to contribute in V3, please let me know if there is something I can contribute with.

Alright @ashifa454 @alexandru-tomescu @cosmicbuffalo @jayarnielsen @AndrewBestbier @rosariorussell now that version 2.4 is out we're moving on to 2.5, the cool update to React V16.x and proptypes. Do you want to help out? If so let me know I'll tag you for the task and we'll talk.

yep, @mannyhenri. Waiting for you :)

Yaa @mannyhenri. I am in.

@fazlerocks could you add @ashifa454 and @alexandru-tomescu to contributors and slack?

ALL -> mern-cli has been updated to 2.5.0:

  • Now it installs the mern-starter dependencies automatically when you initialize a new project

@mannyhenri i have installed React 16.4.0 and Migrated under 2.5.0 branch.

Awesome! @ashifa454 could you create a PR and we'll take a look at it?

@mannyhenri I am having some problem with react-router let me sort this out then I will create a PR. in the meantime can you please introduce me to the slack-channel.

@ashifa454 if you're trying to add react-router 4 right away, it might be better to postpone updating react-router as it will introduce many changes to the repo and might be a lot for a one man job. The plan is to get React 16.x and proptypes fix for 2.5, and leave React-router for V2.8. However, I'm not going to stop anyone if they're willing to tackle it all at once, but could be a pretty big task considering...just my 2 cents. Always best to tackle small pieces at a time ;)

For the introduction, @fazlerocks owns both the repo and slack channel and should get you in when he's got a chance.

@mannyhenri I have two confusions if you could help me with, so I migrated react 16 and propTypes, but it seems like react- router will need the earlier react, which include the PropTypes.
screen shot 2018-06-08 at 7 07 40 am

@ashifa454 ok and thanks for your work on it. I'll take a look at your PR tomorrow, and provide feedback. Most likely we'll end up merging to a separate branch and continue working on it.

@mannyhenri thankyou.

@mannyhenriI am getting an error while test, and it's possibly because of enzyme V3.x Migration
screen shot 2018-06-09 at 12 54 42 am

enzymejs/enzyme#1106

@ashifa454 have you had a chance to work further with the integration of React 16/proptypes?

@alexandru-tomescu @cosmicbuffalo @jayarnielsen @AndrewBestbier @rosariorussell any of you have some cycles to work on integrating React 16/proptypes? FYI most of the work will constitute in updating routes and most likely might end up updating also React-router to V4. Let me know.

@alexandru-tomescu feel free to do a PR if you've worked on it! ;)

@mannyhenri sorry I had some college exams but I am continuing it from today, also I have some silly doubts to clear, so will this discussion panel would be a place or should I mail you?

@ashifa454 you can either use this or create a new issue where we can discuss further.

I installed React 16.4.0 , Proptype (as separate NPM dependency https://www.npmjs.com/package/prop-types) and Changed Files accordingly
Now while Starting project I am getting an error

  • React-Router ( because i think react-router 2.x.x is dependent on PropType by react and because we have updated it to 16 and prop type is not part of it, so its throwing error)

  • While Testing it with npm run test it's throwing an error, and probably issue enzymejs/enzyme#1106 .

if those both problems and its explanation in place, so think we need to update react-router alongside with migrating it to react-16, otherwise guide me from here to the right path.

@ashifa454 you are right, we'll need to update React-router so let's head towards doing this. If you have cycles to work on this go for it, @mattlubner will help out this weekend. Also, feel free to take a look at #348 for references.

I am on it @mannyhenri, I have some ways to integrate it, let me give it a try and surely I will be needing help @mattlubner.

@ashifa454 I'd suggest starting with upgrade/mern-v2.5.0 and updating to react-router v4 first, get that working, commit, and then tackle react v16.

@fazlerocks I would like to contribute for this project.
Please add me.

@abinavseelan I would like to contribute for this project.

All, we won't be adding new contributors for the time being, but feel free to create PRs and we'll add your names to the participating folks when we announce the new versions.

I'm looking forward to this new release! πŸ‘

Of all the names below, who can help drive MERN 3.0 home? We'd like to be able to release this before the new year!!!

@pedrofurtado @qiepeipei @mattlubner @AlnoorKhan @ashifa454 @alexandru-tomescu @cosmicbuffalo @jayarnielsen @AndrewBestbier @rosariorussell , please let me know if you can help.