<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Just Patrick </title>
    <description>The latest articles on DEV Community by Just Patrick  (@patrickweb).</description>
    <link>https://dev.to/patrickweb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F386219%2F8876e5eb-f7f9-4446-8477-b8cd6476e88c.png</url>
      <title>DEV Community: Just Patrick </title>
      <link>https://dev.to/patrickweb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/patrickweb"/>
    <language>en</language>
    <item>
      <title>Why react just won't die 😠</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Fri, 24 May 2024 12:17:48 +0000</pubDate>
      <link>https://dev.to/patrickweb/why-react-just-wont-die-3jb7</link>
      <guid>https://dev.to/patrickweb/why-react-just-wont-die-3jb7</guid>
      <description>&lt;h2&gt;
  
  
  Incoherent Intro
&lt;/h2&gt;

&lt;p&gt;React sucks because of the many reasons highlighted by other react haters. Better frameworks have come up but react continues to grow i.e It keeps getting new devs. A technologies death is marked by the decline of adoption by new users. React continues to be the most preferred option for new web devs and companies, why?&lt;/p&gt;

&lt;h2&gt;
  
  
  Obvious Reasons
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Hiring Pool - Already has many adopters so companies choose it because of a larger hiring pool.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The loop - As more companies hire for react, new devs are even more influenced to pick it because there are more Jobs for it. And the circle is complete.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React native - I chose Vue during my bare js graduation, but now I write react because its the best way to build mobile apps with js. Now am even learning freaking nextjs because of work. My goodness I even started liking jsx after being a vocal hater (still hate hooks though). In short the presence of react native turned me into a react dev.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  In conclusion
&lt;/h2&gt;

&lt;p&gt;And the conclusion is yes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Am writing this in the toilet, it smells. Very fitting since this could've been a shitpost tweet thread, but I miss writing on here.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>I Built a Voice Assistant ~ Simulated Artificial Intelligence 🤔</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Tue, 27 Sep 2022 03:19:50 +0000</pubDate>
      <link>https://dev.to/patrickweb/i-built-a-voice-assistant-simulated-artificial-intelligence-4ih</link>
      <guid>https://dev.to/patrickweb/i-built-a-voice-assistant-simulated-artificial-intelligence-4ih</guid>
      <description>&lt;p&gt;Last year I was in a dilemma. I don't remember exactly what it was about but it was the usual silly should I do this or that. And I just had a thought of how common I had these silly dilemmas "Should I feed the chicken first or give them water first". I know its silly but this is the least silly of dilemmas I often have. Most times I ended up wasting a lot of time on trivial decisions and sometimes I ended up doing nothing. So I thought, "Sometimes its good to have someone tell you what to do", cause damn it I can be indecisive on the silliest of things. And that's where I got the idea of creating a simple app that tells me what to do. The app was pretty simple. It was a kind of a chatbot where I would type the two or more options I had and it would tell me which one to go with. It did this using just two concepts/technologies, regex and randomization. The simple algorithm would extract the options from the message using a regular expression that would split the string into choices by checking for "should" and "or". I don't want to go into more details but yeah, I made it and it worked perfectly. I would be shopping for a snack and would ask the app which snack to buy and it would pick.&lt;/p&gt;

&lt;p&gt;Fast forward to two months ago and our lecture tasked us to create an app,game or website targeting three demographics namely children, disabled people or elderly folks. It was a design class so the main consideration was designing for these three target groups. While brain storming I thought of the difficulty elderly people have navigating mobile operating systems and thought of a way which this overhead would be removed. "How can we enable an elderly person to make a call without having to deal with the typing on those tiny keys"&lt;br&gt;
The answer was obvious, using voice. That's when the idea of creating a voice assistant come in. But there was one hurdle, all current voice assistants use complicated AI and machine learning systems. AI being a field I have barely any knowledge in, made me consider dropping the project, but right there I remembered the dilemma chat-bot app I had made. Most people I gave to try out the app thought that I was using some AI to make it work. So maybe, just maybe, I could simulate an AI interaction, maybe I didn't need a whole "speech pattern model" to make a freaking a phone call. Yees, yeees, yeeeeeees. And that's what I went with. &lt;/p&gt;

&lt;p&gt;I would go on mock up a &lt;a href="https://www.figma.com/file/cK1fj94ozcDzczI2vonOMl/Gaby-Voice-Assitant?node-id=0%3A1"&gt;design&lt;/a&gt; in Figma of the app, setup speech recognition using &lt;a href="https://www.npmjs.com/package/react-native-tts"&gt;this package&lt;/a&gt;, list out all the features I wanted and setup android permissions for making calls, sending messages and so on... But I was met with a great hurdle again. Setting a conversation system like the one google assistant has was difficult. It took over a week and many re-writes to finally decide and implement an architecture for the conversation system. Again I don't wont to go into details of its workings but you can check out &lt;a href="https://github.com/Patrick-web/Gabby/tree/main/engine"&gt;this&lt;/a&gt; folder on the repository to get a feel. Be warned the code is not pretty. After the base was laid down, I could add any feature I wanted to the app, and I went wild and totally ignored the target demographic. I added jokes, quotes, memes, games and other silly things. But most importantly the core things work like making a call, sending a text message, sending an email, sending a WhatsApp message and opening apps. I would say I was somewhat successful in simulating an AI system as one Data Scientist was convinced I was using some sort of machine learning and AI after seeing a demo of the app. Of course the app is not perfect so if you have some time to burn you can make a &lt;a href="https://github.com/Patrick-web/Gabby/tree/main/engine"&gt;pull request &lt;/a&gt; to improve, fix or add features to the app, you know, just for fun. You can get it on playstore &lt;a href="https://play.google.com/store/apps/details?id=com.justpatrick.gabby"&gt;here&lt;/a&gt; or on github &lt;a href="https://github.com/Patrick-web/Gabby"&gt;here&lt;/a&gt; &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>android</category>
      <category>ai</category>
    </item>
    <item>
      <title>The question is not can you build it, but rather should you build it</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Thu, 03 Mar 2022 08:41:49 +0000</pubDate>
      <link>https://dev.to/patrickweb/the-question-is-not-can-you-build-it-but-rather-should-you-build-it-405k</link>
      <guid>https://dev.to/patrickweb/the-question-is-not-can-you-build-it-but-rather-should-you-build-it-405k</guid>
      <description>&lt;p&gt;Its widely known that execution is more important than the idea. Millions of people have great, possibly world changing ideas, every day, but none come into existence. For the few that set out to pursue their ideas its is a rough journey littered with failure. Most ideas fail due to poor execution. Great products come from widely known ideas which are finally executed well. Of course there are plenty of books, talks, videos and studies dedicated to learning and mastering execution but that's not where I want to focus. I want us to address those wonderful ideas that should never be made. Yes, ohh yes, you read that right.&lt;/p&gt;

&lt;p&gt;See there is a big flaw in the minds of creative people. They get so hung up in the adrenaline rush of creating that they don't notice the impact of what their making. From the guy who made the atomic bomb to the guy who invented pop up ads it is evident that there are many great minds that regret what they made. At the time they thought it was a great idea or were driven by the challenge or foolishly only focused on the goods and ignored the bads, only to have their 'babies' turn into monsters. As a software developer you bear the  greatest power in humanity and you choose whether to use it for good or for bad.&lt;/p&gt;

&lt;p&gt;I've always wondered what goes into the minds of the developers that make the systems that are destroying society. Systems designed to make users spend hours upon hours in this apps and websites while forsaking all other responsibilities. Systems with aggressive data collection that is sold to the highest bidder. What about the social engineers who helped build these toxic features, do they regret anything? Or maybe they just needed the money to feed their families. Is that a valid enough reason? I pondered these questions in a  high and mighty mindset. "Am better than them" "I would never do that". But something happened that made me rethink all this.&lt;/p&gt;

&lt;p&gt;I wanted to get some analytics for &lt;a href="https://flbmusic.pages.dev"&gt;FLB Music&lt;/a&gt;, a music player I made. Basically in wanted to get info on the number of times a user opens the app and its resource usage. So I set it all up and added it to the next update. Here's a screenshot of the data am collecting stored in &lt;a href="https://supabase.io"&gt;supabase&lt;/a&gt;. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XnRHHr8M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uuhqzvln57937xxvov51.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XnRHHr8M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uuhqzvln57937xxvov51.png" alt="FLB User Data Screenshot" width="800" height="265"&gt;&lt;/a&gt;&lt;br&gt;
After getting analytics from the first 50 or so users I got excited. I don't know how to explain but I felt powerful. Something about getting incite on a someones setup had me in an adrenaline rush. "What more could I find out?" "What if I collected this also?" It was at that moment that I realized the power a user gave me over their machine when they installed the app. There was a time I even wanted to collect their ipaddress and then it hit me. What am I thinking. "Is this how it starts?" Sure I could collect even more data to improve the app but how much was too much. There is no real limit. It was easy to come up with some reason why collecting a certain type of data would help in its development. But no. What if the data got leaked? What if I got acquired and had to give access to some malicious company. And this is where this whole thought train began.&lt;/p&gt;

&lt;p&gt;Its time we developers start thinking about the impact of our code on the lives of people not just on the time they spend on our platforms. Too many companies and developers have become too growth oriented to the point of building destructive systems. Systems made to keep users there for hours, systems built to boost propaganda and negativity to peak attention, systems over capitalizing on the dopamine feedback loop to turn the apps and websites into drugs, systems with no regard for privacy as they view users as money machines. Take a break from your 10x 13 hour coding session and your 3 hour user journey map meeting and look at people as not just users but as humans. We do not need another social media app or another video creation or conferencing app. We don't need another robot in our houses to put our kids to sleep or turn on the lights. It doesn't matter how complex your AI model is built we don't need it. Why so much aggression against technology? Well its because  I am tired of people being fed lies of how this new feature or technology will "improve their lives". The movie Wall E is not just some animation, I believe it was a prediction. A life where people are glued to their screens switching from one app to the other with their entire lives controlled by some algorithm. I am not naive, I know that we will not be able to escape that future, but you can choose to not be part of its creators. &lt;/p&gt;

&lt;p&gt;Before you sit down to make that new feature or implement that new idea, please consider the negatives of birthing it. But this is all my opinion, don't get too offended. This is just an expression of my love hate relationship with tech.&lt;/p&gt;

&lt;p&gt;Shameless plug: Check out &lt;a href="https://flbmusic.pages.dev"&gt;FLB Music&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>discuss</category>
      <category>algorithms</category>
      <category>javascript</category>
    </item>
    <item>
      <title>The Rise of Browser Os</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Wed, 19 Jan 2022 08:56:34 +0000</pubDate>
      <link>https://dev.to/patrickweb/the-rise-of-browser-os-5e0</link>
      <guid>https://dev.to/patrickweb/the-rise-of-browser-os-5e0</guid>
      <description>&lt;p&gt;Why is chrome so heavy? The all to famous question and meme. Well I have the answer. See chrome and other web browsers are more of operating systems than browsers. Lets look at it from this perspective, websites these days are being referred to as web &lt;strong&gt;apps&lt;/strong&gt;, why? Well, maybe because they are more of like apps. Is Gmail a website or a web app? What about github? I'll do you one better, what about figma or gravit designer? The days where web developers were "looked down on" by the developer community is long gone. Web developers(backend and frontend) are building some seriously complex systems. &lt;br&gt;
Let's do a quick experiment.Open &lt;a href="https://figma.com" rel="noopener noreferrer"&gt;Figma&lt;/a&gt; If you are on a chromium based browser press &lt;code&gt;Shift +  Esc&lt;/code&gt; to open your browser's task and check how much memory and cpu Figma is using. Here is mine 👇&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9wa0oc4v5pfgn5anpywm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9wa0oc4v5pfgn5anpywm.png" alt="Browser Task Manager"&gt;&lt;/a&gt;&lt;br&gt;
Figma is using 300+ mb of ram(currently, I just rechecked). More than the browser itself. What about YouTube?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm08kqqbsnsxbqaswmv3h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm08kqqbsnsxbqaswmv3h.png" alt="Youtube Memory Usage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What's the point? The point is that website are pretty heavy these days. They are apps and the browser is the operating system managing them. We have browsers suspending tabs after some idle time to conserve memory, well that there is memory management, a concept in Operating Systems. We can go all in in mapping operating system functions to features in modern web browsers but I'll stop at that one.&lt;/p&gt;

&lt;p&gt;You can perform pretty much 99% of your tasks right on your browser. You can code (stakblitz, code pen, codesandbox),design (figma, gravit designer, vectr), video editing(invideo,clipchamp,veed.io), photo editing (photopea, pxlr, fotor), zip and compress files, heck even gaming with google stadia and xbox game pass. This is why this concept came to me. I can 100% live in the browser. Am guessing this realization was also the fuel for building chrome os. And while we are on that, lets talk about google.&lt;br&gt;
Google and Microsft are hell-bent on making the browser an os. Checkout the &lt;a href="https://www.chromium.org/teams/web-capabilities-fugu" rel="noopener noreferrer"&gt;fugu&lt;/a&gt; project that is on a course of availing all native apis (file system access, bluetooth and so on) to the browser. Check this out 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vvru3q5fl8i3lul26bi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vvru3q5fl8i3lul26bi.png" alt="Screen shot of PWA capabilities"&gt;&lt;/a&gt;&lt;br&gt;
This is a screeshot from the &lt;a href="https://whatpwacando.today" rel="noopener noreferrer"&gt;whatpwacando&lt;/a&gt; website that lists all of the features progress web apps can do. This list is just unbelievable. The gap between web apps and native is quickly getting filled. And in the process of bridging this gap, the browser operating systems are slowly being built.&lt;/p&gt;

&lt;p&gt;Am not sure whether to support this progression or to oppose it because it has benefits and drawbacks. But whatever my or your stance is on this it wont stop this process. With each passing day we get closer to the "web winning", in the "virtual war" between web and native. What do you think. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>discuss</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I made an App Store</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Sun, 22 Aug 2021 04:57:01 +0000</pubDate>
      <link>https://dev.to/patrickweb/i-made-an-app-store-283m</link>
      <guid>https://dev.to/patrickweb/i-made-an-app-store-283m</guid>
      <description>&lt;h2&gt;
  
  
  Why
&lt;/h2&gt;

&lt;p&gt;I love checking out new stuff, apps, apis, websites and such. And my obsession for trying out  new stuff found me continuously visiting &lt;a href="https://electronjs.org/apps" rel="noopener noreferrer"&gt;https://electronjs.org/apps&lt;/a&gt;. Its a website that allows people to browse apps made with electron. Developers add their apps by making a pull request to electronjs apps repo on Github. Every week there's always a new app added.&lt;/p&gt;

&lt;p&gt;After visiting the website hundreds of times I started thinking why it wasn't an app store. I mean the general layout of it looks like an app store. At that time I was learning about reverse engineering closed apis and I thought it would be a fun project to build a desktop client for the website. On checking I saw that the api requests send back html which was not a problem as I had had some experience with parsing html from a previous project of mine &lt;a href="//flbpodcasts.netlify.app"&gt;FLB Podcasts&lt;/a&gt;. So I knew how to build it but I didn't really have time to do it. But last week I decided to take a break from building &lt;a href="https://github.com/Patrick-web/FLB-Music-Player-Official" rel="noopener noreferrer"&gt;FLB Music&lt;/a&gt; and build it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where can I find it
&lt;/h2&gt;

&lt;p&gt;I just pushed the alpha build yesterday so its only available &lt;a href="https://github.com/Electron-Store/electron-app-store/releases" rel="noopener noreferrer"&gt;here&lt;/a&gt; in the releases. &lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Browse Apps from 10+  Categories&lt;/li&gt;
&lt;li&gt;Search for apps by keyword and app name&lt;/li&gt;
&lt;li&gt;Download .exe , .appimage ,.dmg and other file formats&lt;/li&gt;
&lt;li&gt;Automatic Install for .exe files (.appimage soon, see roadmap)&lt;/li&gt;
&lt;li&gt;Loads the app website if the ReadMe is absent for the app page &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;p&gt;Some screenshots...&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao2x2fuiiw0j7gigosa0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao2x2fuiiw0j7gigosa0.png" alt="Explore Page"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnnd9ssfo04swkejsdomw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnnd9ssfo04swkejsdomw.png" alt="Download"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41dtnemo5njuncjpvney.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41dtnemo5njuncjpvney.png" alt="App Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Install apps without spawning the installer modal&lt;/li&gt;
&lt;li&gt;Support installation of Appimages&lt;/li&gt;
&lt;li&gt;Create a CLI that has the same functionalty&lt;/li&gt;
&lt;li&gt;Encourage a Common ReadMe format from the app developers to have the app pages look more seeamless&lt;/li&gt;
&lt;li&gt;Support for Youtube preview videos shown on the website&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>linux</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>" There will never be Twitter Desktop..."</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Fri, 25 Jun 2021 10:45:52 +0000</pubDate>
      <link>https://dev.to/patrickweb/the-great-pwa-migration-3i32</link>
      <guid>https://dev.to/patrickweb/the-great-pwa-migration-3i32</guid>
      <description>&lt;p&gt;For me the greatest highlight of yesterday's Windows 11 reveal was the new Microsoft Store. Finally Microsoft has heard the cries and mostly complaints from the developers and the users. The former Microsoft store was full of problems. From the  payment /pricing issues that caused many developers to opt out of investing in the Microsoft store  &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxxcfkg6ci1yanks3bx2j.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxxcfkg6ci1yanks3bx2j.jpeg" alt="Statement from Boxy Svg team"&gt;&lt;/a&gt; to the difficult process of getting a non UWP apps to the store.&lt;/p&gt;

&lt;p&gt;But that is now in the past. Microsoft is making big strides in helping out developers. I will be discussing all the changes to the Microsoft store in the next article but for now lets talk  about one particular special feature. Progressive Web App support.&lt;/p&gt;

&lt;p&gt;Microsoft has been really pushing for PWA support. Let me quickly list out the efforts:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Microsoft Edge integration
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Edge is by far the leading browser in pushing users  to install progressive web apps.&lt;br&gt;
 &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqa7gqb2snhx704jdsz6r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqa7gqb2snhx704jdsz6r.jpg" alt="Edge PWA install prompt"&gt;&lt;/a&gt; &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowen4fg2d07xva3jpc43.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowen4fg2d07xva3jpc43.jpg" alt="Edge Apps"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Windows 10 integration
&lt;/h3&gt;

&lt;p&gt;PWA apps have been beautifully  integrated into Windows to a point where users can't even differentiate them with native desktop apps.&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff0t534zvkhg0krhkvlop.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff0t534zvkhg0krhkvlop.jpg" alt="Windows 10 PWA integration"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And now the Microsoft Store. Microsoft unveiled that there will be full support for Progressive web apps in the MS Store.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnzmsa4vf3yxtilsgrzgd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnzmsa4vf3yxtilsgrzgd.jpg" alt="Microsoft Store"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Microsoft is just pouring out resources to support PWA technology. I mean they even have this &lt;a href="https://blog.pwabuilder.com/posts/introducing-the-brand-new-pwa-builder/" rel="noopener noreferrer"&gt;https://blog.pwabuilder.com/posts/introducing-the-brand-new-pwa-builder/&lt;/a&gt; dedicated PWA builder to help developers in creating well integrated and optimized PWAs. The Store Page for PWAs is no different from the native apps. From all this its quite clear that Microsoft is dedicated to Pushing for PWAs. And its not just Microsoft.&lt;/p&gt;

&lt;p&gt;Google. My goodness, I could divulge into an all nerdy rant of all the efforts google has been making for the PWA technology. But let me chill and just calmly list them out.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. PWAs on PlayStore 🤯
&lt;/h3&gt;

&lt;p&gt;YouTube: &lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ddbHp8tGBwQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  2. PWA Billing (Double shocked Emoji)
&lt;/h3&gt;

&lt;p&gt;YouTube: &lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Ge7VkPC2eM0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  3. File System Access
&lt;/h3&gt;

&lt;p&gt;YouTube: &lt;iframe width="710" height="399" src="https://www.youtube.com/embed/GNuG-5m4Ud0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Quick Actions
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgl0n07nizoxu2eay2zzv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgl0n07nizoxu2eay2zzv.jpg" alt="PWA Quick Actions"&gt;&lt;/a&gt;&lt;br&gt;
And a lot more...&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtfutkzrfjfuvnuv5utk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtfutkzrfjfuvnuv5utk.jpg" alt="What PWA Can Do"&gt;&lt;/a&gt;&lt;br&gt;
Companies are all over dedicating their resources to migrating their webapps/websites(debate later) to Progressive Web Apps, which brings us to the meat of this article. There will never be a native desktop app for twitter or Facebook or YouTube and for many other popular websites. Many Companies have opted to investing in PWA technology instead of technologies like Electron. And this is a trend that will soon become a norm. Many companies and developers will be  opting to build PWAs instead of native apps. Its obvious decision to choose PWA over other tech if your product does not require access to most OS level features. For example, in my opinion WhatsApp, slack and discord would be better off investing in PWA tech instead of their current electron apps since they work perfectly as websites. There's no need of wrapping them app in another browser and having to deal with hustles of this technology. Many Companies and devs will come to this realization soon. &lt;/p&gt;

&lt;p&gt;To put it bluntly I believe that in the end PWA tech will beat electronjs(The current king), UWP and Flutter Desktop(Yes I said it Flutter Devs, kill me🤣) and many other desktop development technologies. But this realization was not bolstered by PWA but mealy supported. The even bigger statement is this (Beware⚠ Controversial Statement ahead🤣) &lt;/p&gt;

&lt;p&gt;The Web Will win. I mean look at Figma vs Adobe XD. A web app vs a Native Desktop App. Most people prefer Figma. Adobe Illustrator vs Gravit Designer. Gravit doesn't win but its still amazing how it gives AI a run for its money. Check out Spline and see the power of 3D in the web. Browser based Gaming, Video Editing, Photo Editing, AR, VR, Video Calling, Chatting..... the web is clearly on its way to win.&lt;/p&gt;

&lt;p&gt;Am not naïve though. There are areas that native wins like: Performance, Design that fits the OS and System Level access. But this does not deter the WEB in this "race". Strides are being made in this shortcomings. Strides that will hopefully lead to their eradication. &lt;/p&gt;

&lt;p&gt;Shameless plug time 🤣&lt;br&gt;
Do check a product of mine FLB Music 👉 &lt;a href="https://feelthebeat.xyz" rel="noopener noreferrer"&gt;https://feelthebeat.xyz&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwt6k5g6sjiu33xcefau.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwt6k5g6sjiu33xcefau.jpg" alt="FLB Music ScreenShot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would Love to here your thoughts.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>discuss</category>
      <category>programming</category>
      <category>news</category>
    </item>
    <item>
      <title>Doing Serious Backend Development on your Phone</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Mon, 27 Jul 2020 09:41:57 +0000</pubDate>
      <link>https://dev.to/patrickweb/doing-serious-back-end-development-on-your-phone-bk2</link>
      <guid>https://dev.to/patrickweb/doing-serious-back-end-development-on-your-phone-bk2</guid>
      <description>&lt;p&gt;Its Finally here guys, as promised. Today we are going to setup your phone for some back end development. I'll walk you through all the tools you need to continue coding your apis on your Phone, on your couch 😎😎. We are going to hook up a rest api with some CRUD functionalities to our MongoDB service RUNNING ON OUR PHONE🎉🎉. &lt;/p&gt;

&lt;h2&gt;
  
  
  Replacements
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. &lt;strong&gt;Terminal/Linux environment&lt;/strong&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Its none other than the Legendary &lt;a href="https://play.google.com/store/apps/details?id=com.termux" rel="noopener noreferrer"&gt;&lt;strong&gt;Termux&lt;/strong&gt;&lt;/a&gt; app. This app is a terminal emulator that will provide a sort of Linux enviroment/shell(correct me if am wrong though) where we can install &lt;em&gt;NodeJs&lt;/em&gt;,&lt;em&gt;Git&lt;/em&gt; and &lt;em&gt;Vim&lt;/em&gt;. Of course termux has &lt;em&gt;A LOT&lt;/em&gt; more capabilities and functions but for today we will just use it for some JS development. I do encourage you dive in more deeper into termux as it is just freaking amazing and has a pretty nice community.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2.  &lt;strong&gt;Postman&lt;/strong&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;In order to test our routes we will be using an app called &lt;strong&gt;REST Api Client&lt;/strong&gt; which you can download &lt;a href="https://play.google.com/store/apps/details?id=com.sn.restandroid" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  3. &lt;strong&gt;MongoDb Compass&lt;/strong&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;For our mongodb service we will be using an app called &lt;strong&gt;Dory Mongo&lt;/strong&gt; which you can also directly download using &lt;a href="https://download.apkpure.com/b/apk/aW8udGVtcGFnZS5kb3J5bW9uZ29fNF80ZGIwNWM0ZQ?_fn=RG9yeSBtb25nb0RCIFNlcnZlcl92MC4xLjNfYXBrcHVyZS5jb20uYXBr&amp;amp;as=b2d437001f8baff8613d816b48b2af215f1e78ed&amp;amp;ai=868001597&amp;amp;at=1595832437&amp;amp;_sa=ai%2Cat&amp;amp;k=b6a3892a90cb3" rel="noopener noreferrer"&gt;this link&lt;/a&gt;. The developer pulled it down from play store but you can get from apkpure(the website). You can ofcourse just use the connection string from your remote database running on Atlas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;OK, if your done with downloading the apps we can start.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Setting Up Termux&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;So when you first launch termux you'll be greeted by this screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnzbxrt0wwqrlf9ph9aun.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnzbxrt0wwqrlf9ph9aun.png" alt="Termux default screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can treat these as the bare environment you get after installing Linux. Let's first update termux by running this command &lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade&lt;/code&gt;.&lt;br&gt;
As I said we need NodeJs,Git and Vim(optional, if you hate it, nano is preinstalled).&lt;br&gt;
Just run the commands below&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;pkg install git&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pkg install nodejs&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;*&lt;em&gt;**NB&lt;/em&gt;&lt;em&gt;: This will install will install the Latest release of Node with for my case is v 14.0.0&lt;/em&gt;*&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fiojrmuo11b50im5krfg4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fiojrmuo11b50im5krfg4.png" alt="termux node vesrion"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;pkg install vim&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lets create a shared folder where we will be storing all our project files. I recommend this as the termux files and folders you create in the root directory will not be visible in your Default File Manager.&lt;br&gt;&lt;br&gt;
First give termux access to your storage by running this command&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;termux-setup-storage&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then lets create our folder in the shared Directory.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;cd storage/shared &amp;amp;&amp;amp; mkdir Termux&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We can now access this folder from Termux and from our File Manager&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffrjj5asp30zcikdmkcsf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffrjj5asp30zcikdmkcsf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Initializing our Project&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You can just go about this using your normal workflow like &lt;code&gt;mkdir Backend &amp;amp;&amp;amp; cd Backend &amp;amp;&amp;amp; npm init -y&lt;/code&gt; and so on. But to shorten this tutorial i'll just pull some boiler plate code for a Node Mongoose CRUD api from github.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;git clone https://github.com/fedosejev/restful-api-express-mongoose.git&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd restful-api-express-mongoose&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is how the project looks like&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuama45x11rhv8i1ft3yk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuama45x11rhv8i1ft3yk.png" alt="project look"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To start the server we can run the script &lt;code&gt;node app.js&lt;/code&gt; &lt;em&gt;but not yet&lt;/em&gt;. We need a mongodb connection silly 😅.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting a MongoDB Service
&lt;/h2&gt;

&lt;p&gt;Again this is not necessary if you have a remote mongo service running in the ☁☁. You can just replace the IP and Database name in the connection string with your own.&lt;br&gt;
But lets focus on offline for when your at your grandma's and and there's no network 🏕. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;So open the Dory Mongo app and click on the &lt;strong&gt;play button&lt;/strong&gt; to start the service.&lt;/li&gt;
&lt;li&gt;Replace the IP address in your connection string with the one nemo, sorry Dory, is running on and replace the database name part with...you guessed it, A database name of your liking.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8tt984u6nr1ket59d06r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8tt984u6nr1ket59d06r.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F15fc4gbaon3zapps3nuq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F15fc4gbaon3zapps3nuq.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ok, so now we have &lt;em&gt;setup a mongodb service and connected to it&lt;/em&gt;. You can now finally start your server(&lt;code&gt;node app.js&lt;/code&gt;) 🎉🎉🎉🎊🎊🎊🎊&lt;/p&gt;

&lt;p&gt;Our server is finally running on port 8080 but now we have to test our api to see if we forgot any semicolon in our code(😂Java guys)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpm097kfarg987s4fhxkd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpm097kfarg987s4fhxkd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing our routes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;em&gt;REST Api Client&lt;/em&gt; App. &lt;/li&gt;
&lt;li&gt;Switch to &lt;strong&gt;http&lt;/strong&gt; on the left of the input field&lt;/li&gt;
&lt;li&gt;And Finally enter the address as &lt;code&gt;127.0.0.1:8080/api/items/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;POST&lt;/strong&gt;, enter your Json Data and click &lt;strong&gt;Send&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbaz25zyxvc0qf2bw0y94.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbaz25zyxvc0qf2bw0y94.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will the be shown a response from the server&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3t05q2k23hhlrk4k39ku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3t05q2k23hhlrk4k39ku.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NB: Go to the Models folder of the project and see what type of data is expected&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can now run other requests, GET,DELETE,PUT and so on.&lt;/p&gt;

&lt;p&gt;Phew we are finally done. That was simple right. "Hey, what was Vim for Bro?". Sorry I almost forgot. Its of course for editing your files from termux. You can 'cd'  into your project and run &lt;code&gt;vim .&lt;/code&gt; then select the file you want to edit. or just use nano. or even better use &lt;strong&gt;Spck&lt;/strong&gt; editor.&lt;/p&gt;

&lt;p&gt;Combine this article with my previous one about spck editor and wallah, You are doing &lt;strong&gt;Fullstack Web Developmet on Your Phone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Have a great day.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>android</category>
      <category>node</category>
      <category>github</category>
    </item>
    <item>
      <title>THE VSCODE OF MOBILE</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Tue, 21 Jul 2020 11:37:41 +0000</pubDate>
      <link>https://dev.to/patrickweb/the-vscode-of-mobile-pm4</link>
      <guid>https://dev.to/patrickweb/the-vscode-of-mobile-pm4</guid>
      <description>&lt;p&gt;So a few months ago I stumbled upon spck editor app on playstore while doing my occasionaly peruse around Playstore. I checked out the rating and the preview pictures and got super hyped to try it out.&lt;/p&gt;

&lt;p&gt;I have tried a lot of other mobile text editors to enable me to do some front end development on my phone but I never quite found what I was looking. But this was until I found Spck Editor. (Pronounced as "speck")&lt;/p&gt;

&lt;p&gt;Its availabele for &lt;a href="https://spck.io" rel="noopener noreferrer"&gt;web&lt;/a&gt; and &lt;a href="https://play.google.com/store/apps/details?id=io.spck&amp;amp;hl=en" rel="noopener noreferrer"&gt;android&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Some of Its Major awesome features&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. GitHub integration
&lt;/h4&gt;

&lt;h4&gt;
  
  
  2. Boiler plates for popular fronted frameworks
&lt;/h4&gt;

&lt;h4&gt;
  
  
  3. Ability to add Css frameworks to your projects
&lt;/h4&gt;

&lt;h4&gt;
  
  
  4. The Chrome-Like Console
&lt;/h4&gt;

&lt;h4&gt;
  
  
  5. Autocomplete, suggestions, Keyboard shortcuts and Find 'n' replace
&lt;/h4&gt;

&lt;h4&gt;
  
  
  6. And of course syntax highlighting
&lt;/h4&gt;




&lt;h2&gt;
  
  
  GitHub Integration
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;With Spck you can clone GitHub repos which gets added onto your &lt;strong&gt;Project Pane&lt;/strong&gt; as a new Project.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuz6l7ktn6rmjj6vyymrm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuz6l7ktn6rmjj6vyymrm.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbyucviz2pp1ghz00jsgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbyucviz2pp1ghz00jsgg.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Once you make changes to your project you can then &lt;strong&gt;Commit All&lt;/strong&gt; (Commit all the changes) and then &lt;strong&gt;Push&lt;/strong&gt; (Push the changes to the remote repo)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fklc0sijrr2ei825twvgw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fklc0sijrr2ei825twvgw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also make pull requests and Revert changes using the &lt;strong&gt;Pull&lt;/strong&gt; and &lt;strong&gt;Revert All&lt;/strong&gt; options.&lt;/p&gt;

&lt;p&gt;You Can &lt;strong&gt;Create and Switch Branches&lt;/strong&gt;, &lt;strong&gt;Add remote repo to existing project&lt;/strong&gt;, &lt;strong&gt;Fetch&lt;/strong&gt; and &lt;strong&gt;Log History&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F70un8arlagrtp6q1vsbk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F70un8arlagrtp6q1vsbk.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Basically the GitHub integration is unbelievable (for a mobile app)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Boilerplate for popular front end frameworks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw8i81zn09uhmtk3sl8yj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw8i81zn09uhmtk3sl8yj.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can create a &lt;strong&gt;Vue&lt;/strong&gt;, &lt;strong&gt;React&lt;/strong&gt; or &lt;strong&gt;Angular&lt;/strong&gt; project super easily with steps below.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Click on the &lt;code&gt;Plus Icon&lt;/code&gt; on the project pane&lt;/li&gt;
&lt;li&gt;Select &lt;code&gt;New Project&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Select the Front end Framework you want.&lt;/li&gt;
&lt;li&gt;Lastly, the Css Framework.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;Note for VueJs the project is not initialized in the single file component model but with Vue being imported and targeting a particular div.&lt;/strong&gt;
&lt;/h4&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Ability to add Css frameworks to your projects
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvi7nj6zjf02pwy3zyv9h.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvi7nj6zjf02pwy3zyv9h.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Currently when you create a project you can choose either the following css frameworks to be automatically imported/linked with your Project&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Bootstrap&lt;/li&gt;
&lt;li&gt;Bulma&lt;/li&gt;
&lt;li&gt;Material Design Lite&lt;/li&gt;
&lt;li&gt;Semantic UI&lt;/li&gt;
&lt;li&gt;UIkit&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Chrome-Like Console
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;The Console is a stripped down version of the Chrome Console.You can toggle it on off in the Preview mode. It Features the &lt;strong&gt;The JS Console Tab&lt;/strong&gt;, &lt;strong&gt;The Elements Tab&lt;/strong&gt;,&lt;strong&gt;The Resources tab&lt;/strong&gt; and &lt;strong&gt;Settings tab&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Js console tab is Just like the Chrome console&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Autocomplete, suggestions, Keyboard shortcuts and Find 'n' replace
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;What can I say here. A lot like VSCode&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  The are a lot and I mean a lot more features that I have not covered. And I do believe that Spck editor app is the closest thing to our beloved Vscode on Mobile
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;I'll also be posting an article about doing back end development on Mobile. And again I mean serious back end development with express and a Mongodb service running on the PHONE. So stay tuned (or just follow me :) )&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>android</category>
      <category>productivity</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Linux is a bigger threat to windows than you think</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Mon, 20 Jul 2020 11:17:21 +0000</pubDate>
      <link>https://dev.to/patrickweb/linux-is-a-bigger-threat-to-windows-than-you-think-d3h</link>
      <guid>https://dev.to/patrickweb/linux-is-a-bigger-threat-to-windows-than-you-think-d3h</guid>
      <description>&lt;p&gt;Why so. WSL that's why. So there has been a lot of excitement in the Linux community over the release of WSL2. Most "Linuxers" believe that WSL(Windows Subsystem for Linux) will help in encouraging adamant windows users to try out Linux whilst at the comfort of their familiar WIN 10. The hope is that many people will realize the benefits and ease of use(YES it is) of Linux and eventually decide to fully dive into a full installation of Linux.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/pDWtwK7D2IlFu/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/pDWtwK7D2IlFu/giphy.gif" alt="people diving into a pool"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But in my opinion I think not. The way I see it windows is trying to demean Linux by presenting it like just some app you can download and install thus prompting many people to just opt using it that way. Well why would you go through the hustle of dual-booting another OS whereas you can just click some buttons and paste some commands and get it.&lt;/p&gt;

&lt;p&gt;And its WORKING!!&lt;/p&gt;

&lt;p&gt;See Microsoft now recognizes Linux as an actual and worthy contender in the battle of the OSs. Which other reason would Microsoft invest so many resources in WSL? While you are thinking about this question remember that Microsoft is a company, a company that defends its market share and ensures that their profit margins are always rising.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/d3mlE7uhX8KFgEmY/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/d3mlE7uhX8KFgEmY/giphy.gif" alt="think about it gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;"But surely Linux hasn't reached the level windows is?"&lt;/p&gt;

&lt;p&gt;IT HAS.&lt;br&gt;
Let's look at the areas that have made windows users reluctant to switch&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  GAMING (Linux is the Future of Gaming)
&lt;/h1&gt;

&lt;p&gt;There weren't a lot of games supported on Linux in the past, but that was before the release of STEAM  on Linux. I'm not going to dive into this topic that much but i'll leave with a few things.&lt;br&gt;
You get waaaay better performance on Linux.&lt;br&gt;
You can play tons of games on Linux, TONS I say. Through steam a lot of games are now available on Linux. Check this out &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/xvrft9ULvho"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Co6FePZoNgE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  Video Editing,VFX Compositing, Photo Editing and Graphic Design
&lt;/h1&gt;

&lt;p&gt;I'll quickly list out some linux alternatives to the softwares exclusive to windows&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Photo Editing (Photoshop Realm)
&amp;gt; Here we have &lt;a href="https://www.gimp.org/"&gt;GIMP&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Graphic Design(Illustrator realm)
&amp;gt; We got two of 'em:  &lt;a href="https://inkscape.org/"&gt;Inkscape&lt;/a&gt; , &lt;a href="https://www.designer.io/en/"&gt;Gravit Designer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;VFX Compositing(The Kingdom of After Effects)
&amp;gt; &lt;a href="https://www.foundry.com/products/nuke"&gt;Nuke&lt;/a&gt;,&lt;a href="https://www.blender.org"&gt;Blender&lt;/a&gt; and &lt;a href="https://www.blackmagicdesign.com/products/fusion/"&gt;Black Design Fusion&lt;/a&gt;

&lt;ol&gt;
&lt;li&gt;Video Editing (The great Premier Pro)
&lt;a href="https://www.blackmagicdesign.com/products/davinciresolve/"&gt;DaVinci Resolve&lt;/a&gt;,&lt;a href="https://www.blender.org"&gt;Blender&lt;/a&gt; and &lt;a href="https://kdenlive.org/en/"&gt;KdenLive&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;IF Adobe Decided to provide support for Linux, that would be the biggest blow to windows and would for sure cause an gigantic switch from windows to Linux.&lt;/em&gt; Just saying 😁.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Linux market share continues to grow and not just techies are switching to Linux but also ordinary people(none techies). People of all ages are seeing the awesomeness of Linux.&lt;br&gt;
&lt;a href="https://i.giphy.com/media/qav3a2OPBdZoQ/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/qav3a2OPBdZoQ/giphy.gif" alt="old man realization"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well this is just my opinion. Tell me what you think.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>opensource</category>
      <category>bash</category>
    </item>
    <item>
      <title>PWA,just as good as native apps?</title>
      <dc:creator>Just Patrick </dc:creator>
      <pubDate>Thu, 14 May 2020 21:59:02 +0000</pubDate>
      <link>https://dev.to/patrickweb/pwa-just-as-good-as-native-apps-dn1</link>
      <guid>https://dev.to/patrickweb/pwa-just-as-good-as-native-apps-dn1</guid>
      <description>&lt;p&gt;Progressive web apps have been on the hype in the web dev community. Many developers are "converting" their sites into PWAs. But am not here to tell you about converting a site to a pwa, but on making mobile apps through pwa technology.&lt;/p&gt;

&lt;p&gt;Oh and I'll also help you in making your pwa into an installable app and even publish it to playstore if your interested in that.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Mobile first design&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;First of all make sure that you have designed your app to look and feel well on mobile.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can do this through css media queries and ensuring that the animations if any are smooth but if you're not willing to go through that hustle I would suggest using a mobile UI framework like Ionic&lt;br&gt;
Check it out here &lt;a href="https://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;rct=j&amp;amp;url=https://ionicframework.com/docs&amp;amp;ved=2ahUKEwj_5ZPBobTpAhVFQBoKHavGAcUQjBAwHnoECAgQCw&amp;amp;usg=AOvVaw0NtW0O33oMMnHIATk_YDWE"&gt;Ionic Docs&lt;/a&gt;&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Generating the manifest.json file&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;After all the coding is done and you have your beautiful app ready, now its time to generate the file that will allow the browser to identify your app as a pwa.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can type out the file using the following structure&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
"name": "Temporas", "short_name": "Temporas", "theme_color": "#222831", "background_color": "#ffad17", "display": "standalone", "Scope": "", "start_url": "/index.html", "icons": [ // A lot of icons ]&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
or generate it using a tool like &lt;a href=""&gt;this one&lt;/a&gt;&lt;br&gt;
I believe everything here is self explanatory 😉.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Put this file outside your the folder containing your static assets e.g Public or Dist folder&lt;/p&gt;
&lt;/blockquote&gt;




&lt;ol&gt;
&lt;li&gt;Registering the service worker
&amp;gt; A service worker is generally a script that gives you access to some native device features like &lt;strong&gt;push notifications&lt;/strong&gt; and &lt;strong&gt;background sync&lt;/strong&gt; and allows &lt;strong&gt;caching&lt;/strong&gt; of your assets (markup,css and Js) to allow your app to run offline
To register it you can just paste in the following snippet in your &lt;strong&gt;index.html&lt;/strong&gt; (or the html file you specified as you start url in the manifest.json)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;script&amp;gt; // Registering our Service worker if('serviceWorker' in navigator) { navigator.serviceWorker.register('sw.js', { scope: './' }) } &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;4.The last step 🎉🎉&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Now we need to tell the browser which files to cache for offline use.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is done in the &lt;strong&gt;sw.js&lt;/strong&gt; file. Create this outside of your assets folder in the same level as your manifest file.&lt;br&gt;
The edit this snippet in accordance with your app.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
const cacheName = 'Temporas'; // Cache all the files to make a PWA self.addEventListener('install', e =&amp;gt; { e.waitUntil( caches.open(cacheName).then(cache =&amp;gt; { // Our application only has two files here index.html and manifest.json // but you can add more such as style.css as your app grows return cache.addAll([ './', './index.html', './manifest.json' ]); }) ); });&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;We are all done, or are we 😑. At this stage you can open your app on your phone web browser and then click on &lt;strong&gt;Add to homescreen&lt;/strong&gt; 🎉🎉&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Since I don't want to make this post any longer I'll cover the deployment in part 2 of this. Be free to ask any question or give suggestions or corrections wherever necessary.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>pwa</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
