{"id":135682,"date":"2019-08-08T03:36:39","date_gmt":"2019-08-08T03:36:39","guid":{"rendered":"https:\/\/inchoo.net\/?p=34460"},"modified":"2019-08-08T03:36:39","modified_gmt":"2019-08-08T03:36:39","slug":"how-did-we-standardize-magento-2-frontend-development","status":"publish","type":"post","link":"https:\/\/www.sushilkumar.ind.in\/blog\/magento-2\/how-did-we-standardize-magento-2-frontend-development\/","title":{"rendered":"How did we standardize Magento 2 frontend development?"},"content":{"rendered":"<p>Many Frontend developers in the Magento community felt a certain level of pain when they started working on their first Magento 2 project. So did we! <strong>\u201cThis is just a start. I will be faster on the next one\u201c<\/strong>, was a common statement. However, new projects arrived and frontend development was still not as fast as it was with Magento 1.<\/p>\n<p>To improve the speed, efficiency, joy of work and team synergy, our frontend team decided to refine our development processes. After a few completed projects, we got an idea of how to do things better and quicker. Modernizing the approach we\u2019ve been using.<span id=\"more-34460\"><\/span><\/p>\n<p>We weren&#8217;t very happy with the default tech stack and the level of complexity of Magento frontend architecture and we decided to tackle these issues. The first step was to create our custom compiler and introduce modern technology stack. <\/p>\n<p>After this stack was created, we developed the <strong><a href=\"http:\/\/medellin.inchoo4u.net\/\">Medell\u00edn theme.<\/a><\/strong> It serves us as a <strong>starting collection point<\/strong> for elements that need to be further customized (navigation, buttons, sliders, header, \u2026) on any given project.<\/p>\n<p>I sat down with <a href=\"https:\/\/inchoo.net\/author\/filip-svetlicic\/profile\/\">Filip<\/a> \u2013 our Lead frontend developer, <a href=\"https:\/\/inchoo.net\/author\/luka-omrcen\/profile\/\">Luka<\/a> and <a href=\"https:\/\/inchoo.net\/author\/igor-tikvic\/profile\/\">Igor<\/a> \u2013 frontend team members, and with <a href=\"https:\/\/inchoo.net\/author\/marko-brisevac\/profile\/\">Marko<\/a> from our design team, to discuss the benefits of creating our own frontend solution.<\/p>\n<blockquote class=\"answer\">\n<p><strong>Filip:<\/strong> Our goal was to create a standard starting point based on the latest technologies. Compiler and the theme include the most efficient choice of technology that provides our clients a faster way to meet their demands. In our world, faster also means cost-efficiency.<\/p>\n<p><strong>Igor:<\/strong> I was super excited that the whole team will be using the same starting point because it was not the case before. Jumping into an ongoing project is now much easier and stress free as we already know all the underlying tools and technologies.<\/p>\n<p><strong>Filip:<\/strong> Just to keep things straight; building a custom theme from scratch is faster and more efficient with a solution we use, even if we don\u2019t use Medellin theme as a starting point.<\/p>\n<\/blockquote>\n<p class=\"question\">What was the main reason for standardizing Frontend development in the first place?<\/p>\n<blockquote class=\"answer\">\n<p><strong>Filip:<\/strong> I understand that Magento wanted to simplify frontend development with Magento 2. I could see the benefits of this approach if merchants needed simple tweaks like changing colors or small layout modifications. In reality, the average Magento merchant requires a unique user experience where more architectural changes are needed and current frontend architecture becomes a burden. The original idea just doesn&#8217;t work in most of the cases.<\/p>\n<p><strong>Luka:<\/strong> Before we had this starting point, we were frustrated with the outdated approaches we had to use. It felt natural to us that we need a different solution and all team members worked together to create it.<\/p>\n<p><strong>Marko:<\/strong> Relying on Blank or Luma theme in Magento was limiting our creative process. Providing unique user experience could significantly increase development time to a much higher level than merchants are used to. New solution enables us to be more flexible and this means that I can be more creative. As a designer, it makes me happy.<\/p>\n<\/blockquote>\n<p class=\"question\">What are the benefits of this approach?<\/p>\n<blockquote class=\"answer\">\n<p><strong>Filip:<\/strong> We chose to go with postCSS because it gives us more flexibility. What&#8217;s more important, it is a javascript. Tools that we use can be easily ported to any postCSS environment. We can set it up to work nicely with Gulp (Traditional) or Webpack (PWAs).<\/p>\n<p><strong>Igor:<\/strong> As I said earlier it&#8217;s easier for all of us to switch between projects. The codebase is cleaner, better tested, and more secure and adaptable in regards to ever-changing clients&#8217; requirements and expectations. We believe we are 20-30% more productive thanks to our new toolbox.<\/p>\n<p><strong>Luka:<\/strong> I&#8217;m currently working on a project that requires a lot of customization. Comparing with the old way of working, I&#8217;m much faster and have a lot less frustration while working on some routine tasks.<\/p>\n<\/blockquote>\n<p class=\"question\">How shall we improve the solution in the future?<\/p>\n<blockquote class=\"answer\">\n<p><strong>Filip:<\/strong> We have two focus points. The first one is standard Magento stack, Gulp driven. Another one is progressive web applications, which is Webpack driven. Both solutions support postCSS loaders. This is great because we can reuse 90% of our frontend architecture (Mixins, Advanced Typography Sets (vertical Rhythm, Typographic Scales etc.)).<\/p>\n<p>We will continue to maintain both solutions, even if there is some new technology update or mayor code change. Some parts of our solution are used in PWA development where we have the same technology as in Medellin, but at the same time, some of the things we developed in PWA are going to be imported as add-ons to Medellin. Our tendency is to have as much universal toolbox with the latest technologies as we can.<\/p>\n<\/blockquote>\n<p>A lot of projects out there are not <a href=\"https:\/\/inchoo.net\/ecommerce\/pwa-magento-website-faq\/\">PWA ready<\/a> (or is it that PWA is not ready for them?) and still gotta depend on known solutions.<\/p>\n<blockquote class=\"answer\">\n<p><strong>Marko<\/strong>: We are regularly working with our front-end team on determining possible improvements and adding new elements and functionalities that will improve user experience in new projects.<\/p>\n<p><strong>Igor:<\/strong> Code is never finished. There is always some fixing, refactoring and tweaking going on, and we try our best to update our current stack with these new changes. Consequently, the documentation has to be updated as well.<\/p>\n<p><strong>Luka:<\/strong> We are working on three projects using the described solution and we will continue to use it. During the development, we got some nice feedback from our design team and other non-technical people and we will apply it in future versions.<\/p>\n<\/blockquote>\n<h2>Conclusion<\/h2>\n<p>Gained experience is of no use if you don&#8217;t put it into practice. While developing our solution, we learned a lot and we are quite happy with our current development environment. Also, we can see that connection and the bond inside the team are much better than it used to be because we all worked together and we supported each other along the way.<\/p>\n<p>&nbsp;<\/p>\n<p>The post <a rel=\"nofollow\" href=\"https:\/\/inchoo.net\/magento-2\/standardize-magento-2-frontend-development\/\">How did we standardize Magento 2 frontend development?<\/a> appeared first on <a rel=\"nofollow\" href=\"https:\/\/inchoo.net\">Inchoo<\/a>.<\/p>\n<h1><a target=\"_blank\" href=\"http:\/\/www.circulatetechnology.com\/\">Click here for more informations about top website development services <\/a><\/h1>\n","protected":false},"excerpt":{"rendered":"<p>Many Frontend developers in the Magento community felt a certain level of pain when they started working on their first Magento 2 project. So did we! \u201cThis is just a start. I will be faster on the next one\u201c, was a common statement. However, new projects arrived and frontend development was still not as fast &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[14104,225,20,226,14105,14106],"tags":[],"class_list":["post-135682","post","type-post","status-publish","format-standard","","category-custom-magento-theme","category-frontend","category-magento-2","category-magento2","category-standardization","category-toolbox"],"jetpack_publicize_connections":[],"acf":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p99pkJ-ziq","_links":{"self":[{"href":"https:\/\/www.sushilkumar.ind.in\/blog\/wp-json\/wp\/v2\/posts\/135682"}],"collection":[{"href":"https:\/\/www.sushilkumar.ind.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sushilkumar.ind.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sushilkumar.ind.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sushilkumar.ind.in\/blog\/wp-json\/wp\/v2\/comments?post=135682"}],"version-history":[{"count":0,"href":"https:\/\/www.sushilkumar.ind.in\/blog\/wp-json\/wp\/v2\/posts\/135682\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sushilkumar.ind.in\/blog\/wp-json\/wp\/v2\/media?parent=135682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sushilkumar.ind.in\/blog\/wp-json\/wp\/v2\/categories?post=135682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sushilkumar.ind.in\/blog\/wp-json\/wp\/v2\/tags?post=135682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}