Best Laptops for Programming 2020

Best Laptops for Programming 2020

Best Laptopss for Programming 2020 – Quick List:

  1. Huawei MateBook 13 – Best Laptops for Programming 2020
  2. LG Gram 17 – Best Laptops for Programming 2020
  3. Dell Inspiron 14 5000 – Best Laptops for Programming 2020
  4. Lenovo ThinkPad P1 – Best Laptops for Programming 2020
  5. Apple MacBook Pro 13-inch – Best Laptops for Programming 2020

Welcome to WTG’s picks for the Best Laptops for Programming 2020. Computer programming (often used interchangeably with ‘coding’) means different things to different people. The heart of programming in any language is not particularly demanding – you’re only writing lines of text, which you may think any computer should be able to manage. However, there are some features that will make a considerable difference to a coder’s productivity and workflow.

Screen Size

The perfect screen size for programming is an interesting debate. With more screen area on a 15-inch laptop, it’s easier to read through code and make GUI adjustments, but you usually lose some of the portability of a smaller computer. We’ve covered screen sizes from 13 inches, and recently we had a chance to test the highly impressive new LG Gram 17-inch laptop. The LG Gram has a massive screen that will accommodate even more code, but without the weight and bulk of a typical 17-inch laptop.

Memory (RAM) & Processor

More memory will mean today’s heavyweight integrated development environments (IDEs) such as Visual Studio will run buttery-smooth, and make it easier to make changes when working with complex website layouts that have huge amounts of background code. Large, complex programs compile faster with a faster processor.

Operating System

Additionally, if you think your new idea is going to be the next big hit on Apple’s App Store, you need a laptop running MacOS to use Xcode, Apple’s IDE that’s used exclusively to develop applications for the iPhone, iPad and Mac. Similarly, if you’re considering working with game development within an environment such as UnrealEd or Unity, as part of your project, you can’t ignore graphics performance either. While you’re in the market for your new laptop, bear in mind that ergonomics make a big difference if you’re going to be coding for long stretches.

Read on for our In-depth list for Best Laptops for Programming 2020:

Huawei MateBook 13

Best Laptops for Programming 2020
Best Laptops for Programming 2020

CPU: 8th generation Intel Core i5 – i7 | Graphics: Intel UHD Graphics 620 , Nvidia GeForce MX150 2GB GDDR5 | RAM: 8GB | Storage: 256GB – 512GB SSD | Size: 21.1×28.6×1.2cm | Weight: 1.3kg | OS: Windows 10

Huawei stormed into the phone market with its excellent, competitively priced range of handsets, and now it’s done it again with laptops: this portable has great specs for coding work.

For a (relatively) modest asking price, you’re getting all the power of a Core i5 or Core i7 chip, a crisp, bright, high-resolution 13-inch display, and loads of SSD storage. It makes Apple (and other high-end manufacturers) look like peers it can compete with. What’s more, it’s super portable too, weighing just 1.3kg and less than 1.5cm thick. This laptop is definitely worth a look.

Take a Look: Huawei MateBook 13

LG Gram 17

Best Laptops for Programming 2020
Best Laptops for Programming 2020

CPU: Intel Core i7-8565U (quad core, 4.6GHz Max Turbo Boost) | Graphics: Intel UHD Graphics 620 | RAM: 16GB | Storage: 512GB SSD | Size: 38.1×21.1×1.7cm | Weight: 1.34kg | OS: Windows 10 Home

Built from a super-light magnesium-carbon alloy, the LG Gram is touted as the lightest 17-inch laptop in the world, measuring just 1.7cm thick. If you like the idea of having a bigger laptop screen for editing code on, then a 17-inch model will be the right choice, but most 17-inch laptops are unfortunately thick, heavy and difficult to carry around. With the LG Gram 17, you don’t have to make that concession – plus it has a specification that will ensure any programming tools run without a hitch. 

LG has equipped the Gram 17 gorgeous IPS WXGA (2560×1600) screen that looks sharp and bright, with high colour accuracy, a quad core Intel Core i7 processor, a 512GB SSD and 16GB of memory. That’s enough performance to chew through any heavyweight IDE out there.

Take a Look: LG Gram 17

Dell Inspiron 14 5000

Best Laptops for Programming 2020
Best Laptops for Programming 2020

CPU: Intel Core i5-8265U (quad core, 3.9GHz Max Turbo Boost) | Graphics: NVIDIA GeForceR MX150 2GB GDDR5 | RAM: 8GB | Storage: 256GB SSD | Size: 32.4×23.2×1.9cm | Weight: 1.48kg | OS: Windows 10

The Dell Inspiron 14 5000 is a great all-round laptop for programming. There are three key things to look for if you want a great modern laptop – a FullHD (1,920×1,080) IPS display, at least a quad-core processor and SSD storage. Aside from that, it’s easy to get fixated on bells and whistles when talking about laptops but many coding tasks don’t require anything particularly exotic.

Dell’s latest Inspiron 14 5000 laptops tick all these boxes, which will guarantee great running performance and an excellent system for all computing tasks, including more taxing processing jobs. The starting specification gets you the aforementioned high resolution display, a quad-core Intel Core i5 processor, 8GB of memory and a 256GB SSD, with a sleek build and a starting price that really isn’t too extortionate. Go up a level and there’s an additional 1TB hard disk and a Core i7 processor.

Take a Look: Dell Inspiron 14 5000

Lenovo ThinkPad P1

Best Laptops for Programming 2020
Best Laptops for Programming 2020

CPU: Six Core Intel Core i7 / Xeon | Graphics: Nvidia Quadro P2000 | RAM: 8-16GB | Storage: 256GB-4TB | Size: 36.2×24.6×1.8cm | Weight: 1.7kg | OS: Windows 10 Home / Pro

Rounding off our pick of the Best Laptopss for programming is the ThinkPad p1. With this model, Lenovo has taken the kind of computing experience most of us assume is only possible with a desktop workstation housed in a large box under a desk, and not only made it portable, but squeezed it into a form that in thickness, is close to an Ultrabook.

It’s the only laptop of this size that offers professional-grade Xeon processors, with up to six cores, an Nvidia Quadro P2000 graphics card and up to 64GB of memory. You can stuff it with up to 4TB of nVME SSD storage, and opt for a 15.6-inch 4K display that’s not only touch-sensitive, but color-accurate too. It’s a great general-purpose workstation, capable of all kinds of visual design work and heavy lifting processor-intensive tasks. 

Of course, it works great for coding as well. That’s partly thanks to Lenovo’s excellent keyboard design, but in general the ThinkPad P1 is superbly built, including a semi-rugged chassis that can survive light knocks, a very healthy selection of ports, retaining two original USB Gen 1 ports, as well as two newer, Thunderbolt capable USB type C ports and HDMI. Make no mistake, if it’s raw performance you want, this is the laptop to go for.

Take a Look: Lenovo ThinkPad P1

Microsoft Surface Laptop 2

Best Laptops for Programming 2020
Best Laptops for Programming 2020

CPU: Intel Core i5 – i7 | Graphics: Intel UHD Graphics 620 | RAM: 8GB – 16GB | Storage: 128GB – 1TB SSD | Size: 30.8x 22.3×1.4cm | Weight: 1.25kg | OS: Windows 10

As it comes from Microsoft, the Surface Laptop 2 effectively offers a pure Windows 10 experience, making it a benchmark for testing and developing Windows software. It has a great design, a solid aluminium shell and a very comfortable keyboard. The new version comes in a variety of colors (including matte black) and offers fairly meaty specifications, with a Core i7, up to 16GB of memory, 1TB SSD storage and a high-resolution 13.5-inch screen that works with Microsoft’s Surface Pen stylus.

Take a Look: Microsoft Surface Laptop 2

Apple MacBook Pro 13-inch

Best Laptops for Programming 2020
Best Laptops for Programming 2020

CPU: 2-4 Cores | Graphics: Intel Iris Plus 640-655 | RAM: 8-16GB | Storage: 128GB-2TB | Size: 30.4cm x 21.2cm x 1.5cm | Weight: 1.37kg | OS: MacOS

While Apple’s MacBook and the newly updated MacBook Air are the most portable Apple laptops in the range, with its recent update, the 13-inch MacBook Pro is currently our first choice for working with Xcode to develop apps for iOS and MacOS when on the go.

Quad-core eight-generation Intel CPUs are now an option, delivering across-the-board performance improvements, making this MacBook both portable and powerful. While it might weigh slightly more than the aforementioned MacBook models, the performance boost will be worth it when running taxing processing tasks, such as heavy-duty coding projects.

And since Macs can run Windows just fine via bootcamp or in a virtual machine such as Parallels, you’ll be able to use your Mac to develop apps for any platform on Earth.

Take a Look: Apple MacBook Pro 13-inch

If you’re on the hunt for a design-specific device, take a look at our roundup of the Best Laptops for graphic design.

Best Laptops for Programming

Computer programming is the process of designing and building an executable computer program for accomplishing a specific computing task. Programming involves tasks such as: analysis, generating algorithms, profiling algorithms’ accuracy and resource consumption, and the implementation of algorithms in a chosen programming language (commonly referred to as coding).[

Best Laptops for Developers

The source code of a program is written in one or more languages that are intelligible to programmers, rather than machine code, which is directly executed by the central processing unit. The purpose of programming is to find a sequence of instructions that will automate the performance of a task (which can be as complex as an operating system) on a computer, often for solving a given problem. The process of programming thus often requires expertise in several different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.

Best Laptops for Programming

Tasks accompanying and related to programming include: testingdebuggingsource code maintenance, implementation of build systems, and management of derived artifacts, such as the machine code of computer programs. These might be considered part of the programming process, but often the term software development is used for this larger process with the term programmingimplementation, or coding reserved for the actual writing of code. Software engineering combines engineering techniques with software development practices. Reverse engineering is the opposite process. A hacker is any skilled computer expert that uses their technical knowledge to overcome a problem, but it can also mean a security hacker in common language.

laptop (also laptop computer), often called a notebook, is a small, portable personal computer (PC) with a “clamshell” form factor, typically having a thin LCD or LED computer screen mounted on the inside of the upper lid of the clamshell and an alphanumeric keyboard on the inside of the lower lid. The clamshell is opened up to use the computer. Laptops are folded shut for transportation, and thus are suitable for mobile use.[1] Its name comes from lap, as it was deemed to be placed on a person’s lap when being used. Although originally there was a distinction between laptops and notebooks (the former being bigger and heavier than the latter), as of 2014, there is often no longer any difference.[2] Laptops are commonly used in a variety of settings, such as at work, in education, for playing games, Internet surfing, for personal multimedia, and general home computer use.

Best Laptops for Programming

Laptops combine all the input/output components and capabilities of a desktop computer, including the display screen, small speakers, a keyboardhard disk driveoptical disc drive, pointing devices (such as a touchpad or trackpad), a processor, and memory into a single unit. Most modern laptops feature integrated webcams and built-in microphones, while many also have touchscreens. Laptops can be powered either from an internal battery or by an external power supply from an AC adapter. Hardware specifications, such as the processor speed and memory capacity, significantly vary between different types, makes, models and price points.

Best Laptops for Developers

Design elements, form factor and construction can also vary significantly between models depending on intended use. Examples of specialized models of laptops include rugged notebooks for use in construction or military applications, as well as low production cost laptops such as those from the One Laptop per Child (OLPC) organization, which incorporate features like solar charging and semi-flexible components not found on most laptop computers. Portable computers, which later developed into modern laptops, were originally considered to be a small niche market, mostly for specialized field applications, such as in the military, for accountants, or for traveling sales representatives. As the portable computers evolved into the modern laptop, they became widely used for a variety of purposes.[3]

Best Laptops for Web Developers

The terms laptop and notebook are used interchangeably to describe a portable computer in English, although in some parts of the world one or the other may be preferred. There is some question as to the original etymology and specificity of either term—the term laptop appears to have been coined in the early 1980s to describe a mobile computer which could be used on one’s lap, and to distinguish these devices from earlier, much heavier, portable computers (informally called “luggables”). The term “notebook” appears to have gained currency somewhat later as manufacturers started producing even smaller portable devices, further reducing their weight and size and incorporating a display roughly the size of A4 paper; these were marketed as notebooks to distinguish them from bulkier laptops.[4] Regardless of the etymology, by the late 1990s and towards the 2000s, the terms were interchangeable.

Best Laptops for Web Developers

As the personal computer (PC) became feasible in 1971, the idea of a portable personal computer soon followed. A “personal, portable information manipulator” was imagined by Alan Kay at Xerox PARC in 1968,[5] and described in his 1972 paper as the “Dynabook“.[6] The IBM Special Computer APL Machine Portable (SCAMP) was demonstrated in 1973. This prototype was based on the IBM PALM processor.[7] The IBM 5100, the first commercially available portable computer, appeared in September 1975, and was based on the SCAMP prototype.[8]

Best Laptops for Web Developers

As 8-bit CPU machines became widely accepted, the number of portables increased rapidly. The first “laptop-sized notebook computer” was the Epson HX-20,[9][10] invented (patented) by Suwa Seikosha‘s Yukio Yokozawa in July 1980,[11] introduced at the COMDEX computer show in Las Vegas by Japanese company Seiko Epson in 1981,[12][10] and released in July 1982.[10][13] It had an LCD screen, a rechargeable battery, and a calculator-size printer, in a 1.6 kg (3.5 lb) chassis, the size of an A4 notebook.[10] It was described as a “laptop” and “notebook” computer in its patent.[11]

Best Laptops for Programming

The portable micro computer Portal of the French company R2E Micral CCMC officially appeared in September 1980 at the Sicob show in Paris. It was a portable microcomputer designed and marketed by the studies and developments department of R2E Micral at the request of company CCMC specializing in payroll and accounting. It was based on an Intel 8085 processor, 8-bit, clocked at 2 MHz. It was equipped with a central 64 KB RAM, a keyboard with 58 alpha numeric keys and 11 numeric keys ( separate blocks ), a 32-character screen, a floppy disk : capacity = 140 00 characters, of a thermal printer : speed = 28 characters / second, an asynchronous channel, a synchronous channel, a 220 V power supply. It weighed 12 kg and its dimensions were 45 x 45 x 15 cm. It provided total mobility. Its operating system was the aptly named Prologue.

Best Laptops for Programming

The Osborne 1, released in 1981, was a luggable computer that used the Zilog Z80 and weighed 24.5 pounds (11.1 kg).[14] It had no battery, a 5 in (13 cm) cathode ray tube (CRT) screen, and dual 5.25 in (13.3 cm) single-density floppy drives. Both Tandy/RadioShack and Hewlett Packard (HP) also produced portable computers of varying designs during this period.[15][16] The first laptops using the flip form factor appeared in the early 1980s. The Dulmont Magnum was released in Australia in 1981–82, but was not marketed internationally until 1984–85. The US$8,150 (US$21,160 today) GRiD Compass 1101, released in 1982, was used at NASA and by the military, among others. The Sharp PC-5000,[17] Ampere[18] and Gavilan SC released in 1983. The Gavilan SC was described as a “laptop” by its manufacturer,[19] while the Ampere had a modern clamshell design.[18][20] The Toshiba T1100 won acceptance not only among PC experts but the mass market as a way to have PC portability.[21]

Best Laptops for Programming

From 1983 onward, several new input techniques were developed and included in laptops, including the touchpad (Gavilan SC, 1983), the pointing stick (IBM ThinkPad 700, 1992), and handwriting recognition (Linus Write-Top,[22] 1987). Some CPUs, such as the 1990 Intel i386SL, were designed to use minimum power to increase battery life of portable computers and were supported by dynamic power management features such as Intel SpeedStep and AMD PowerNow! in some designs.

Best Laptops for Coding

Displays reached 640×480 (VGA) resolution by 1988 (Compaq SLT/286), and color screens started becoming a common upgrade in 1991, with increases in resolution and screen size occurring frequently until the introduction of 17″ screen laptops in 2003. Hard drives started to be used in portables, encouraged by the introduction of 3.5″ drives in the late 1980s, and became common in laptops starting with the introduction of 2.5″ and smaller drives around 1990; capacities have typically lagged behind physically larger desktop drives. Optical storage, read-only CD-ROM followed by writeable CD and later read-only or writeable DVD and Blu-ray players, became common in laptops early in the 2000s.

Best Laptops for Coding

Since the introduction of portable computers during late 1970s, their form has changed significantly, spawning a variety of visually and technologically differing subclasses. Except where there is a distinct legal trademark around a term (notably Ultrabook), there are rarely hard distinctions between these classes and their usage has varied over time and between different sources.

Which Monitor is Best for Graphic Designers

The form of the traditional laptop computer is a clamshell, with a screen on one of its inner sides and a keyboard on the opposite, facing the screen. It can be easily folded to conserve space while traveling. The screen and keyboard are inaccessible while closed. Devices of this form are commonly called a ‘traditional laptop’ or notebook, particularly if they have a screen size of 11 to 17 inches measured diagonally and run a full-featured operating system like Windows 10macOS, or GNU/Linux. Traditional laptops are the most common form of laptops, although Chromebooks, Ultrabooks, convertibles and 2-in-1s (described below) are becoming more common, with similar performance being achieved in their more portable or affordable forms.

Best Laptops for Programming

subnotebook or an ultraportable, is a laptop designed and marketed with an emphasis on portability (small size, low weight, and often longer battery life). Subnotebooks are usually smaller and lighter than standard laptops, weighing between 0.8 and 2 kg (2-5 lb),[23] with a battery life exceeding 10 hours.[24] Since the introduction of netbooks and ultrabooks, the line between subnotebooks and either category has blurred. Netbooks are a more basic and cheaper type of subnotebook, and while some ultrabooks have a screen size too large to qualify as subnotebooks, certain ultrabooks fit in the subnotebook category. One notable example of a subnotebook is the Apple MacBook Air.

Best Laptops for Coding

The netbook is an inexpensive, light-weight, energy-efficient form of laptop, especially suited for wireless communication and Internet access.[25][26] Netbooks first became commercially available around 2008, weighing under 1 kg, with a display size of under 9″. The name netbook (with net short for Internet) is used as “the device excels in web-based computing performance”.[27] Netbooks were initially sold with light-weight variants of the GNU operating system (with Linux kernel), although later versions often have the Windows XP or Windows 7 operating systems. The term “netbook” is largely obsolete,[28] although machines that would have once been called netbooks—small, inexpensive, and low powered—never ceased being sold, in particular the smaller Chromebook models.

Best Laptops for Coding

The latest trend of technological convergence in the portable computer industry spawned a broad range of devices, which combined features of several previously separate device types. The hybridsconvertibles and 2-in-1s emerged as crossover devices, which share traits of both tablets and laptops. All such devices have a touchscreen display designed to allow users to work in a tablet mode, using either multi-touch gestures or a stylus/digital pen.

Convertibles are devices with the ability to conceal a hardware keyboard. Keyboards on such devices can be flipped, rotated, or slid behind the back of the chassis, thus transforming from a laptop into a tablet. Hybrids have a keyboard detachment mechanism, and due to this feature, all critical components are situated in the part with the display. 2-in-1s can have a hybrid or a convertible form, often dubbed 2-in-1 detachables and 2-in-1 convertibles respectively, but are distinguished by the ability to run a desktop OS, such as Windows 10. 2-in-1s are often marketed as laptop replacement tablets.

Best Laptops for Programming

2-in-1s are often very thin, around 10 millimetres (0.39 in), and light devices with a long battery life. 2-in-1s are distinguished from mainstream tablets as they feature an x86-architecture CPU (typically a low- or ultra-low-voltage model), such as the Intel Core i5, run a full-featured desktop OS like Windows 10, and have a number of typical laptop I/O ports, such as USB 3 and Mini DisplayPort.

Best Laptops for Programming

2-in-1s are designed to be used not only as a media consumption device, but also as valid desktop or laptop replacements, due to their ability to run desktop applications, such as Adobe Photoshop. It is possible to connect multiple peripheral devices, such as a mouse, keyboard and a number of external displays to a modern 2-in-1.

Best Laptops for Programming

Microsoft Surface Pro-series devices and Surface Book are examples of modern 2-in-1 detachables, whereas Lenovo Yoga-series computers are a variant of 2-in-1 convertibles. While the older Surface RT and Surface 2 have the same chassis design as the Surface Pro, their use of ARM processors and Windows RT do not classify them as 2-in-1s, but as hybrid tablets. Similarly, a number of hybrid laptops run a mobile operating system, such as Android. These include Asus’s Transformer Pad devices, examples of hybrids with a detachable keyboard design, which do not fall in the category of 2-in-1s.

Best Laptops for Programming

A desktop-replacement laptop is a class of large device which is not intended primarily for mobile use. These devices are bulkier and not as portable as other laptops, and are intended for use as compact and transportable alternatives to a desktop computer.[29] Desktop replacements are larger and typically heavier than other classes of laptops. They are capable of containing more powerful components and have a 15-inch or larger display.[29] Desktop replacement laptops’ operation time on batteries is typically shorter than other laptops; in rare cases they have no battery at all. In the past, some laptops in this class used a limited range of desktop components to provide better performance for the same price at the expense of battery life, although this practice has largely died out.[30] The names Media Center Laptops and Gaming Laptops are used to describe specialized notebook computers, often overlapping with the desktop replacement form factor.[23]

Best Laptops for Programming

A rugged laptop is designed to reliably operate in harsh usage conditions such as strong vibrations, extreme temperatures, and wet or dusty environments. Rugged laptops are usually designed from scratch, rather than adapted from regular consumer laptop models. Rugged laptops are bulkier, heavier, and much more expensive than regular laptops,[31] and thus are seldom seen in regular consumer use.

Best Laptops for Programming

Programmable devices have existed for centuries. As early as the 9th century, a programmable music sequencer was invented by the Persian Banu Musa brothers, who described an automated mechanical flute player in the Book of Ingenious Devices.[3][4] In 1206, the Arab engineer Al-Jazari invented a programmable drum machine where musical mechanical automata could be made to play different rhythms and drum patterns, via pegs and cams.[5][6] In 1801, the Jacquard loom could produce entirely different weaves by changing the “program” – a series of pasteboard cards with holes punched in them.

Best Laptops for Programming

Code-breaking algorithms have also existed for centuries. In the 9th century, the Arab mathematician Al-Kindi described a cryptographic algorithm for deciphering encrypted code, in A Manuscript On Deciphering Cryptographic Messages. He gave the first description of cryptanalysis by frequency analysis, the earliest code-breaking algorithm.[7]

The first computer program is generally dated to 1843, when mathematician Ada Lovelace published an algorithm to calculate a sequence of Bernoulli numbers, intended to be carried out by Charles Babbage‘s Analytical Engine.[8]

Best Laptops for Programming

In the 1880s Herman Hollerith invented the concept of storing data in machine-readable form.[9] Later a control panel (plugboard) added to his 1906 Type I Tabulator allowed it to be programmed for different jobs, and by the late 1940s, unit record equipment such as the IBM 602 and IBM 604, were programmed by control panels in a similar way; as were the first electronic computers. However, with the concept of the stored-program computers introduced in 1949, both programs and data were stored and manipulated in the same way in computer memory.[citation needed]

Best Laptops for Programming

Machine code was the language of early programs, written in the instruction set of the particular machine, often in binary notation. Assembly languages were soon developed that let the programmer specify instruction in a text format, (e.g., ADD X, TOTAL), with abbreviations for each operation code and meaningful names for specifying addresses. However, because an assembly language is little more than a different notation for a machine language, any two machines with different instruction sets also have different assembly languages.


Compaq Armada laptop from the late 1990s


Apple MacBook Air, an ultraportable laptop weighing under 3.0 lb (1.36 kg)


Lenovo‘s ThinkPad business laptop, originally an IBM product


Asus Transformer Pad, a hybrid tablet, powered by Android OS


Microsoft Surface Pro 3, 2-in-1 detachable


Alienware gaming laptop


Panasonic Toughbook CF-M34, a rugged laptop/subnotebook

Since the introduction of portable computers during late 1970s, their form has changed significantly, spawning a variety of visually and technologically differing subclasses. Except where there is a distinct legal trademark around a term (notably Ultrabook), there are rarely hard distinctions between these classes and their usage has varied over time and between different sources.

Best Laptops for Programming

High-level languages made the process of developing a program simpler and more understandable, and less bound to the underlying hardware. FORTRAN, the first widely used high-level language to have a functional implementation, came out in 1957[10] and many other languages were soon developed – in particular, COBOL aimed at commercial data processing, and Lisp for computer research.

Best Laptops for Programming

Programs were mostly still entered using punched cards or paper tape. See computer programming in the punch card era. By the late 1960s, data storage devices and computer terminals became inexpensive enough that programs could be created by typing directly into the computers. Text editors were developed that allowed changes and corrections to be made much more easily than with punched cards.

best laptop for programming
best laptops for programming
best programming laptop
best laptops for coding
best laptop for developers
best developer laptop
best laptop for coding
laptop for programming
best laptops for developers
best programming laptops
best laptop for computer science
laptops for programming
programming laptop
best laptops for computer science
best laptop for web development
best laptops for programming students
best windows laptops
best laptop for it professionals
best computer for programming
best laptops for programmers
best laptops for developers
best laptop for programmers
best computers for programming
best laptop for programming 2019
programmer laptops
coding laptop
good laptops for programming
best laptop for programming 2017
best laptops for software development
best laptops for computer programming
best developer laptop 2017
programmers laptops
developer laptop
best laptop for programming and gaming
best laptop for software development
best laptop for programming 2018
best development laptop
good laptop for coding
best coding laptop
best laptop for programmers
best laptop for programming student
laptop for coding
best laptop for coders
laptop for web development
best laptop for it professional
good computers for programming
best chromebook for programming
laptops for coding
programming laptops
best computer for coding
good laptops for programming
best coding computers
best computer for developers
good computers for coding
good laptop for programming
best laptops for computer science students 2018
laptop for coding
best coding laptops
best laptops for computer science students 2017
best developer laptop 2016
laptop for developers
best laptop for software engineer
best laptops for programming students
best laptops for web developers
best chromebook for coding
cheap programming laptop
laptops for coding
best laptops for web development
best laptop for programmer
good developer laptop
best computers for coding
best laptop for programming and design
best macbook for programming
best laptops for software engineers
best windows laptop for developers
good programming laptop
best laptop for it professionals
best programmer laptop
cheap laptop for programming
laptops for computer science
best laptops for software development
laptop for it professionals
best laptop for programming 2016
best laptops for computer science majors
best laptops for computer programmers
best macbook for developers
lenovo developer laptop
best 2018 laptop
computer for programming
best computer science laptop
best laptops for development
notebook for programmers
good laptops for coding
best laptop for computer programmers
best laptop for computer science students
cheap laptop for coding
good laptop for programming
best laptops for programming 2016
developer computers
best laptops for it professionals
best laptop for web design
top laptops for programming
best programming computer
best laptops for computer programming
cheap laptops for programming
laptops for developers
programming notebook
computer for coding
best laptop for computer programming
best mac for programming
best laptops for computer science students
programmer notebook
best tablet for coding
macbook for programming
best programming laptop 2017
best programming laptop 2016
best laptop for software engineers
tablet for programming
good laptop for coding
best macbook for developers 2017
laptops for web developers
best pc for programming
best laptop for full stack developer
surface pro 6 for programming
developer notebook
laptop for computer science
good computer for programming
best macbook pro for programming
best developer laptops
networking laptops
surface pro 6 for coding
best laptops for software developers
best laptop for coders
best computer for web development
best laptop for game development
macbook pro for programming
best laptop for software engineering
top laptops for programmers
best computers for computer science
macbook air for programming
coding laptops
computer science laptop
computer for software development
laptop for coding bootcamp
good computers for programming
macbook for developers
developer laptops
best laptop for web designing
surface pro for programming
best chromebook for programming
development laptop
computers for programming
best cheap laptop for programming
is macbook air good for programming
best laptop for software engineer
best laptop for computer science majors
best coding computers
best windows laptop for programming
best computer for developers
best thinkpad laptop
laptop for software development
best laptop for developers 2017
good computers for coding
best laptop for it professional
laptops for programmers
best computer for software development
computer science laptops
best laptop for programmer
laptop programming
good developer laptop
best software development laptop
computers for coding
best laptop for programming and coding
best laptop for it
best laptops for coding and programming
top programming laptops
best pc for developers
best windows laptop for developers
best laptops for programming 2017
developers laptop
what is the best computer for programming
best programmer laptop
best laptop for web development 2017
best macbook for coding
best laptop for software developers
coding notebook
best chromebook for coding
best laptop for computer science major
best laptops for students 2018
best mac for coding
good laptops for computer science
best laptop web development
best pc for software development
best computers for developers
best laptops for development
best laptop programmer
best laptop for development
web developer laptop
best laptop for programming students
best laptops for programming 2018
best laptops for software engineers
best laptops for coding 2018
best development laptop 2017
best tablet for programming 2017
macbook pro for developers
best laptops for game development
best computers for software developers
surface pro 4 for programming
pc for programming
developer laptop 2017
best pc for coding
laptop for visual studio
developer computer
best laptops for web design
best laptop for college programming
good coding laptops
best laptop for web development and programming
laptop for it professionals
best computer for programmers
laptop for game development
best laptop for web developers
best laptop for computer science 2018
best budget programming laptop
best laptops for computer science students 2019
best lenovo laptop for programming
best tablet for programming
what’s the best computer to buy
best mac laptop for programming
best coding laptop 2017
laptops for programmers
best computer for computer programming
lenovo programming laptop
best programing laptop
best laptops for it professionals
best thinkpad for programming
surface pro 4 programming
best laptop for coding 2016
macbook air for coding
computers for programmers
top laptops for programming
best laptop for visual studio
surface pro 6 for programming
best laptop for full stack developer
best laptop for web development 2016
hp developer laptop
best computer for computer science
best computer to learn coding
best laptop for android development
macbook for coding
best laptop for programmers 2015
programmers laptop
best computer for web design
best computer to code on
best cheap programming laptop
best programming laptop 2018
cheap coding laptop
surface pro 6 for coding
laptop for web design
laptop for web developers
top laptops for programmers
best mac for developers
best game development laptop
laptops for programming students
best laptop for coding and gaming
best coding computer
best ultrabook for programming
best programing laptops
best laptops for coding 2017
best laptop for developers 2018
software developer laptop
dell programming laptop
good laptop for computer science
best chromebook for developers
best computers for web developers
best laptops for web developers 2017
laptop for programmers
best macbook pro for programming
programming on surface pro
best processor for programming
best computers for programmers
best budget laptop for programming
best notebook for programming
surface pro for developers
best computer for software engineering
best computer for app development
python laptop
laptops good for coding
best windows laptop for coding
best laptop for cs students
best software development laptop
best laptop for development
best laptop to learn coding
coding on surface pro
best computer for programming student
web development laptop
best computer for a programmer
best web developer laptop
best laptops for developers 2017
which apple laptop is best
macbook air programming
software development laptop
best tablets for programming
top coders
computer for developers
programming tablets
best tablet for coding
thinkpad for programming
good computer for coding
budget programming laptop
programmer laptop
best web development laptop
best laptops for programmers 2017
laptop for coding bootcamp
best laptop web development
developer laptops 2016
cheap laptops for coding
best cheap laptop for coding
laptops for computer science majors
best laptop for scientific computing
best laptops for cs majors
best laptops for coding and programming
good affordable laptop
best pc for developers
computers for developers
best laptop for game design
laptops for computer programming
best laptop computer for programming
software engineer laptop
laptops for computer programmers
coding on macbook air
laptops for software developers
best computers for software developers
computer for programmers
what is the best computer for programming
macbook air programmer
best laptop for computer science student
laptop for computer science majors
best mac for app development
best laptop to code
good cheap laptops for coding
best pc for web development
best mac for software development
what is the best laptop out there
best ultrabook for developers
best pc for software development
top developer laptops
best laptop for web design 2017
developer pc
best mac for web development
programming on macbook air
best computer for computer science major
portable programming laptop
game dev laptop
best programming laptops 2015
best programming laptops 2017
good cheap laptops for programming
best laptop for coding on the go
best laptop specs for programming
best macbook for web development
computer science major laptop
pro programming
mac for developers
game development laptop
good coding laptops
best laptop for college programming
macbook air for programming 2018
mac for programmers
best computers for computer science students
laptops for computer science students
best developer laptops 2017
laptop for computer science major
best laptop for software engineering students
laptop for scientific computing
best computers for computer science majors
laptop for python programming
laptops for game development
ultrabook for programming
best laptop for college computer science
best laptops for game design
web development computer
best programming laptop 2015
surface pro 3 for programmers
budget laptop for programming
laptop for computer science student
networking laptops
laptop for android development
best laptop for plc programming
best laptop for game development 2017
best computer for game development 2017
best dell laptop for developers
best laptop for programming in india
programming pc
good laptops for computer science majors
surface pro 3 programming
laptops for web design
laptop specs for programming
laptops for programmers 2016
best laptop for computer science 2017
best laptops for web designers
game design laptop
networking laptop
programming on surface pro 3
best computer for android development
surface pro 3 for programming
best laptops for networking
best laptop for building websites
best laptop for cs student
cheap linux laptop for programming
laptop for cs major
best laptop for web designers
computer specs for programming
best computers for web design
macbook air for web development
best laptop for game development 2018
best best laptop
laptop for computer science students
coding on a macbook pro
best laptops for software developers 2015
best laptop for game design student
best laptops for cyber security
coding on surface pro 3
macbook air vs macbook pro for programming
is mac or windows better for programming
cyber security laptop
best desktop for coding
best computer for a student
best laptop for networking
programmers notebook
best laptop for cyber security
laptop for game development 2017
best pc for web design
best computer for cs major
computer science student laptop
best laptop for video game design
game developer laptop
programming on a macbook air
best laptop for data science 2017
mac for programming
best laptop for computer science engineering students
top laptop 2016
portable programing
chromebook web development
laptops for game design
macbook pro 13 vs 15 programming
computers for computer science students
are macs good for programming
best laptops for video game design
best computer for game development 2018
best programming laptop under 500
mac programmers
computers for web design
mac or pc for programming
best laptops for programming 2015
toshiba portege z30-c-138 best buy
good computer for computer science major
best laptop for computer science college student
laptop or desktop for programming
software laptops
computer for web design
best laptop for network engineer
programming laptop 2016
macbook for app development
laptop for game design
mac vs pc for programming
best macbook for ios development
best laptop for security professionals 2017
best laptops for computer science major
computer developers
are macs good for coding
best linux laptop for developers 2016
chromebook for programming
mac computer programming
windows or mac for programming
best laptop for cyber security students 2017
best chromebook for web development
computer setup for programming
best laptop for information security professionals
chromebook for web development
top developer
pc or mac for programming
best laptop for statistical analysis 2017
is mac good for programming
why do coders use macs
best programmers
hp programmers
mac vs windows for programming
the best programmer
best computer build for programming
best laptop for big data
best laptops for data science
i5 or i7 for programming
best laptop for cyber security students
best computer for unity development
pay what you want learn to code 2017 bundle review
windows or mac for coding
best laptop for cyber security major
good computers for coding
computer for computer science student
mac for coding
chromebook for programmers
laptop code
are chromebooks good for programming
surface go for programming
best mac for web development
best mac for web development
best mac for web development
best laptop for machine learning
best laptop for data science 2018
notebook for design
programming pc
programming pc
programming pc
building a pc for programming
mac or windows for coding
for programming
laptop vs desktop programming
why do programmers use macs
why do programmers use mac
scientific laptop
chromebooks for programming
i5 vs i7 for programming
laptop front
cheap programmers
is 8gb ram enough for programming
microsoft computer programming
laptop building website
is 8gb ram enough for coding
best laptop for machine learning 2017
cheap software developer
cpu coder
best laptop for scientists
mac software development
windows vs mac for programming
laptop on
top programmers
asus laptop software
best laptops for scientists
best computer code to learn
lenovo laptop software
top computer programmers
st johns laptop program
mac or pc for web development
laptop top
radar programming
hp star wars laptop best buy
top developers
hp programming
end coder pro
chromebook programming
macbook for ios development
web development on chromebook
programming laptops
8gb vs 16gb ram programming
best laptops for machine learning
microsoft surface development
best buy software programs
r laptop deals
surface pro visual studio
macbook program
machine learning laptop
applications for hp laptops
learn programming on mac
computer coding screen
chromebook for coding
touch screen programmer
software development on chromebook
chromebook programming python
top software developers
good cheap laptops for programming
ram programming
computer software developer
laptops comp
best machine learning laptop
software coders
web development chromebook
programming on mac
best laptop for data science
best laptop for deep learning
laptops for data science
what makes a good computer programmer
macbook pro python
good laptop for coding
chromebook coding
coder development program
macbook air 11.5 inch
game coders
best developer laptop 2016
data science laptop
laptop for data science
portable programming
r laptop
how much ram for programming
apple coding game
best programming laptop 2015
laptop database
java development on chromebook
top programming
r laptops
windows 10 programming
hp software engineer
programmers laptop
best notebook for programming
best laptop data science
programming screen
best programming school
microsoft software developer
programming chromebook
python for sysadmins
best data science laptops
programmer laptops
programming on a mac
best laptop for plc programming
macbook pro for computer science
learn macbook air
best laptops for programming students
chromebook programming tools
laptop requirements for computer science
java programming on chromebook
the building coder
best laptop programmer
top programming software
greatest programmers
best programming
pro comp programmer
best software developers
best programmer in india
good coding laptops
best programming laptops 2015
ram for programming
java pro reviews
best computers for programmers
intel game dev program
best coder in the world
web developer laptop
macbook code
chromebook android development
gifts for programmers 2017
programing computers
mac programming
python coders
best laptop for programming students
best programmers websites
laptops for machine learning
elegant encounters dotnet
tech 2 programmer
android programming keyboard
arduino programming notebook
ideal programming
android for programmers
cheap coding laptop
cheap programming laptop
laptops for programming students
python programming on chromebook
best power programmers
touch screen programing
c++ on chromebook
macbook air for engineering
laptop for machine learning
best laptop for programmers 2015
developer machines
best laptops for software developers 2015
top developer websites
top laptops for programming
best laptop for full stack developer
best programming laptops 2017
how to be a good developer
top developer games
good laptop for programming
microsoft programming software
i need a computer programmer
best coding laptop 2017
best coders in the world
buy python software
windows software developer
best ultrabook for developers
computer programmer news
pick programming
apple software developer
looking for programmers
top software developer
windows coding software
best software developer
best developers in the world
web coders
windows programming
best ide for web development 2017
best developer laptop 2017
programmer setup
good programming laptop
laptop comp
microsoft learn to code
programmer news
best laptop for coding 2016
chromebook python
programming on chromebook
learning macbook pro
top laptops for programmers
best r software
programming computers
good developer
game coder
programming windows
programming on windows
chromebook development
visual studio programmers
cheap python
programming app for mac
high-performance programmer
chromebook for development
budget bootcamp reviews
android 6 for programmers
coding on chromebook
code 5 programmer
software programmers
coding python on chromebook
programming for windows 10
developer chromebook
programmers from india
notebook mac
java slim review
arduino ide on chromebook
learn to code microsoft
hp developer laptop
best programming games
developer review
best programing laptop
microsoft software development
best computer for programming
best performance programmer
best developer laptops 2017
windows coding
surface pro 6 for coding
software for developer
best computer for coding
google programming game
best laptop for software developers
computer for programming
cheap laptop for coding
best laptop for cyber security students 2017
best coding computers
good computers for programming
surface pro for developers
best computer for developers
best laptop for coders
pc for programming
laptop for software development
best macbook for developers
best computers for developers
best computer for computer programming
surface pro 4 programming
best laptops for developers 2017
best laptops for development
best mac laptop for programming
best laptop for web design 2017
best laptops for coding 2017
best laptop to learn coding
software developer laptop
computer for developer
best tablet for programming 2017
laptops for software developers
best laptop for networking
best laptop for computer science 2017

How to Add a Back to Top Button to Your WordPress Site

How to Add a Back to Top Button to Your WordPress Site

User experience is often an overlooked aspect of website design, which is unfortunate, really, because it plays an important and essential role in ensuring visitors can easily use and navigate your site.

It’s in your best interests to make your visitors’ experience seamless and as effortless as possible. After all, you want them to spend time on your site, read your content and even buy your products or services if you offer any.

A small feature that many sites offer is a “back to the top” button, which allows users who have scrolled through pages of content to quickly return to the top of the page. This feature is especially useful for sites that contain a lot of information or have infinite scroll.

In today’s WTG project we’ll show you how to add a dynamic “back to the top” button to your site in a few quick and easy steps.

Before You Begin

An example of a back to top button
An example of the back to top button we’ll be creating.

The button we’re going to create will sit in the bottom-right of the page, will be fully responsive, fade into visibility when you scroll down and smoothly scroll up to the top of the page when the button is clicked. Neat, right?

First, there is one incredibly important action you should take before you start.

The steps to set up the button are simple, but it will require editing theme files. For this reason, it’s important that you backup your style.css and functions.php files in the theme where you want the button to appear. While you’re at it, back up your whole site just to be safe and because it’s a good habit.

If you want to add a back to top button to an existing theme, it’s a WordPress best practice to create a child theme so that any changes you make will not be erased by future updates of the original theme.

All set? Let’s go!

Copy and Upload the Script

Access your site’s files via FTP or cPanel and navigate to your theme’s JavaScript folder, which will be in wp-content > themes > your-theme > js.

The location of this file may differ from theme to theme, but usually, you’ll find it here. If your theme doesn’t contain a js folder, then go ahead and create one.

In this folder, create a new file called topbutton.js. You can name this file whatever you’d like, but if you do change the name, keep in mind that you will also need to change every reference to it in the code you add. Either way, add the following code In the new file: vtopbutton.js hosted with ❤ by GitHub

You can adjust how fast the button scrolls to the top by editing the number beside var speed = toward the top. The higher the number, the slower the automatic scroll will be.

Similarly, you can adjust the speed of the fade animation by editing the number beside var duration = and how many pixels are scrolled on a page when the button appears by by editing the value for var offset =.

This script is set up to display the button after you’ve scrolled 100 pixels on a page. It’s set low so it’s easier for you to test out even if you have a fresh install with very little to no content.

Realistically, you may very well want to change these values to whatever suits your specific needs. Once you have successfully created this new file, you’re ready to move on to the next step.

Make a Button

Make a note of your button image's URL in your media library
Click on your uploaded button’s image in your media library to find the URL you need to complete this step.

Use your favorite image editing software to create a button, purchase a button image or find one with a GPL licence that you can use for free. Upload it to your site and make a note of the image’s direct link. We’ll need it for the next step.

Once you’ve uploaded the image file, you can find the URL you need by viewing your media library and clicking on the thumbnail of your button. An in-line popup will appear and on the right-hand side you’ll find the link.

If you don’t like the idea of adding an image and you’d rather add text, this is also possible.

Keep in mind that the text will likely inherit the color, size and font of your theme so styling the button through CSS will take a bit of skill. The results will be very specific to your theme so using an image for the button as we are doing here is a much simpler solution.

Keep this page open and head on over to the next step.

Edit the style.css File

Open your theme’s CSS stylesheet add the following code anywhere you see fit as long as it’s not in between already existing tags and code. At the very bottom is a great place for it.

Alternatively, if you’ve previously installed a plugin such as Simple Custom CSS, you can add the code right into the area provided. Don’t forget to hit the save button! vstyle.css hosted with ❤ by GitHub

Don’t forget to replace the image link in this snippet of code with your button’s URL you noted in the previous step. If you don’t change the link, no button will appear so don’t forget this step.

4. Edit functions.php

In order for the JavaScript file you created to have any effect, you need to tell WordPress you want to use the file. You can do this by creating what’s called an enqueue script in your theme’s functions.php file.

The best place to add the following code is at the very end of the file, that way it will be less likely that it will interfere with other code. functions.php hosted with ❤ by GitHub

Once you’ve either edited and saved the file directly through your control panel or you’ve used FTP to upload the edited file – and replace the old one – you’re all set to start the next step.

Add the Button Link

The last step is to add the actual link to the pages of your site so the back-to-top button will appear.

You could put this link in every page template you have or in the header.php file, but since the button will appear at the bottom of the page, let’s put it in your footer. It will keep things nice and simple in case you decide to make future changes.

You can place your link virtually anywhere in the footer.php file.
I placed the link above the footer tag in the footer.php file when testing out this button in the Twenty Fifteen default theme.

Open your footer.php file which will most likely be found in thewp-content > themes > your-theme folder.

The button is set to hover separately over all content of the page at the very bottom, right-hand corner so it doesn’t matter where you put the button link as long as it’s not smack dab in the middle of other code. Placing it between the footer or a div tag is usually a good spot.

If you decide to change the position of the button in the CSS stylesheet, keep in mind that where you put the button link may actually matter. It may appear exactly where you placed the link in the footer.

The CSS is currently set to a fixed position of 5 pixels from the bottom and right-hand side of the window so it shouldn’t currently be a problem. Here’s the link you will need to add to your footer.php file: footer.php hosted with ❤ by GitHub

You may notice the the link doesn’t actually have any text or button associated with it. This is because we’ve already established the button image with CSS so it’s not necessary to add it.

It’s also made clear that we are using a class instead of an id to define the link and its properties. This is simply so you can be free to add more similar buttons to your page, rather than being confined to one button per page. Changing this is not necessary.

The moment you’ve been waiting at the edge of your seat for has arrived! Go ahead, visit a page in your site that requires a lot of scrolling and check out your new “back-to-top” button.

Final Thoughts

Now your site’s visitors will be able to view your content with a bit more ease. If you’re not too keen on editing your theme’s files yourself, not to worry, there’s an easier alternative.

The easier alternative (plugin):

Scroll Top plugin will enable a custom and flexible Back To Top button to your WordPress website. It allows your visitor to easily scroll back to the top of your page. You will get features such as unlimited color choices, icon font & retina ready.

Now you’re ready to make your visitors’ experience a better one with each and every click.

How to Become FrontEnd Masters for 2020

How to Become FrontEnd Masters for 2020

This wtg guide will be helpful whether you are new to front end programming or already an experienced developer. In this industry learning new concepts and languages & frameworks is mandatory to keep up with the rapid changes. Take for example React – open-sourced by Facebook just a shy 4 years ago it already became the number one choice for JavaScript devs around the globe. But also Vue and Angular of course have their legitimate follower-base. And then there is Svelte, and universal frameworks like Next.js or Nuxt.js, and Gatsby, and Gridsome, and Quasar, and and and. If you want to shine as an expert JavaScript developer you should at least have some experience in different frameworks and libraries – besides doing your homework with good, old JS.

In helping you become Frontend Masters for 2020 we’ve listed several projects, each with a distinct topic and a different JavaScript framework or library as tech stack that you can build and add to your portfolio. Remember, nothing helps you more than actually building stuff so go ahead, sharpen your mind and make this happen!

Build a movie search app using React (with hooks)

Example project React
How to Become FrontEnd Masters for 2020

The first thing you could start with is building a movie search app using React. Above is an image of how the final app will look like.

What you will learn

Building this application you will improve your React Skills using the relatively new Hooks API. The example projects makes use of React components, many hooks, an external api and of course some styling via CSS.

Tech Stack & Features

  • React with Hooks
  • create-react-app
  • JSX
  • CSS

Using no classes this projects gives you a perfect entry point into functional react and will definitely help you in 2020. You can find the example project here:
Follow along with the tutorial or give it your own flavor!

Build a chat app with Vue

How to Become FrontEnd Masters for 2020
How to Become FrontEnd Masters for 2020

Another great project for you is to build a chat app using my favorite JavaScript library VueJS. The app will look something like this:

What you will learn

Following this tutorial you will learn how to setup a Vue app from scratch, creating components, handling state, creating route, connecting to a third party service and even handling authentication.

Tech Stack & Features

  • Vue
  • Vuex
  • Vue Router
  • Vue CLI
  • Pusher
  • CSS

This is really a great project to get started with Vue or to improve your existing skills to tackle development in 2020. You can find the tutorial right here:

Build a beautiful weather app with Angular 8

Example project Angular
How to Become FrontEnd Masters for 2020

This example will help you to build a beautiful weather app using Google’s Angular 8:

What you will learn

This project will teach you valuable skills such while creating an application from scratch, starting with design over development all the way to a production ready deployment.

Tech Stack & Features

  • Angular 8
  • Firebase
  • Server-Side Rendering
  • CSS with Grid Layout and Flexbox
  • Mobile friendly & responsive
  • Dark Mode
  • Beautiful UI

What we really, really like about this comprehensive project is that you do not learn things in isolation but the whole development process from the design to the final deployment. You should really do this one!

Build a to-do app with Svelte

Example project Svelte
How to Become FrontEnd Masters for 2020

Svelte kinda is the new kid on the block compared to React, Vue and Angular but nonetheless one of the hotties for 2020. Okay, To-Do apps are not necessarily the hottest topic out there but this will really help you to sharpen you Svelte skills and look like this:

What you will learn

This tutorial will show you how to make an app using Svelte 3 from start to finish. It makes use of components, styling and event handlers

Tech Stack & Features

  • Svelte 3
  • Components
  • Styling via CSS
  • ES 6 syntax

There aren’t that many good Svelte starter projects out there so we find this one to be kinda good to start with. And who knows, maybe you are the one creating another, more comprehensive Svelte tutorial that will be presented in the next year’s version of this post?

Build an e-commerce shopping cart with Next.js

Example project Next
How to Become FrontEnd Masters for 2020

NextJs is the most popular framework for creating React applications that support server-side rendering out of the box. This project will show you how to build an e-commerce shopping cart looking like this:

What you will learn

In this project you will learn how to setup a Next.js development environment, create new pages and components, fetch data, style and deploy a next application.

Tech Stack & Features

  • Next.js
  • Components and Pages
  • Data Fetching
  • Styling
  • Deployment
  • SSR and SPA

It is always great to have a real world example such as an e-commerce showcase to learn something new. You can find the tutorial here:

Build a full blown multi-language blog website Nuxt.js

Example project Nuxt
How to Become FrontEnd Masters for 2020

Nuxt.js is to Vue what Next.js is to react. A great framework to combine the power of server-side rendering and single-page applications. The final app that you could create will look like this:

What you will learn

This example project will teach you how to build a full blown website using Nuxt.js from the initial setup to the final deployment. It makes use of many of the cool features Nuxt has to offer like pages and components as well as styling with SCSS.

Tech Stack & Features

  • Nuxt.js
  • Components and Pages
  • Storyblok module
  • Mixins
  • Vuex for state management
  • SCSS for styling
  • Nuxt middlewares

This is a really cool project for you and covers many of the great features of Nuxt.js. We personally love working with Nuxt so you should really try this one out as it will also make you a better Vue developer!

Build a Blog with Gatsby

Example project Gatsby
How to Become FrontEnd Masters for 2020

Gatsby is a great static site generator that uses React and GraphQL under the hood. This is the result of this project:

What you will learn

In this tutorial you will learn how to leverage Gatsby to build an outstanding blog that you could well use for writing your own articles while making use of React and GraphQL.

Tech Stack & Features

  • Gatsby
  • React
  • GraphQL
  • Plugins & Themes
  • MDX / Markdown
  • Bootstrap CSS
  • Templates

If you ever wanted to start a blog this is a great example how to do so leveraging React and GraphQL. We are not saying that WordPress always is a bad choice but with Gatsby you can create highly performant sites while using React which is an awesome combination!

Build a Blog with Gridsome

Example project Gridsome
How to Become FrontEnd Masters for 2020

Gridsome is to Vue…Okay, we already had that with Next/Nuxt but the same is true for Gridsome and Gatsby. Both use GraphQL as a data layer but Gridsome makes use of VueJS. It also is an awesome static site generator that will help you create great blogs:

What you will learn

This project will teach you how to build a simple blog to get started with Gridsome, GraphQL and Markdown. It also covers how to deploy the application via Netlify.

Tech Stack & Features

  • Gridsome
  • Vue
  • GraphQL
  • Markdown
  • Netlify

This for sure isn’t the most comprehensive tutorial but covers the basic concepts of Gridsome and Markdown and could be a good starting point.

Build a SoundCloud-like audio player app with Quasar

Example project Quasar
How to Become FrontEnd Masters for 2020

Quasar is another Vue framework that can also be used to build mobile applications. In this project you will create an audio player app looking like this:

What you will learn

While the other projects focus mainly on web applications this one will show you how to create a mobile app using Vue via the Quasar framework. You should already have a working Cordova setup with android studio / xcode configured. If not there is a link in the tutorial to the quasar website where they show you how to set this up.

Tech Stack & Features

  • Quasar
  • Vue
  • Cordova
  • Wavesurfer
  • UI Components

A small project that shows the power of Quasar for building mobile apps.

The Tragicomedy: CSS Color Names

The Tragicomedy: CSS Color Names

The CSS “Named Colors” section of the CSS Color Module Level 4—the latest specification for color values and properties within the Cascading Style Sheets language—are 141 standard colors. Each has its own name, so beyond the essentials of “black” and “white” are shades like “papaya whip,” a warm orange pastel; “lemon chiffon,” a faint, milky yellow; and “burlywood,” which has likely made an appearance on a safari tour guide’s shorts.

At first glance, these names seem fluffy, and they bear connotations of sugary, whimsical romanticism. Where do such abstract names come from, and why are they a part of something as methodical as writing code?

The answer to these questions begins in 1980s Massachusetts. Originally, the colors were a product of the X Window System (X), a graphical user interface (GUI) released by MIT in 1984. In June of 1986, the first list of GUI colors, which was tuned to the DEC VT240 series terminal, shipped with the third release of X’s tenth version (X10R3). It comprised 69 basic shades, with 138 entries to account for different cases in the color names (e.g., lowercase with spacing like “dark red” versus camel case like “DarkRed”).

In 1988, X11R2 arrived with the addition of three colors, including the identical shades “gray” and “grey.” According to Austin-based developer Alex Sexton, discussing the colors at a JavaScript Conference last year, programmers at Hewlett-Packard couldn’t remember the proper spelling (which was originally with an ‘a’). Including two names, it was thought, would prevent errors.

The most substantial release, created by Paul Raveling, came in 1989 with X11R4. This update heralded a slew of light neutral tones, and it was a response to complaints from Raveling’s coworkers about color fidelity. (In the ‘80s, colors could vary dramatically from monitor to monitor, depending on the machine vendor. As if to illustrate this, a particularly baffled employee exclaimed, “That’s Wheat???!!!” upon the sight of the hue in the previous text file.) In this version, programmers were introduced to the aforementioned “papaya whip” and “lemon chiffon,” as well as other loftily-named hues like “blanched almond” and “peach puff.”

Raveling drew these names from an unsurprising source: the (now-defunct) paint company Sinclair Paints. It was an arbitrary move; after failing to receive sanctions from the American National Standards Institute (ANSI), which issued standards for Web color properties, Raveling decided to take matters into his own hands. He calibrated the colors for his own HP monitor. “Nuts to ANSI & ‘ANSI standards,’” he complained.

Later that year, X11 gained a set of bolder colors thanks to another programmer, John C. Thomas. Just as Raveling’s update tweaked shades to assuage user confusion, Thomas’s addressed the following written objection from coworker Bruce Schuchardt in 1989:

“[I] am still shocked and horrified by the default colors in the rgb database. The ‘pink’ color in particular looks like the flesh-tone of someone who has been puking for several hours and would really rather get a bullet in the head than go on living.”

Thomas agreed. Frustrated with inconsistent displays, he started to find it futile to standardize color names. In response, he stated in an e-mail that he “sat down one evening with the handiest standard of subjective color names, a box of 72 Crayola crayons.” That birthed “aquamarine,” “orchid,” and “salmon,” to name a few.

By 2001, the World Wide Web Consortium (W3C) published the first working draft of the CSS 3 Color Module that would include the colors. In light of evolving technologies, the colors had fallen out of use, but the W3C claimed the goal was to “codify current practices.” Every browser supported the colors at this point, consequently, the W3C had been using them in compatibility tests. Incorporating the colors into CSS, then, would prevent sites from breaking.

“It was like a backwards-compatibility thing. They thought, ‘We’ve accidentally been doing this, so we might as well just not break it,’” Sexton told Ars.

Backlash ensued. The color database had been subjected to the whims of so many different programmers that it became deeply disorganized, leading some to argue it had no place in CSS. Critics attacked its naming scheme: “dark gray” was lighter than “gray”; there was a “medium violet red” but no “violet red”; “light goldenrod yellow” had no corresponding “goldenrod yellow.” In total 17 colors had dark versions, but only 13 had light ones. Color distribution was also uneven, skewing toward reds and greens and away from blues.

Perhaps the most vehement denunciation comes from a 2002 e-mail written by programmer Steven Pemberton: “The X11 colour names are an abomination that should have been stifled at birth, and adding them to CSS is a blemish on the otherwise excellent design of CSS. To say that the X11 colour set and their names have been ‘designed’ is an insult to the word ‘design.’ It is just a mess.”

Another point of contention was cultural exclusion. Some programmers took umbrage at the region-centric nature of names like “dodger blue” and the potential racial undertones of “navajo white” (from Sinclair Paints) and “indian red” (from Crayola, though the crayon has since been renamed in response to the same concerns). Others considered the English-only names alienating.

“I’m not a native English speaker. Imagine my reaction the first time I saw the ‘gainsboro’ color  or ‘papaya whip,’” Daniel Glazman, co-chairman of the CSS Working Group, told Ars.

Ostensibly, these repercussions could have been prevented. In the ‘80s, X system programmers had the option to identify colors the way many developers do today: with a hexadecimal value (AKA hex value, e.g., #FFFF00) or an RGB color code (e.g., 255,255,0). These options allow a greater degree of choice and precision, and they’re based on schematic, objective, globally legible systems. Why weren’t they used in the first place?

“It was a recognition that almost nobody likes using the numeric values. People don’t think in terms of F5B as a particular shade of color. Using a name is more natural,” said Jim Fulton, a student at MIT at the time of X’s creation and manager of Raveling’s and Thomas’s files. However, he conceded, “Not every idea works out well.”

In 2014, however, an unexpected event cast the color list in a more favorable light: a new shade. “Rebecca purple,” was introduced to honor the life of Rebecca Meyer, the daughter of Eric Meyer, a respected programmer and CSS writer. Rebecca died of brain cancer at the age of six; the hue (#663399) was chosen to reflect her favorite color. (A few developers opposed the addition, maintaining that a set of standards was no place for an emotional tribute. They were dismissed as curmudgeons.)

Still, the general consensus is that these colors’ utility is minimal; they’re best reserved as placeholders (it’s easier to type “tomato” than “#FF6347” when you need a color quickly), for beginner-level design projects, or as the butt of a joke.

“I view it with amusement that the colors seem to have migrated into CSS. I just laugh at it,” Fulton told Ars. “I think if someone were to go and crawl over the top 100 or top 1,000 sites and take a look at how various colors are specified, I’m willing to bet you’d still find close to zero percent using color names beyond ‘white’ or ‘black.’”

“If I’m doing an example to show people how to use an editor or a framework, I use hex values like #C0FFEE or #BADA55. It’s about as useful to use #C0FFEE as it is to use ‘papaya whip,’” Sexton added.

Should the colors have been left without standard names then, sparing the development community from a series of angry e-mails and micro-controversies? According to Fulton, probably. Then again, as programmers navigated the uncharted territory of color-displaying GUIs in the ‘80s, it was only natural to experiment any way they knew how.

“At the time, we were dealing with, in some ways, the very beginnings of the graphical home-computer industry,” he said. “For color devices especially, this was the very beginning.”

CSS Animations vs. JavaScript

CSS Animations vs. JavaScript

Once upon a time, most developers used jQuery to animate things in the browser. Fade this, expand that; simple stuff. As interactive projects got more aggressive and mobile devices burst onto the scene, performance became increasingly important. Flash faded away and talented animators pressed HTML5 to do things it had never done before. They needed better tools for complex sequencing and top-notch performance. jQuery simply wasn’t designed for that. Browsers matured and started offering solutions.

The most widely-acclaimed solution was CSS Animations (and Transitions). The darling of the industry for years now, CSS Animations have been talked about endlessly at conferences where phrases like “hardware accelerated” and “mobile-friendly” tickle the ears of the audience. JavaScript-based animation was treated as if it was antiquated and “dirty”. But is it?

As someone who’s fascinated (bordering on obsessed, actually) with animation and performance, I eagerly jumped on the CSS bandwagon. I didn’t get far, though, before I started uncovering a bunch of major problems that nobody was talking about. I was shocked.

This article is meant to raise awareness about some of the more significant shortcomings of CSS-based animation so that you can avoid the headaches I encountered, and make a more informed decision about when to use JS and when to use CSS for animation.

Lack of independent scale/rotation/position control

Animating the scale, rotation, and position of an element is incredibly common. In CSS, they’re all crammed into one “transform” property, making them impossible to animate in a truly distinct way on a single element. For example, what if you want to animate “rotation” and “scale” independently, with different timings and eases? Maybe an element is continuously pulsing (oscillating scale) and you’d like to rotate it on rollover. That’s only possible with JavaScript.

In my opinion, this is a glaring weakness in CSS but if you only do simpler animations that animate the entire transform state at any given time, this won’t be an issue for you.


Most comparisons on the web pit CSS animations against jQuery since it is so pervasive (as if “JavaScript” and “jQuery” were synonymous) but jQuery is widely known to be quite slow in terms of animation performance. The newer GSAP is also JavaScript-based but it’s literally up to 20x faster than jQuery. So part of the reason JavaScript animation got a bad reputation is what I call the “jQuery factor”.

The most frequently cited reason for using CSS for animation is “hardware acceleration”. Sounds yummy, right? Let’s break it down into two parts:

GPU involvement

The GPU is highly optimized for tasks like moving pixels around and applying transform matrices and opacity, so modern browsers try to offload those tasks from the CPU to the GPU. The secret is to isolate the animated elements onto their own GPU layers because once a layer is created (as long as its native pixels don’t change), it’s trivial for the GPU to move those pixels around and composite them together. Instead of calculating every single pixel 60 times per second, it can save chunks of pixels (as layers) and just say “move that chunk 10 pixels over and 5 pixels down” (or whatever).

Side note: It’s not wise to give every element its own layer because GPUs have limited video memory. If you run out, things will drastically slow down.

Declaring your animations in CSS allows the browser to determine which elements should get GPU layers, and divvy them up accordingly. Super.

But did you know you can do that with JavaScript too? Setting a transform with a 3D characteristic (like translate3d() or matrix3d()) triggers the browser to create a GPU layer for that element. So the GPU speed boost is not just for CSS animations – JavaScript animation can benefit too!

Also note that not all CSS properties get the GPU boost in CSS animations. In fact, most don’t. Transforms (scale, rotation, translation, and skew) and opacity are the primary beneficiaries. So don’t just assume that if you animate with CSS, everything magically gets GPU-juiced. That simply isn’t true.

Offloading calculations to a different thread

The other part of “hardware acceleration” has to do with being able to use a different CPU thread for animation-related calculations. Again, this sounds great in theory but it doesn’t come without costs, and developers often overestimate the benefits.

First of all, only properties that don’t affect document flow can truly be relegated to a different thread. So again, transforms and opacity are the primary beneficiaries. When you spin off other threads there’s overhead involved with managing that process. Since graphics rendering and document layout eat up the most processing resources (by FAR) in most animations (not calculating the intermediate values of property tweens), the benefit of using a separate thread for interpolation is minimal. For example, if 98% of the work during a particular animation is graphics rendering and document layout, and 2% is figuring out the new position/rotation/opacity/whatever values, even if you calculated them 10 times faster, you’d only see about a 1% speed boost overall.

Performance comparison

The stress test below creates a certain number of image elements (dots) and animates them from the center to random positions around the edges using random delays, creating a starfield effect. Crank up the number of dots and see how jQuery, GSAP, and Zepto compare. Since Zepto uses CSS transitions for all of its animations, it should perform best, right?

The results confirm what is widely reported on the web – CSS animations are significantly faster thanjQuery. However, on most devices and browsers I tested, the JavaScript-based GSAP performed even better than CSS animations (by a wide margin in some cases, like on the Microsoft Surface RT GSAP was probably at least 5 times faster than the CSS transitions created by Zepto, and on the iPad 3 iOS7 transforms were significantly faster when animated with GSAP instead of CSS transitions):

Animated propertiesBetter w/JavaScriptBetter w/CSS
top, left, width, heightWindows Surface RT, iPhone, iPad, iPad, Samsung Galaxy Tab, Chrome, Firefox, Safari, Opera, Kindle Fire HD, IE(none)
transforms (translate/scale)Windows Surface RT, iPhone, iPad, Samsung Galaxy Tab, Firefox, Opera, IEiPad, Safari, Chrome
Exactly how much “better”? The original version of the test had a frames-per-second counter for quantifiable results, but it quickly became apparent that there’s no truly accurate way to measure FPS across browsers especially with CSS animations, and certain browsers were reporting misleading numbers, so I removed it. You can easily gauge relative performance, though, by cranking up the number of dots, switching among engines, and watching how things perform (smooth movement, steady timing and dot dispersion, etc.). After all, the goal is to have animations look good.

Interesting things to note:

  • When animating top/left/width/height (properties that affect document flow), JavaScript was faster across the board (GSAP, not jQuery).
  • A few devices seemed highly optimized for transforms whereas others handled top/left/width/height animations better. Most notably, the older iOS6 was much better with CSS-animated transforms, but the newer iOS7 flip-flopped and now they are significantly slower.
  • There’s a substantial lag in the initial animation startup with CSS animations as the browser calculates layers and uploads the data to the GPU. This also applies to JavaScript-based 3D transforms, so “GPU acceleration” doesn’t come without its own costs.
  • Under heavy pressure, CSS transitions were more likely to spray out in bands/rings (this appears to be a synchronization/scheduling issue, possibly due to them being managed in a different thread).
  • In some browsers (like Chrome), when there were a very high number of dots animating, it completely killed the opacity fade of the text, but only when using CSS animations!

Although well-optimized JavaScript is often just as fast if not faster than CSS animations, 3D transforms do tend to be faster when animated with CSS, but that has a lot to do with the way browsers handle 16-element matrices today (forcing conversion from numbers to a concatenated string and back to numbers). Hopefully that’ll change, though. In most real-world projects, you’d never notice the performance difference anyway.

I’d encourage you to do your own testing to see which technology delivers the smoothest animation in your particular project(s). Don’t buy the myth that CSS animations are always faster, and also don’t assume that the speed test above reflects what you’d see in your apps. Test, test, test.

Runtime controls and events

Some browsers allow you to pause/resume a CSS keyframes animation, but that’s about it. You cannot seek to a particular spot in the animation, nor can you smoothly reverse part-way through or alter the time scale or add callbacks at certain spots or bind them to a rich set of playback events. JavaScript provides great control, as seen in the demo below.

Modern animation is very much tied to interactivity, so it’s incredibly useful to be able to animate from variable starting values to variable ending ones (maybe based on where the user clicks, for example), or change things on-the-fly but declarative CSS-based animation can’t do that.


For simple transitions between two states (i.e. rollovers or expanding menus, etc.), CSS Transitions are great. For sequencing things, however, you generally need to use CSS keyframe animations which force you to define things in percentages, like:

@keyframes myAnimation {
  0% {
    opacity: 0;
    transform: translate(0, 0);
  30% {
    opacity: 1;
    transform: translate(0, 0);
  60% {
    transform: translate(100px, 0);
  100% {
    transform: translate(100px, 100px);
#box {
   animation: myAnimation 2.75s;

But when you’re animating, don’t you think in terms of time rather than percentages? Like “fade up the opacity for 1 second, then slide to the right for 0.75 seconds, and bounce down to a rest 1 second later”. What happens if you spend hours crafting a complicated sequence in percentages, and then the client says “make that part in the middle 3 seconds longer”? Ouch. You’d need to recalculate ALL of the percentages!

Usually building animations involves a lot of experimentation, especially with timing and eases. This is actually where a seek() method would be quite useful. Imagine building out a 60-second animation piece-by-piece and then finessing the final 5 seconds; you would need to sit through the first 55 seconds every time you want to see the results of your edits to the last parts. Yuck. With aseek() method, you could just drop that into place during production to skip to the part you’re working on, and then remove it when you’re done. Big time-saver.

It is becoming increasingly common to animate canvas-based objects and other 3rd-party library objects but unfortunately CSS animations can only target DOM elements. That means that if you invest a lot of time and energy in CSS animations, it won’t translate to those other types of projects. You’ll have to switch animation tool sets.

There are a few more workflow-related conveniences that are missing in CSS Animations:

  • Relative values. Like “animate the rotation 30 degrees more” or “move the element down 100px from where it is when the animation starts”.
  • Nesting. Imagine being able to create animations that can get nested into another animation which itself can be nested, etc. Imagine controlling that master animation while everything remains perfectly synchronized. This structure would promote modularized code that is much easier to produce and maintain.
  • Progress reporting. Is a particular animation finished? If not, exactly where is it at in terms of its progress?
  • Targeted kills. Sometimes it’s incredibly useful to kill all animations that are affecting the “scale” of an element (or whatever properties you want), while allowing the rest to continue.
  • Concise code. CSS keyframe animations are verbose even if you don’t factor in all the redundant vendor-prefixed versions necessary. Anyone who has tried building something even moderately complex will attest to the fact that CSS animations quickly get cumbersome and unwieldy. In fact, the sheer volume of CSS necessary to accomplish animation tasks can exceed the weight of a JavaScript library (which is easier to cache and reuse across many animations).

Limited effects

You can’t really do any of the following with CSS animations:

  • Animate along a curve (like a Bezier path).
  • Use interesting eases like elastic or bounce or a rough ease. There’s a cubic-bezier()option, but it only allows 2 control points, so it’s pretty limited.
  • Use different eases for different properties in a CSS keyframe animation; eases apply to the whole keyframe.
  • Physics-based motion. For example, the smooth momentum-based flicking and snap-back implemented in this Draggable demo.
  • Animate the scroll position
  • Directional rotation (like “animate to exactly 270 degrees in the shortest direction, clockwise or counter-clockwise”).
  • Animate attributes.


CSS-based animation doesn’t work in IE9 and earlier. Most of us hate supporting older browsers (especially IE), but the reality is that some of us have clients who require that support.

Browser prefixes are necessary for many browsers, but you can leverage preprocessing tools to avoid having to manually write them out.


Are CSS animations “bad”? Certainly not. In fact, they’re great for simple transitions between states (like rollovers) when compatibility with older browsers isn’t required. 3D transforms usually perform very well (iOS7 being a notable exception), and CSS animations can be very attractive for developers who prefer putting all of their animation and presentation logic in the CSS layer. However, JavaScript-based animation delivers far more flexibility, better workflow for complex animations and rich interactivity, and it often performs just as fast (or even faster) than CSS-based animation despite what you may have heard.

When compared to jQuery.animate(), I can understand why CSS Animations were so appealing. Who in their right mind wouldn’t jump at the chance to get a 10-fold performance boost? But it’s no longer a choice between jQuery and CSS Animations; JavaScript-based tools like GSAP open up entirely new possibilities and wipe out the performance gap.

This article isn’t about GSAP or any particular library; the point is that JavaScript-based animation doesn’t deserve a bad reputation. In fact, JavaScript is the only choice for a truly robust, flexible animation system. Plus, I wanted to shed some light on the frustrating parts of CSS animations (which nobody seems to talk about) so that you can ultimately make a more informed decision about how you animate in the browser.

Will the Web Animations spec solve things?

The W3C created a spec called Web Animations that aims to solve a lot of the deficiencies in CSS Animations and CSS Transitions, providing better runtime controls and extra features. It certainly seems like a step forward in many ways, but it still has shortcomings (some of which are probably impossible to overcome due to the need for legacy support of existing CSS specifications, so for example, independent transform component control is unlikely). There are definitely some smart guys who worked on the spec.