It all started with a tweet by Darek Gusto Wędrychowski, announcing his presence in the south of Italy. We intercepted the tweet and asked him to join us, to not lose the opportunity of having an international speaker and also a member of the core team of VueJS, one of the most famous frontend libraries of the world.
Two words about Vue: a project started in 2013 by Evan You, it has reached 100k stars on GitHub and this is an amazing accomplishment for a framework that has not been sponsored, like React or Angular, by one of the modern tech giants.
We managed to organise a Meetup in only six days (for those who are not familiar with community life, this means finding a location, buffet, speakers, spamming on social media and via mailing list… and since it’s a free event, hope that people will actually come!) with 40 people attending. For a small city like Salerno this felt as crowded as a Lady Gaga concert.
Our night started with a history of frontend development. It all started with the browser war in the first years of the web, until JQuery came onto the scene. JQuery was the first library to spread at a planetary level and still has a lot of traction: 75% of the top 10k websites are still using JQuery and will probably never ditch it completely.
However, against the imperative approach used by JQuery, Angular1 become the first framework to undermine its leadership in the frontend space. The main advantage of Angular1 was the declarative approach: instead of explicitly modifying pieces of the DOM on user interactions, we could delegate to the library the DOM manipulation and focus on reasoning about its state.
The next iteration of frameworks is the one we are currently living in: React, Angular2+, and VueJS. React was the first to introduce the Virtual DOM concept, a virtual in memory representation of the DOM that was synced with the DOM when it was more convenient. This provided a huge boost in performance. Together with VueJS they share a very small API that can be extended to every use case a web developer might need today. There was much more to say but…we are here for VueJS, aren’t we?
Our second talk was held by Darek, and it was divided in two parts. The first part is on the state of VueJS and its future. Many key points were touched upon:
After this introduction about the future of VueJS, Darek introduced us the real topic of his talk: NuxtJS. Nuxt is mostly known to be VueJS server-side rendered, but it is way more than that. Infact, it is VueJS with best practices included.
NuxtJS uses an approach of convention over configuration and that’s why if you install it you will be able to generate your first project out of the box, with a simple configuration file that is very simple to use, just a js object.
Nuxt is already configured to produce a server-side rendered VueJS application, bundled together with all the modern stuff you need to produce production-ready code (webpack, babel, etc. already configured).
In addition to this, Nuxt allows to create statically generated web applications or single page applications, by adjusting some easy settings.
And that’s it: in his demo Darek showed us the Nuxt folder structure (that practically contains sensible defaults to start coding), how easy it is to integrate a new page, or to add authentication, to perform an ajax call with axios, etc.
Gabriele was our last speaker and provided a deep dive of his company’s pipeline in building websites.
It all starts with defining the core visual elements of an app, using tools like Vue Design System to keep things consistent.
The next step is to start a component division process that will try to devise the root components of a webapp: some components are part of the design, others will be part of the domain and finally, others will be part of the views. Buefy was chosen as a library for design components, such as buttons and calendars, being extremely simple and clean.
The next step is about handling the application logic: the proposed approach is to use statecharts by wrapping Vuex with libraries like XState, in order to handle very complex scenarios that may rise.
Finally, the chosen data layer is Apollo GraphQL with a self-made framework and the app goes live to the web using Zeit Now.sh. How many buzzwords in one product!
Well, this was a great Meetup. Not only for the quality of the speakers and of the special guest, but also for the people that make these kinds of events a nice way of connecting with other people, start new collaborations and improve the development quality of our town. Events like this push us to do better and better and we (as DevDay) only want to have fun doing what we enjoy: connecting passionate developers doing what we love, coding!