Imagine that you sit down before your computer in the morning and start working on the project that has gone on for a while. It’s not a big project so to speak, it’s just the front-end of some business that sells stuff, it connects to an API to get the data and display it for the user.

You cd into the project directory and start it up with a single command. After a second or two, you open up your editor and your browser and are ready to implement a new feature.

You start working on it, and make some mistakes, which is not a big deal because the compiler shows you these awesome error messages that enables you to fix them quickly.

Changes you make are compiled quickly, so you are making good progress, but as it happens you need a third party package to complete the feature, you look it up on-line, add it to your projects dependencies and install it with a single command and are ready to go.

After that you need to look up the documentation for a function that is needed for the feature, you start the documentation server of the locally installed packages and open it up in the browser, after a minute or so you have successfully found what you need.

After business logic is finished, you add some styling to the components you have created, easily and without hassle because it’s part of the language.

At the end of the day, you write some tests for it and run in different browsers to make sure that is all good. Then you document your code with some comments, format it with the build in formatter and the feature is ready to go.

As you commit and push your changes, you look back on the day, pleased that no big issues came up and you were able to finish the feature quickly, but it does not surprises you because most days are like that.