Over the past few months, we’ve been working really hard on the next generation of Vue CLI, the standard build toolchain for Vue applications. Today we are thrilled to announce the release of Vue CLI 3.0 and all the exciting features that come with it.

Vue CLI 3 is a completely different beast from its previous version. The goal of the rewrite is two-fold:

At the core, Vue CLI provides a pre-configured build setup built on top of webpack 4. We aim to minimize the amount of configuration developers have to go through, so any Vue CLI 3 project comes with out-of-the-box support for:

I created my first website as a school project when I was 14. The task was simple: create a very basic site including some text, images, and a table. My usual attitude to school projects was to completely forget about them and later come up with some last-minute solution. But, this time, I went nuts.

Since my first website, I’ve always prioritized making stuff look good. Admit it or not, people judge things based on looks. If what you make looks good, like you know what you’re doing, people are going to trust it more. That’s just how things are.

Over years of making side projects, I shifted my focus more and more on developing my design skills rather than just perfecting my programming. You see, being an algorithm writing monstrum gets you just so far. While pursuing the dream of bootstrapping a profitable side project, you’ll have to do a lot of different jobs. Being a designer is one of them. Just like Cross-fit athletes, solo-founders have to be well rounded to perform well.

Web attacks explode these days as security comes to the front of the stage. We’ve compiled over 23 Node.js security best practices (+40 other generic security practices) from all top-ranked articles around the globe. The work here is part of our Node.js best practices GitHub repository which contains more than 80 Node.js practices. Note: Many items have a read more link to an elaboration on the topic with code example and other useful information.

Do you know Redux’s real power is beyond managing the state? Do you want to design with an understanding of how Redux works in mind? Let’s dig deeper into what Redux can do, why it does its things, what the downsides are, and how it relates to design.

One of the most significant design opportunities in recent history was announced with a simple blog post on Apple’s website. “Let me just say it: We want native third-party applications on the iPhone, and we plan to have an SDK in developers’ hands in February,” Steve Jobs wrote. On a quiet Thursday morning less than a year later, the App Store opened to iPhone users with a selection of just over 500 apps.

Samsung Gear 360

Few contemporary innovations have changed how we live our lives and interact with the world around us more than iPhone apps. The creators of the first 500 available at launch had the unique opportunity of shaping the design direction and interaction methods of the millions of apps created since.

I am writing a React GraphQL book which I intend to release the next months. If you are interested in following me on this journey or grabbing a copy of the book as one of its first readers, you can opt-in for receiving updates about it. Feel encouraged to leave me any feedback for improving the content. You can even contribute to it by editing this article on GitHub. After all, I want to produce a high quality book which should enable people to learn about GraphQL in React similar to The Road to learn React.

When it comes to network requests between client and server applications, REST is one of the most popular choices to connect both worlds. In REST everything evolves around the idea of having resources which are accessible by URLs. You can read a resource with a HTTP GET request, create a resource with a HTTP POST request, and update and delete it with HTTP PUT and DELETE requests. These are called CRUD (Create, Read, Update, Delete) operations. The resource can be anything from authors, articles or users. The format for transferring data is not opinionated when using REST, but most often people will use JSON for it. In the end, REST enables applications to communicate with each other by using plain HTTP with URLs and HTTP methods.

Vue is a very popular JavaScript front-end framework, one that’s experiencing a huge amount of growth.

It is simple, tiny (~24KB), and very performant. It feels different from all the other JavaScript front-end frameworks and view libraries. Let’s find out why.

If you’re unsure what a JavaScript framework is, Vue is the perfect first encounter with one.

A JavaScript framework helps us to create modern applications. Modern JavaScript applications are mostly used on the Web, but also power a lot of Desktop and Mobile applications.

Until the early 2000s, browsers didn’t have the capabilities they have now. They were a lot less powerful, and building complex applications inside them was not feasible performance-wise. The tooling was not even something that people thought about.

Publii is the perfect CMS for blogs, portfolios and company websites; it allows to you build, modify and manage an unlimited number of sites from the same app with instant switching; no databases or other credentials to remember. No coding or HTML required.

Today's web applications can get pretty big, especially the JavaScript part of them. As of mid-2018, HTTP Archive puts the median transfer size of JavaScript on mobile devices at approximately 350 KB. And this is just transfer size! JavaScript is often compressed when sent over the network, meaning that the actual amount of JavaScript is quite a bit more after the browser decompresses it. That's important to point out, because as far as resource processing is concerned, compression is irrelevant. 900 KB of decompressed JavaScript is still 900 KB to the parser and compiler, even though it may be ~300 KB when compressed.

This conversation is unlikely to happen but a price could be close to that sum. Important message: one doesn’t simply estimate all the costs with 100% accuracy. But I’m going to help you get as close as possible.

So you decided to create a web app. Regardless how many technical details or promoting ideas you have about your product, you first need to understand expenses.

Web app cost estimation is something very few know how to approach. Partly, because clients tend to demand to hear an accurate number, like $17,659, while a development team is constantly trying to explain why it’s more tricky than that.

[[Texts reads 'Fields arranged by purity'. An arrow is shown pointing right with the text 'more pure'. Six people are shown representing six scientific fields. They stand on a scale of purity with the left end representing less purity and the right representing more purity. They appear in this order, from left to right: Sociology, Psychology, Biology, Chemistry, Physics, Mathematics. The mathematician stands much further to the right than any other field.]] Psychologist: Sociology is just applied Psychology. Biologist: Psychology is just applied Biology. Chemist: Biology is just applied Chemistry Physicist: Which is just applied Physics. It's nice to be on top. Mathematician: Oh, hey, I didn't see you guys all the way over there. {{Alt-text: On the other hand, physicists like to say physics is to math as sex is to masturbation.}}

is simple and easy, but deploying your app every time you make a change to your code, to send a link for a review or for staging, can be strenuous.

We put all our attention on solving this issue and the solution we came up with comes as an extension to the workflow a lot of developers already have.

We are proud to announce the Now app for GitHub.

With the Now app for GitHub, you no longer have to worry about deploying manually with each change of your code. You and your team can easily get a shareable link by creating, or pushing to, a pull request on any GitHub repository that you install the Now app to that also has a

Sometimes people want to get a certificate for the hostname “localhost”, either for use in local development, or for distribution with a native application that needs to communicate with a web application. Let’s Encrypt can’t provide certificates for “localhost” because nobody uniquely owns it, and it’s not rooted in a top level domain like “.com” or “.net”. It’s possible to set up your own domain name that happens to resolve to 127.0.0.1, and get a certificate for it using the DNS challenge. However, this is generally a bad idea and there are better options.

If you’re developing a web app, it’s useful to run a local web server like Apache or Nginx, and access it via

Alex and his team were happy that they were moving forward. But before we move on, let’s see how Hexagonal Architecture affects each tier of the test pyramid.

Unit tests stayed the same. But it’s easier to write unit tests because of Hexagonal Architecture. They can simply use a local adapter or mock as an adapter to test the function business layer in isolation.

Integration tests benefited a lot from Hexagonal Architecture. They were able to fully test integrations that they own. Third-party integrations are simulated with other adapters.

“To paraphrase Tolstoy, all fast websites are alike, but all slow websites are slow in different ways.” — Gatbsy creator Kyle Mathews.

SSGFS: static site generator fatigue syndrome. It’s a thing, people. With five hundred plus SSGs roaming the wild these days — everything from Ace, written in Ruby, to Zodiac, written in awk and sh — SSG-related announcements likely generate a collective ¯\_(ツ)_/¯ amongst developers.

But not all static site generators are created equal. While all SSGs share the same goal — uniting data with templates in order to create assets to be served statically via a content delivery network — they also all face the same set of real-world challenges. Such as creating a “glue layer” between templates and services, scaling to extremely large/complex sites, and how to enable fast incremental builds.

M.L.: The other thing that's novel about this app is because it's an app that's on your phone, and because everything is broken up into such bite-sized chunks, you can do a lesson or two anytime. I've been standing in line at the grocery store and notice the little notification pop up asking me "Hey, do you have some time to do some Grasshopper?" And I'm like "Hey, I actually do. I do have the time."

R.H.: Yeah, the notifications are cool. It caught me off guard at first, that I got a notification telling me "hey, come back and do this thing" because you have a minute. That surprised me because you don't get that with a lot of things — and it worked well.

You need 4 things to make a PWA: HTTPS hosting, a service worker, a properly configured index.html file, and a web app manifest.json file. The examples below are geared towards React but are similar for any framework.

A challenge in configuring your app is understanding the difference in how iOS and Android use the meta tags in index.html and the web app manifest. We’ll explain how each option is used below.

One painful part to this process is creating the massive number of splash screens for iOS: one for each screen size and orientation you want to support, otherwise users will see a white screen while your app loads.

So you want more registrations. You want users to log in so that you can start a relationship with your customers. You want them to them to connect with your content, your other apps, your other users, your ads, et cetera. You want their email address so that you can can market to them, engage with them, and personalize the best experience. This is all fantastic and likely true.

At Vevo, however, there is only one reason to register: to create playlists.

Playlists are engaging. We know they drive a lot of video views. They work for our growing living room experience. And we know that the hook for people to enjoy our living room experiences on Roku, Apple TV, Sony Playstation, Xbox, and Samsung’s Smart TV is through their mobile phones.

Your ultimate productivity pair is getting even better. The GitHub and Slack app has a few new features to help you turn conversations into next steps. Take action on pull requests, issues, and more right from your Slack channels to start moving work forward, faster.

Slash commands

Slack conversations often lead to decisions and actionable takeaways. Now it’s easier to start on next steps from Slack with slash commands for common GitHub actions, using /github [action] [resource]. These commands let you:

Using service workers, you can send push notifications to Chrome straight from your Node.js app. The excellent web-push npm module lets you send push notifications without going through an intermediary service like PubNub. This article will walk you through setting up a "Hello, World" example of web push notifications using a vanilla JavaScript frontend and Express on the backend. The final result will look like what you see below. The full source for this project is available on GitHub.

Credentials and Server Setup

In order to set up web push, you need to create a set of VAPID keys. VAPID keys identify who is sending the push notification. The

Google’s in-house incubator Area 120 just released an app called Grasshopper, which teaches you how to code JavaScript through a series of fun mini-games, as reported by 9to5Google. The goal, according to the coders who worked on the app, is to make coding feel fun and approachable as it increasingly is becoming a necessary skill.

The app works with bite-sized puzzles and quizzes, so you can breeze through a couple lessons each day when you have some spare time. You log in with your Google account, are walked through basic coding definitions, and then you start the exercises. The further along you get, the more complicated the puzzles become. The app will also ask if you’d like to set a practice schedule and get reminders — daily or a couple of times a week — so you don’t lose any recently learned skills.

If you have been using Node.js for sometime, you should know that it is single threaded. This is why you can’t take full advantage of multiple core machines unless you use the cluster module or a process manager like PM2.

I’m working on an application that used the cluster module for managing processes. Although, there were some benefits to this, I decided to move from the cluster module to PM2 & RabbitMQ. This blog will cover the reasons why I made this change and provide background on how and why I moved to PM2 & RabbitMQ.

The cluster module in Node.js allows easy creation of child processes that all share server ports. I was using the cluster module to

As developers and decision-makers, we need to do something to respond to that challenge. The political uncertainty we are living through obliges us to change the ways we approach our work. As the creators of applications and the data flows they create, we can play a critical and positive role in protecting our users from attacks on their privacy, their dignity, and even their safety.

One way we can do this is by adopting a privacy-first best-practice framework. This framework, known as Privacy by Design (PbD), is about anticipating, managing and preventing privacy issues before a single line of code is written. The best way to mitigate privacy risks, according to the PbD philosophy, is not to create them in the first place.

Application containers have emerged as a powerful tool in modern software development. Lighter and more resource efficient than traditional virtual machines, containers offer IT organizations new opportunities in version control, deployment, scaling, and security.

This post will address what exactly containers are, why they are proving to be so advantageous, how people are using them, and best practices for containerizing your Node.js applications with Docker.

What’s a Container?

Put simply, containers are running instances of container images. Images are layered alternatives to virtual machine disks that allow applications to be abstracted from the environment in which they are actually being run.

As the earliest, most comprehensive JavaScript framework, the Dojo Toolkit offered up intelligent building blocks for serious web developers. For example, Dojo’s very early work on deferreds and async patterns, widgets, modules, i18n, and a11y led to the standardization of promises, fetch, web components, ES modules and other best practices and mainstays of modern web development. Dojo was the first open source JavaScript framework that treated JavaScript and the browser as a platform for building robust software applications. Its focus on pushing the limits of the open web with diligent consistency means that applications authored in 2007 with Dojo still work today!

We have systems in place designed to automatically catch inappropriate predictions and not show them. However, we process billions of searches per day, which in turn means we show many billions of predictions each day. Our systems aren’t perfect, and inappropriate predictions can get through. When we’re alerted to these, we strive to quickly remove them.

It’s worth noting that while some predictions may seem odd, shocking or cause a “Who would search for that!” reaction, looking at the actual search results they generate sometimes provides needed context. As we explained earlier this year, the search results themselves may make it clearer in some cases that predictions don’t necessarily reflect awful opinions that some may hold but instead may come from those seeking specific content that’s not problematic. It’s also important to note that predictions aren’t search results and don’t limit what you can search for.