Thanks for taking this survey! Together, maybe we'll be able to figure out this JavaScript thing once and for all! (yeah right…)

Also, I know this survey seems long, but it's mostly the same questions repeated a bunch of times for different frameworks and libraries. Most people only take around 10 minutes to fill it in.
Let's Get This Started
How this survey works

For each technology, framework, or library mentioned, please pick one of the following options:

- You've never heard about it
- You've heard about it and you want to learn it
- You've heard about it, but don't want to learn it (or are unsure)
- You've used it and want to use it again
- You've used it but don't want to use it again

Note: questions with a "*" are required.


For each technology, pick all the statements that apply.
React *

Angular *

The original AngularJS (1.x)

Angular 2 *

The new Angular (2.x, 4.x, 5.x, etc.)

Ember *

Vue *

Backbone *

Polymer *

Aurelia *

No Front-End Framework *

Or your own, custom in-house framework.

Other Front-End Frameworks

On a scale of one to five cats, how happy are you with your current solution for the front-end?

JavaScript Flavor

Alternative ways of writing JavaScript, or languages that compile to JavaScript.
"Plain" JavaScript (ES5) *

Exclusively using "regular" JavaScript without ES6, TypeScript, etc.

ES6 *

Includes ES2015, ES7, ESP, etc.

TypeScript *

Flow *

Elm *

ClojureScript *

Reason *

On a scale of one to five dogs, how happy are you with your current flavor of JavaScript?

(Five dogs meaning "super happy")

Data Layer

Various libraries that help you load and manage data in your app.

Redux *

MobX *

GraphQL *

Relay/Relay Modern *

Falcor *

Apollo *

Firebase *

Other Data Management Solutions

On a scale of one to five thunderbolts, how happy are you with your current solution for state management?


Because data has to come from somewhere.
Meteor *

Express *

Koa *

Hapi *

FeathersJS *

Sails *

Loopback *

Keystone *

Other Back-End Tools

On a scale of one to five trophies, how happy are you with your current back-end solution?


Testing frameworks are a dime a dozen these days. Actually, even cheaper than that since most of them are open source and free!
Mocha *

Jasmine *

Enzyme *

Jest *

Tape *

Ava *

Other testing frameworks

On a scale of one to five severed hands, how happy are you with the current state of JavaScript testing?

Halfway there!


Back in my days, we didn't need no variables or scoping in our CSS, no sir! The humble !important was good enough for us, and we walked uphill both ways!
Plain CSS *


Stylus *


CSS-in-JS *

(Glamor, Styled Components, etc.)

Bootstrap *

Foundation *

Other CSS solutions

On a scale of one to five lightbulbs, how happy are you with the current state of CSS?

Build Tools

You need something to bundle it all up together.
Webpack *

Grunt *

Gulp *

Browserify *


Rollup *

Other build tools

On a scale of one to five droplets, how happy are you with the current state of build tools?

Mobile & Desktop

Over the past couple years, the line between mobile and the web has been getting blurrier and there are now a range of technologies that promise to make the transition easier.
Native Apps *

Mobile and/or desktop

React Native *

Ionic *

PhoneGap/Cordova *

NativeScript *

Electron *

Other mobile/desktop apps solutions

On a scale of one to five pencils, how happy are you with the current state of mobile apps?

Other Tools

We want to learn more about your workflow
Package Managers

Pick the package managers you use

Utility Libraries

Pick the libraries you use

Text Editors

Tell us your favorite (pick one)

Code Linters


Life is all about trade-offs, and you can't always get everything you want. So when building an app, which features truly matter, and which ones are just nice-to-have?

I don't know what that is: you're not familiar with this concept. 
Not needed: you wouldn't use this feature even if it's available.
Nice-to-have, but not important: you would add this feature if it doesn't involve too much work. 
Major feature: not having this feature would have a strong negative impact on your app or workflow. 
Vital feature: you cannot launch an app without this feature.
Server-Side Rendering

Server-side rendering means your app's markup is first rendered on the server then sent to the client, instead of being generated only on the client.

Code Splitting

Code splitting lets you load parts of your code incrementally when needed, instead of loading the entire app bundle every time.

Optimistic Updates

Client operations take effect instantly, and potentially get corrected once the result of the "real" operation comes back from the server.

Hot Module Reloading

In your development environment, hot-module reloading means code changes appear instantly in the browser without the need to rebuild the entire app.

Time-Travel Debugging

Your app keeps track of its state at all times, and lets you step back through successive operations as if travelling back in time.

Real-Time Operations

Operations gets propagated back and forth between client and server in real time.

Dead Code Elimination

At build time, your build tool can figure out what parts of your codebase are not actually used, and remove them from the app bundle.

Progressive Enhancement

Your app can be reasonably functional even when JavaScript is not enabled.

Service Workers

Your app uses service workers for a better user experience

Offline Usage

Your app keeps working even when there's no internet connection.

Other Features

Opinion Questions

This is your chance to let the world know how you really feel.
JavaScript is moving in the right direction

Building JavaScript apps is overly complex right now

JavaScript is over-used online

I enjoy building JavaScript apps

I would like JavaScript to be my main programming language

The JavaScript ecosystem is changing too fast

This survey is too damn long!

About You

Help us understand the data better by telling us everything about you. Well, maybe not everything…
Years of Experience

How long you've been working in the code mines

Company Size

Yearly Salary


Tabs or Spaces?

Semicolons: Yes or No?

Do you use semicolons in your JavaScript code?

How did you find out about this survey?

Which site you came from, if you were on the mailing list, etc.
Your Country

Your City

Other Comments

Things we missed, feedback on the survey, your favorite color, etc.
Powered by Typeform