What do I start with?

If you are not building something really tiny and throw-away, then you need these things:

  1. Modular structure for your project.I personally would prefer Component-based architecture. It is applicable to various frameworks.Also, consider some extreme cases, like BOT or Elm Architecture or re-frame or CycleJS.
  2. Module loader/bundler (RequireJS, Browserify, Webpack, ComponentJS, SystemJS)These things will help you keep your javascript (or components) separated and manageable.
  3. Package manager (npm, jspm, bower).I’d prefer npm to any other all the time – its a de-facto standard in javascript and nodejs world. And I consider bower to be a hack – its a nice way to download the assets, but it is not really as powerful as npm in managing components and dependencies. YMMV.
  4. Automated asset/compilation/build pipeline (grunt/gulp/brunch/broccoli).Because, you know, live is to short to do the same stuff again and again and again.
  5. CSS preprocessors (jss/stylus/sass/css-modules) and postprocessors (csso, autoprefixer, postcss)This tools will make CSS a bit better and remove some burden of managing cross-browser issues. Yes, I know that it is 2016, but anyway, its still pain in the ass.
  6. Markup framework (Bootstrap, Zurb Foundation, Elemental UI, Material Lite)This things incorporate tons of lnowledge and 1000 years of suffering of web developers. They would help you deal with basic markup and styles.Though, you may consider build your own solution, if you feel like markup hero and frontend expert. Or you need to establish a design dictionary for your company.In this case, I’d suggest you to pick up the methodology (BEM, OOCSS) as soon as possible. It would save your time.I personally prefer BEM naming scheme and custom workflow. You can find some thoughts behind this in the styleguide for Brainly.com which I help to build.

    If you do not where to start building your custom markup methodology, have a look at HTML5 Boilerplate

  7. Test runner (jasmine, karma, mocha, tape, intern).Everyone need tests. No exceptions.
  8. Code quality assurance tools (eslint, husky, editorconfig).You do not want your code become a mess, do you?
  9. Any community to get help from (chats, IRC, meetups, twitter).

Also Read : Language Checklist