---
title: "#342: Some Best Practices for JavaScript Projects"
publication: "JavaScript Weekly"
issue: 342
published_at: "2017-07-07"
canonical_url: "https://javascriptweekly.com/issues/342"
---

#342: Some Best Practices for JavaScript Projects

Why Reddit chose TypeScript, and a React-a-like for CLI apps — [Read this e-mail on the Web](http://javascriptweekly.com/issues/342)

JavaScript WeeklyIssue 342 — July 7, 2017

July 4th made this week a bit of a quiet one in the JavaScript world and we dug extra deep. A huge thanks to everyone who submitted articles and projects directly to us. If _you_ want to suggest items for future issues, tweet us [@JavaScriptDaily](https://twitter.com/javascriptdaily) or send a reply to any issue and we'll check it out :-)

_Your editor,
 Peter Cooper ([@peterc](https://twitter.com/peterc))_[A Set of Best Practices for JavaScript Projects](https://github.com/wearehive/project-guidelines#readme)British design studio Hive has collected together guidelines for working on JS projects. Hive 
[Why Reddit Chose TypeScript](https://redditblog.com/2017/06/30/why-we-chose-typescript/)Reddit felt that TypeScript was the best option for typed front-end development. Upvoted 
[Gatsby 1.0: A Static Site Generator for React](https://www.gatsbyjs.org/blog/gatsby-v1/)A powerful React-based static site generator. v1 can integrate with CMSs like Wordpress, and Drupal, and supports route-based code splitting, service workers, offline support, etc. Kyle Mathews 
[![Component IO\](https://copm.s3.amazonaws.com/3d59f04e.png)](https://component.io/?utm_source=javascript-weekly&utm_medium=newsletter)[Components will make you a better web developer](https://component.io/?utm_source=javascript-weekly&utm_medium=newsletter)Building with reusable, isolated components will make your work clean & maintainable. Component IO offers ready-to-use website components that work everywhere. Use the live online content & code editor to improve your workflow. Component IOSponsor
[Ink: Like A React, But For Building CLI Apps](https://github.com/vadimdemedes/ink)Provides React’s component-based UI building experience, but for command line-style apps. An intriguing idea. Vadim Demedes 
[AC-D3: Library for Building Audiovisual Charts in D3](http://ac-d3.com/)Bring the power of embedded videos to D3 visualizations. Michals, Worrel and Nunns 
[An ECMAScript Proposal for Pattern Matching Functionality](https://github.com/tc39/proposal-pattern-matching/blob/master/README.md) Brian Terlson and Sebastian Markbåge 
[babel-plugin-preval: Pre-Evaluate Code at Build-time](https://github.com/kentcdodds/babel-plugin-preval)An interesting new Babel plugin to pre-evaluate code at build time (perhaps to dynamically bring in content from files to other code). Kent also recorded [a video of him building it.](https://www.twitch.tv/videos/156697935?sr=a&t=0s) Kent C. Dodds 


Jobs

- [Front End Engineer at EDITED (London)](https://edited.com/jobs/engineering/?utm_source=javascriptweekly&utm_medium=email)Join us to impact how the world's biggest retailers operate by making a web app with great UX and DX using React, Redux and Glamor EDITED
- [Full-stack JavaScript Developer at X-Team (Remote)](https://x-team.com/javascript-developer/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=js-weekly-q1-17)We are 100% remote. We'll work with you 1-on-1 to motivate and fund you to learn, grow and build a legacy. [Join X-Team](https://x-team.com/javascript-developer/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=js-weekly-q1-17). X-Team

In Brief

['Prettier' Code Formatter Reaches Version 1.5](https://github.com/prettier/prettier/releases/tag/1.5.0) news 
Introduces GraphQL, CSS-in-JS and JSON support.
Prettier

[7 Ways To Define A Component Template in Vue.js](https://www.codementor.io/vuejsdevelopers/7-ways-to-define-a-component-template-in-vue-js-8wxxhmxo6) tutorial
Anthony Gore

[Experimenting with the Background Fetch API](https://philna.sh/blog/2017/07/04/experimenting-with-the-background-fetch-api/) tutorial
Phil Nash

[Pattern Matching with TypeScript](https://pattern-matching-with-typescript.alabor.me/) tutorial
Manuel Alabor

[Intro to 'date-fns', a Lightweight JS Date Library](https://www.sitepoint.com/date-fns-javascript-date-library/) tutorial 
A simple, functional alternative to Moment.js.
SitePoint

[Building a Realtime Dashboard Powered by Laravel and Vue.js](https://codeburst.io/building-a-realtime-dashboard-powered-by-laravel-and-vue-2017-edition-7dc1d4954f71) tutorial
Freek Van der Herten

[Why Use SemVer / Semantic Versioning?](http://blog.npmjs.org/post/162134793605/why-use-semver) opinion 
And how it has ‘changed the way we write JavaScript’.
The npm Blog

[Comparing and Contrasting React and Angular](https://medium.com/dailyjs/react-and-angular-a-contrast-b19210c3fe89) opinion
Dan Halverson

[8 Habits of a Happy Node Hacker (2017 Edition)](https://blog.heroku.com/node-habits-2017) opinion 
Just in case you’re not a [Node Weekly](http://nodeweekly.com/) reader :-)
Jeremy Morrell

[A much faster way to debug code than with breakpoints or console.log](https://wallabyjs.com/docs/intro/advanced-logging.html#live-comments?utm_source=cooperpress=email=javascriptweekly) tools 
This wallaby.js feature allows to inspect the result of any JavaScript expression execution in your editor.
Wallaby.jsSponsor

[Evan You on the State of Vue in 2017](https://www.youtube.com/watch?v=lG0Ys-2d4MA) video
VueConf

[How to Get Started and Build Something with GraphQL](https://www.youtube.com/watch?v=McPeX5gsSX8) video
Xavier Cazalot

[14 'Live Search' jQuery Plugins](https://www.sitepoint.com/14-jquery-live-search-plugins/) tools
SitePoint

[bundlesize: Keep Your Bundle Size in Check](https://github.com/siddharthkp/bundlesize) tools
Siddharth Kshetrapal

[webpack-common-shake: A CommonJS Tree Shaker Plugin for WebPack](https://github.com/indutny/webpack-common-shake) tools
Fedor Indutny

[Spend less time coding, more time shipping 🚀](https://www.pusher.com?utm_source=jsweekly&utm_medium=email&utm_campaign=sponsoredlink&utm_content=brand) tools 
Build interactive features, like notifications, in minutes with just a few lines of code.
PusherSponsor

[math-random-polyfill: A 'More Random' Browser Polyfill for Math.random()](https://github.com/DavidAnson/math-random-polyfill) code
David Anson

[consolemock: A Small Dev Utility for Testing Console Logs](https://github.com/ttmarek/consolemock) code
Thomas Marek

[share-this: Medium-like Text Selection Sharing Without Dependencies](https://github.com/MaxArt2501/share-this) code
Massimo Artizzu

[Try Codeship Basic: Simple hosted CI that works out of the box](https://codeship.com/features/basic-aw?utm_source=email-sponsorship&utm_medium=cpc-javascript-weekly-brief-secondary&utm_campaign=cooper-basic-features-signup-campaign) tools
CodeshipSponsor

Curated by [Peter Cooper](http://twitter.com/peterc) and published by [Cooperpress](https://cooperpress.com/).

Like this? You may also enjoy: [FrontEnd Focus](http://frontendfocus.co/) : [Node Weekly](http://nodeweekly.com/) : [React Status](http://react.statuscode.com/)

[Stop getting JavaScript Weekly](*|UNSUB|*) : [Change email address](*|UPDATE_PROFILE|*) : [Read this issue on the Web](http://javascriptweekly.com/issues/342)

© Cooperpress Ltd. Fairfield Enterprise Centre, Lincoln Way, Louth, LN11 0LS, UK
