<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories applauded for by Luis Godinho on Medium]]></title>
        <description><![CDATA[Latest stories applauded for by Luis Godinho on Medium]]></description>
        <link>https://medium.com/@luistinygod?source=rss-11c497fc5090------3</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*fCRgjwgbBmpQnqRu.jpeg</url>
            <title>Stories applauded for by Luis Godinho on Medium</title>
            <link>https://medium.com/@luistinygod?source=rss-11c497fc5090------3</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 20 Dec 2019 23:01:38 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/@luistinygod/has-recommended" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[How to set timer idle in Vue]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/js-dojo/how-to-set-timer-idle-in-vue-1f4b57beb886?source=rss-11c497fc5090------3"><img src="https://cdn-images-1.medium.com/max/2114/1*jH50i7SSxzT3BG_NLXj5Uw.png" width="2114"></a></p><p class="medium-feed-snippet">Do you need to check for the inactivity of the user in your Vue apps? If the user is inactive in a period of time, then you wanna&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/js-dojo/how-to-set-timer-idle-in-vue-1f4b57beb886?source=rss-11c497fc5090------3">Continue reading on Vue.js Developers »</a></p></div>]]></description>
            <link>https://medium.com/js-dojo/how-to-set-timer-idle-in-vue-1f4b57beb886?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/1f4b57beb886</guid>
            <category><![CDATA[vuejs]]></category>
            <category><![CDATA[vuex]]></category>
            <category><![CDATA[idle]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[vue]]></category>
            <dc:creator><![CDATA[Jakz Aizzat]]></dc:creator>
            <pubDate>Sun, 08 Dec 2019 01:04:14 GMT</pubDate>
            <atom:updated>2019-12-09T03:58:14.978Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[How to Boost Vue.js Performance]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://itnext.io/how-to-boost-vue-js-performance-c7df027ff3f5?source=rss-11c497fc5090------3"><img src="https://cdn-images-1.medium.com/max/800/1*VMiFBi9kOp8tXIV_LmrC3g.gif" width="800"></a></p><p class="medium-feed-snippet">First of all.. Code splitting and lazy loading</p><p class="medium-feed-link"><a href="https://itnext.io/how-to-boost-vue-js-performance-c7df027ff3f5?source=rss-11c497fc5090------3">Continue reading on ITNEXT »</a></p></div>]]></description>
            <link>https://itnext.io/how-to-boost-vue-js-performance-c7df027ff3f5?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/c7df027ff3f5</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[es2015]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[web-performance]]></category>
            <category><![CDATA[vuejs]]></category>
            <dc:creator><![CDATA[Tugay Yaldız]]></dc:creator>
            <pubDate>Tue, 26 Nov 2019 13:35:46 GMT</pubDate>
            <atom:updated>2019-11-27T16:21:07.901Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Create a lazy-loading image component for faster Vue.js apps]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/swlh/create-a-lazy-loading-image-component-for-faster-vue-js-apps-88979b968ce9?source=rss-11c497fc5090------3"><img src="https://cdn-images-1.medium.com/max/900/1*keUnz7VkHY3IYAf_jWYYSg.jpeg" width="900"></a></p><p class="medium-feed-snippet">Before we get started, let&#x2019;s first understand what we are building. The goal is to create a Vue.js component to display an image, but it&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/swlh/create-a-lazy-loading-image-component-for-faster-vue-js-apps-88979b968ce9?source=rss-11c497fc5090------3">Continue reading on The Startup »</a></p></div>]]></description>
            <link>https://medium.com/swlh/create-a-lazy-loading-image-component-for-faster-vue-js-apps-88979b968ce9?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/88979b968ce9</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[vuejs]]></category>
            <dc:creator><![CDATA[Austin Gil]]></dc:creator>
            <pubDate>Thu, 28 Nov 2019 18:39:25 GMT</pubDate>
            <atom:updated>2019-11-29T09:54:55.326Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Everything you need to know about HTML5 local storage and session storage]]></title>
            <link>https://medium.com/javascript-in-plain-english/everything-you-need-to-know-about-html5-local-storage-and-session-storage-479c63415c0a?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/479c63415c0a</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[development]]></category>
            <dc:creator><![CDATA[Yogesh Chavan]]></dc:creator>
            <pubDate>Fri, 29 Nov 2019 19:33:19 GMT</pubDate>
            <atom:updated>2019-12-10T03:04:19.217Z</atom:updated>
            <content:encoded><![CDATA[<h4>Understand it by building actual practical applications in React</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hDYCBUQtjakij2Wv" /><figcaption>Photo by <a href="https://unsplash.com/@casparrubin?utm_source=medium&amp;utm_medium=referral">Caspar Camille Rubin</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>You probably have heard of local storage or session storage term but never got chance to explore it.. This article will clear all your concepts about it.</p><p>Local and Session storage comes under the category of HTML5 Web Storage.</p><p><strong>It’s not the same as session storage that you might be familiar with, if you came from java background where session is stored on server side.</strong></p><p><strong>We will use the term Web Storage when we talk about Session and Local Storage together.</strong></p><p><strong>Web Storage is used for storing data on client side. So the data will be available across page refresh.</strong></p><p>Previously before Web Storage came into play, the only way of storing the data on client side was using cookies.</p><p>Cookies are still used but there are some disadvantages of using cookies</p><p>1. Cookies are stored on client side and are transferred to server on every request sent to server. This makes cookies less secure<br>2. Cookies has storage limit. We can’t store more data into cookies after certain limit<br>3. Cookies can be disabled by using some browser extension tools<br>4. Storing data in cookies required some extra code</p><p><strong>So Let’s explore about Web Storage Now</strong></p><p><strong>Session Storage :</strong></p><ol><li>Session Storage is for per browser tab. So data stored in one browser tab will not be accessible in other tab</li><li>Each browser tab has separate session storage data</li><li>Session Storage data gets cleared when we close the tab</li><li>It also gets cleared when we close the browser</li></ol><p><strong>Local Storage :</strong></p><ol><li>Local Storage is used for storing data across the entire application</li><li>Data stored in local storage will be accessible across all the tabs or pages only for that domain ( like <a href="http://www.google.com/">www.google.com</a>, <a href="http://www.medium.com/">www.medium.com</a> etc)</li><li>Local Storage data stored for particular domain will be accessible even you open the another browser window (Control + n or Command + n (Mac)) on the same browser</li><li>Local Storage data stored on normal browsing session will not be available when you open browser in private browsing or in Incognito mode.</li><li>Local Storage data will not get cleared even if you close the browser. Because it’s stored on your browser cache in your machine.</li><li>Local Storage data will only be cleared when you clear the browser cache using Control + Shift + Delete or Command + Shift + Delete (Mac)</li><li>We can also clear the local storage data programmatically. We will see how to do that soon</li></ol><p><strong>Both Local and Session Storage has storage limit of 5MB.</strong></p><p>All modern browsers support Web Storage. Regarding internet explorer, its supported from IE version 8 and above.</p><p><strong>You can check your browser storage limit by visiting </strong><a href="http://dev-test.nemikor.com/web-storage/support-test/"><strong>http://dev-test.nemikor.com/web-storage/support-test/</strong></a><strong> and running web storage test.</strong></p><p><strong><em>That’s enough for the details. Now lets dive into how to use it</em></strong></p><p>Both Local and Session Storage has same syntax</p><p>Add data to Local Storage :</p><pre><strong>localStorage.setItem(key, value)</strong></pre><p>Remove data from Local Storage :</p><pre><strong>localStorage.removeItem(key)</strong></pre><p>Add data to Session Storage :</p><pre><strong>sessionStorage.setItem(key, value)</strong></pre><p>Remove data from Session Storage :</p><pre><strong>sessionStorage.removeItem(key)</strong></pre><p><strong>Both the key and value has to be a string. But we can store JSON object also by using JSON.stringify method.</strong></p><p><strong><em>Local Storage :</em></strong></p><p>Lets checkout a simple todo list application using react just to understand the web storage concepts.</p><p><a href="https://codesandbox.io/s/github/myogeshchavan97/todo_list">C</a>heck out this live demo of todo list<br><a href="https://codesandbox.io/s/github/myogeshchavan97/todo_list">https://codesandbox.io/s/github/myogeshchavan97/todo_list</a></p><p>Github Source Code: <a href="https://github.com/myogeshchavan97/todo_list">https://github.com/myogeshchavan97/todo_list</a></p><p>It’s not complete application with all todo list features. I just built it for this demo.<br>Try adding some todos in the application, you will see something like this</p><figure><img alt="Todo List App" src="https://cdn-images-1.medium.com/max/1024/1*Xv-oM7PD5iJ98wCd40n6SA.png" /><figcaption>Todo List App</figcaption></figure><p>Now if you refresh the page, all the todos will be lost and you have to enter it again.</p><p>To fix it, we will add the localStorage functionality here to retain the todos even we access the application in any tab.<br>As you can see in TodoList.js inside components directory, todos is an array declared in state as</p><pre>state = {<br>  todos: []<br>}</pre><p>To save it to localStorage we need to convert it to string by using JSON.stringify because local and session storage allows storing only strings.</p><p>We will do that as shown below</p><pre>const { todos } = this.state;<br>const json = JSON.stringify(todos);<br>localStorage.setItem(&quot;todos&quot;, json);</pre><p>Now if we print the saved data, you will see the output as seen below</p><figure><img alt="Todo local Storage" src="https://cdn-images-1.medium.com/max/1024/1*nhn-xntrpNw08uWcPvrTig.png" /><figcaption>Todo local Storage</figcaption></figure><p>To read the data back, we need to parse it because its stored as JSON string</p><pre>const todos = localStorage.getItem(&quot;todos&quot;);<br>if(todos) {<br> const parsedJSON = JSON.parse(todos);<br> this.setState({ todos: parsedJSON });<br>}</pre><p>The complete code will look like</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/3a142a852b600344d8a3204637681ff4/href">https://medium.com/media/3a142a852b600344d8a3204637681ff4/href</a></iframe><p>Lets understand the above code from componentDidMount and componentDidUpdate</p><p>1. Whenever we add item to todo, the state todos array changes so this is the perfect time to store the todos in local storage</p><p>2. We are doing that in componentDidUpdate method</p><p>This method gets called when state or props are changed. In this method, we are checking if the previous todos array and current todos array length is different and only then store in local storage</p><p>3. In componentDidMount we are reading from the localStorage and adding back to the state</p><p>So every time the component is rendered we are reading from localStorage.</p><p><strong>This will make sure that, the todos are not lost even if we refresh the page.</strong></p><p>Complete Demo Application with updated code : <a href="https://codesandbox.io/s/github/myogeshchavan97/todo_list_with_localstorage">https://codesandbox.io/s/github/myogeshchavan97/todo_list_with_localstorage</a></p><p>Github Updated Source Code : <a href="https://github.com/myogeshchavan97/todo_list_with_localstorage">https://github.com/myogeshchavan97/todo_list_with_localstorage</a></p><p><strong>Another use case where Local Storage can be used is for storing shopping cart items.</strong></p><p><strong><em>Session Storage : <br></em></strong>Goto any website like <a href="http://medium.com/">medium.com</a> and in the console paste the following line and hit enter</p><pre>sessionStorage.setItem(&quot;name&quot;, &quot;Advanced User&quot;)</pre><p>Now, a new entry will be added in sessionStorage for the <a href="http://medium.com/">medium.com</a> domain.</p><p>Now, If you check the value using sessionStorage.getItem(“name”), you will see the text “Advanced User” which we set as shown below</p><figure><img alt="Session Storage Example" src="https://cdn-images-1.medium.com/max/1024/1*7gkuR3qBIaYaMtAAEUq_yg.png" /><figcaption>Session Storage Example</figcaption></figure><p>Now open <a href="http://medium.com/">medium.com</a> in another tab in the same browser window and check the value of sessionStorage.getItem(“name”)</p><p>You will see null printed instead of “Advanced User” as shown below</p><figure><img alt="Session Storage in new tab" src="https://cdn-images-1.medium.com/max/1024/1*At14D8sr3B4JDnVhe0cnFw.png" /><figcaption>Session Storage in new tab</figcaption></figure><p><strong>This is because each tab has separate Session Storage data even on the same domain but local storage data is available for same domain for each new tab.<br></strong>You can see all the local and session storage data for each site under the Application tab in chrome developer tools as shown below</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DLtX8b3fn1hpqSBzF2pi-A.png" /><figcaption>Web Storage Data</figcaption></figure><blockquote><strong><em>So the</em></strong><em> </em><strong><em>point to remember is that, you use session storage only when you want to persist data in a single tab and session storage data gets cleared when tab is closed or browser is closed</em></strong></blockquote><p>Now consider a following scenario.</p><p>Suppose, you have a modal on the page which displays some long form to enter details. Many times it happens that, user enters some data in the form and by mistake clicks outside the modal and modal gets closed. Because of which he looses all the entered data.</p><p>To fix this we can use sessionStorage so the stored data in modal will only be applicable to current tab.</p><p>Complete Demo Application with code : <a href="https://codepen.io/myogeshchavan97/pen/rNaBONm">https://codepen.io/myogeshchavan97/pen/rNaBONm</a></p><p>Here we have a button for opening the modal. When we click on the close button inside the modal, I am saving all the entered data in sessionStorage and when user opens the modal again, We fill out the input fields with previously entered values.</p><p>Also note that, we are clearing the session data on page load so on initial load the form will be empty.</p><p>To put together,</p><p>Github Source Code for all applications we built : <br>1. <a href="https://github.com/myogeshchavan97/todo_list">https://github.com/myogeshchavan97/todo_list</a><br>2. <a href="https://github.com/myogeshchavan97/todo_list_with_localstorage">https://github.com/myogeshchavan97/todo_list_with_localstorage</a></p><p>Codepen Source Code :<br><a href="https://codepen.io/myogeshchavan97/pen/rNaBONm">https://codepen.io/myogeshchavan97/pen/rNaBONm</a></p><p><strong>That’s it for today. Hope you learned something new today.</strong></p><p><strong><em>Subscribe to get weekly updates directly in your inbox </em></strong><a href="https://subscribe-user.herokuapp.com/"><strong><em>https://subscribe-user.herokuapp.com/</em></strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=479c63415c0a" width="1" height="1"><hr><p><a href="https://medium.com/javascript-in-plain-english/everything-you-need-to-know-about-html5-local-storage-and-session-storage-479c63415c0a">Everything you need to know about HTML5 local storage and session storage</a> was originally published in <a href="https://medium.com/javascript-in-plain-english">JavaScript in Plain English</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[10 Tips and Tricks to Make You a Better Vue.js Developer]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/10-tips-and-tricks-to-make-you-a-better-vue-js-developer-afc74acaf388?source=rss-11c497fc5090------3"><img src="https://cdn-images-1.medium.com/max/2600/1*WYAntO3ZfXBMkyn31mHoRw.jpeg" width="6000"></a></p><p class="medium-feed-snippet">Level up as a Vue.js developer with these handy tips and tricks</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/10-tips-and-tricks-to-make-you-a-better-vue-js-developer-afc74acaf388?source=rss-11c497fc5090------3">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/10-tips-and-tricks-to-make-you-a-better-vue-js-developer-afc74acaf388?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/afc74acaf388</guid>
            <category><![CDATA[vuejs]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Simon Holdorf]]></dc:creator>
            <pubDate>Fri, 22 Nov 2019 19:55:21 GMT</pubDate>
            <atom:updated>2019-11-22T19:55:21.251Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Choosing a Front-End Framework]]></title>
            <link>https://medium.com/building-panorama-education/choosing-a-front-end-framework-fc2549cca0dd?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/fc2549cca0dd</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[vuejs]]></category>
            <category><![CDATA[engineering]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Jessica Sartin]]></dc:creator>
            <pubDate>Mon, 25 Nov 2019 13:01:02 GMT</pubDate>
            <atom:updated>2019-11-25T18:31:03.366Z</atom:updated>
            <content:encoded><![CDATA[<h3>Why?</h3><p>Last year, Panorama’s engineering team set out to choose a front-end framework. Before this endeavor, our applications were purely Ruby on Rails, using JavaScript only when necessary. We decided to move towards a front-end framework for a few reasons:</p><ul><li>Robustness — We felt that our web applications, while usually consistent internally, felt fairly homegrown. We would prefer to build them in alignment with the broader javascript community’s practices.</li><li>Performance — While server-side can be fast, we were increasingly needing to create UI’s over larger and larger datasets which limited our use of server-side html rendering.</li><li>Reusability — We did achieve some reuse by our use of Rails view partials, but it still created a lot of boilerplate, especially for UI components and intricate JS logic.</li><li>Hiring — We had some evidence from engineering interviews that very skilled front-end engineers found it a very bad sign if we were still without a dominant front-end stack.</li></ul><h3>The Plan</h3><p>At Panorama, we have a pretty flat hierarchy and make decisions via influence, not authority. This means we didn’t have a chief architect to choose a front-end tech stack, and instead brought a group of interested engineers together to evaluate our options and make a proposal to the engineering department. Once we had that handful of engineers to push this initiative forward, we developed a plan to select a framework. Knowing that this was a major decision and expensive to change later, we wanted to be thorough in our evaluation. A group of engineers met and decided on the following plan:</p><ul><li>Compile a list of frameworks to research and develop rubrics to evaluate those frameworks against</li><li>Do some preliminary research on rubrics to narrow down which ones seem promising</li><li>Build prototypes of a complex front-end feature using each of the finalist frameworks</li><li>Finally, present our findings and get feedback from the rest of engineering to make that final decision</li></ul><h3>Frameworks and rubrics</h3><p>To choose the frameworks to look into, we came up with ideas based on what seemed to be industry standards, and what engineers were generally interested in working on. We decided to investigate React, Vue.js, Stimulus, Polymer Project, and native web components.</p><p>In building our rubric, we first had a few themes of measurements, including philosophical balance, compatibility with our other technologies, features and functionality, and external resources available. In each theme we drilled down into a few specific items, like incremental adoptability, rails integration ability, perceived learning curve, and a strong community supporting the framework.</p><h3>Initial investigation</h3><p>We found some commonalities across all frameworks in our initial investigation. For example, every framework we evaluated allowed for incremental adoption and use outside of single-page applications. Though some had smaller learning curves than others, they all seemed compatible with other technology we use like Rails, and they all seemed to have enough information available that we could overcome the learning curve.</p><p>In some areas, the results were starkly different. Vue.js and React both have strong ecosystems behind them, like using Vuex and Redux for state, and Jest for unit tests. They are both fairly mature, so we wouldn’t expect major changes where an upgrade would feel like using a totally new framework. Finally, they both have large communities, including popular local meetups and even conferences. Thus, we decided to prototype both of those frameworks towards making our final decision.</p><h3>Prototype</h3><p>Now that we were down to two frameworks to prototype, we also had to decide what to actually prototype. In this case, we wanted to prototype something already built in our application, so that we could put the frameworks’ incremental adoptability to the test. Ideally, we’d all be working in an area of our applications that we were familiar with. This turned out to be pretty difficult as many of us were new engineers.</p><p>We settled on prototyping our user management tool. We realized that multiple squads had done work on the tool, so we had two engineers familiar with the tool. Each of us paired with another engineer and each pair picked one of the two frameworks.</p><h3>Struggles and successes</h3><p>We discovered that prototyping was a lot more complex than researching the tools. Research wasn’t too hard to fit between meetings. To prototype, we had to ensure our dev environments were set up (for some of us, in a different application than we usually worked in) and then we had to build the features while learning the new tools. It was also harder to shift away from writing code for normal squad work to writing code for a side project.</p><p>Over the next few weeks, we gradually shifted our tactics to make progress on the prototype. Each group realized it would be better to set aside time for pair programming, which had a few benefits:</p><ul><li>The time was blocked off, making it easier to step away from normal squad work.</li><li>Only one person on each given day needed to have everything set up and working.</li><li>It was easier to work while one person drove the code, and another could research how the framework works.</li></ul><p>While this helped, after a few weeks we were still disappointed at the progress we hadn’t made. An hour is not much time to get into the groove of coding, especially with an unfamiliar technology. We decided we needed larger blocks of time, so we scheduled some large blocks of time we could all use to make progress. These afternoons led to great progress on the prototypes, helping us decide as a group that both frameworks felt like feasible options. It was time to call the prototypes done.</p><h3>Then what?</h3><p>On realizing that either framework would meet our needs, we surveyed engineering to find their preferences and if there was anything more to consider in our decision. We asked engineers whether they preferred Vue.js or React, how strong that preference was, and if others had experiences to share. With 21 responses, the survey results didn’t lead to a clear favorite.</p><p>With those results, the working group went back to discuss the options. Knowing that either would meet our needs, we went back to our initial investigations and prototypes to deeply understand which framework would be better. We noted that Vue.js had a slightly easier learning curve. We also appreciated that the tech stack to go along with it was fairly standardized in the industry, so we didn’t expect more difficult decisions on how to unit test or bundle the code. Additionally, we anticipated another difficult task to begin rolling out a new framework. Since Vue.js had a slight edge in our survey, we were excited to propose the framework with more engineers passionately supporting it.</p><p>Since engineering decisions are made collectively, we had one last step to finalize Vue.js as our framework of choice — agreement from the rest of the engineering team. Thankfully, our research, prototypes, and final decision making were easily understood by engineers and the whole team agreed to move forwards with Vue.js.</p><figure><img alt="Vue.js logo" src="https://cdn-images-1.medium.com/max/400/0*-EdkbzJ9nYKyEBzZ.png" /></figure><p>Are you interested in seeing where our Vue.js journey has taken us, and being part of future technology decisions? <a href="https://www.panoramaed.com/careers">We’re hiring</a>!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fc2549cca0dd" width="1" height="1"><hr><p><a href="https://medium.com/building-panorama-education/choosing-a-front-end-framework-fc2549cca0dd">Choosing a Front-End Framework</a> was originally published in <a href="https://medium.com/building-panorama-education">Building Panorama Education</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Never Run Out of Things to Blog About]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/the-write-brain/how-to-never-run-out-of-things-to-blog-about-614f7961a204?source=rss-11c497fc5090------3"><img src="https://cdn-images-1.medium.com/max/2600/0*WxjrcD0ElmVBEUMP" width="3872"></a></p><p class="medium-feed-snippet">FOUR methods for turning yourself into an idea machine.</p><p class="medium-feed-link"><a href="https://medium.com/the-write-brain/how-to-never-run-out-of-things-to-blog-about-614f7961a204?source=rss-11c497fc5090------3">Continue reading on The Write Brain »</a></p></div>]]></description>
            <link>https://medium.com/the-write-brain/how-to-never-run-out-of-things-to-blog-about-614f7961a204?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/614f7961a204</guid>
            <category><![CDATA[creativity]]></category>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[blogging]]></category>
            <category><![CDATA[writing]]></category>
            <category><![CDATA[freelancing]]></category>
            <dc:creator><![CDATA[Shaunta Grimes]]></dc:creator>
            <pubDate>Wed, 13 Nov 2019 13:37:14 GMT</pubDate>
            <atom:updated>2019-11-13T13:37:14.172Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[I created the exact same app in Vue and Svelte. Here are the differences.]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/javascript-in-plain-english/i-created-the-exact-same-app-in-vue-and-svelte-here-are-the-differences-c649f8d4ce0a?source=rss-11c497fc5090------3"><img src="https://cdn-images-1.medium.com/max/2550/1*RjqzfXYgUfXqvov5lfGjPQ.png" width="2550"></a></p><p class="medium-feed-snippet">Vue vs Svelte. Finally, a side-by-side code comparison! Because you&#x2019;ve heard the fuss about Svelte, and now you want to know what the hype&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/javascript-in-plain-english/i-created-the-exact-same-app-in-vue-and-svelte-here-are-the-differences-c649f8d4ce0a?source=rss-11c497fc5090------3">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://medium.com/javascript-in-plain-english/i-created-the-exact-same-app-in-vue-and-svelte-here-are-the-differences-c649f8d4ce0a?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/c649f8d4ce0a</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[vuejs]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Sunil Sandhu]]></dc:creator>
            <pubDate>Sat, 23 Nov 2019 13:05:54 GMT</pubDate>
            <atom:updated>2019-12-06T00:19:25.114Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[I see a lot of similarities between svelte and VueJS here!]]></title>
            <link>https://medium.com/@cosileone/i-see-a-lot-of-similarities-between-svelte-and-vuejs-here-41f49b0fefca?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/41f49b0fefca</guid>
            <dc:creator><![CDATA[Cosi Leone]]></dc:creator>
            <pubDate>Fri, 22 Nov 2019 18:30:03 GMT</pubDate>
            <atom:updated>2019-11-22T18:30:03.805Z</atom:updated>
            <content:encoded><![CDATA[<p>I see a lot of similarities between svelte and VueJS here!</p><p>Very good breakdown of what’s going on between both frameworks</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=41f49b0fefca" width="1" height="1">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[I created the exact same app in React and Svelte. Here are the differences.]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/javascript-in-plain-english/i-created-the-exact-same-app-in-react-and-svelte-here-are-the-differences-c0bd2cc9b3f8?source=rss-11c497fc5090------3"><img src="https://cdn-images-1.medium.com/max/2546/1*9polCAouiiVgAEHpR2JKSA.png" width="2546"></a></p><p class="medium-feed-snippet">React vs Svelte. Finally, a side-by-side code comparison! Because you&#x2019;ve heard the fuss about Svelte, and now you want to know what the&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/javascript-in-plain-english/i-created-the-exact-same-app-in-react-and-svelte-here-are-the-differences-c0bd2cc9b3f8?source=rss-11c497fc5090------3">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://medium.com/javascript-in-plain-english/i-created-the-exact-same-app-in-react-and-svelte-here-are-the-differences-c0bd2cc9b3f8?source=rss-11c497fc5090------3</link>
            <guid isPermaLink="false">https://medium.com/p/c0bd2cc9b3f8</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Sunil Sandhu]]></dc:creator>
            <pubDate>Thu, 21 Nov 2019 17:12:12 GMT</pubDate>
            <atom:updated>2019-12-02T15:41:01.671Z</atom:updated>
        </item>
    </channel>
</rss>