<?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: Jad Joubran</title>
    <description>The latest articles on DEV Community by Jad Joubran (@jadjoubran).</description>
    <link>https://dev.to/jadjoubran</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%2F49775%2F61e24ebb-ef0a-4e90-9ffc-87cd7c98b4f0.jpeg</url>
      <title>DEV Community: Jad Joubran</title>
      <link>https://dev.to/jadjoubran</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jadjoubran"/>
    <language>en</language>
    <item>
      <title>Exploring CSS' new "if conditions"</title>
      <dc:creator>Jad Joubran</dc:creator>
      <pubDate>Thu, 10 Jul 2025 09:36:15 +0000</pubDate>
      <link>https://dev.to/jadjoubran/exploring-css-new-if-conditions-2f89</link>
      <guid>https://dev.to/jadjoubran/exploring-css-new-if-conditions-2f89</guid>
      <description>&lt;p&gt;CSS now has an &lt;code&gt;@if&lt;/code&gt; rule that lets you add conditional logic to your declarations.  &lt;/p&gt;

&lt;p&gt;In this short 8-min video, I explore how and why it can be used.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/_sE7nerobag"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>playlist</category>
    </item>
    <item>
      <title>Progressive Web Apps tutorial from scratch</title>
      <dc:creator>Jad Joubran</dc:creator>
      <pubDate>Thu, 06 Sep 2018 14:42:51 +0000</pubDate>
      <link>https://dev.to/jadjoubran/progressive-web-apps-tutorial-from-scratch-3eim</link>
      <guid>https://dev.to/jadjoubran/progressive-web-apps-tutorial-from-scratch-3eim</guid>
      <description>&lt;p&gt;The modern web is super exciting. There's a whole new range of possibilities for us web developers thanks to a set of new Web APIs, collectively popularized under the term Progressive Web Apps. &lt;/p&gt;

&lt;p&gt;When somebody asks me what is a PWA, it's always hard to come up with a concise definition that doesn't include a lot of technical terms. However, I finally came up with a definition that holds true in most scenarios:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A Progressive Web App is a modern Website that consistently delivers a superior User Experience.&lt;/strong&gt; ✨&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The reason why I think this holds true in most scenarios is because it covers most of the technical features possible by PWAs. Here's an example:&lt;br&gt;
Making your website work offline is about the User Experience. If your user gets interrupted with the Offline Dinosaur because they briefly lost connection, then this is a bad User Experience.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Everything revolves around User Experience.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How do you learn it?
&lt;/h2&gt;

&lt;p&gt;Now the big question is, how do we learn Progressive Web Apps?&lt;/p&gt;

&lt;p&gt;Here's why I have an extremely important 3-step recommendation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set your front-end framework of choice aside&lt;/li&gt;
&lt;li&gt;Learn Progressive Web Apps from scratch&lt;/li&gt;
&lt;li&gt;Apply what you learned in PWAs to your front-end framework&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Front-end frameworks are great, but the web platform has been moving so fast that we as web developers need to keep up with it by understanding how these new Web APIs work.&lt;/p&gt;

&lt;p&gt;Having a wrapper on top of these APIs is great for productivity, but terrible for understanding how something works.&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%2Fi.imgur.com%2FAFAHXfN.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%2Fi.imgur.com%2FAFAHXfN.png" alt="Github repo screencast"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is exactly why I recorded a free video series on YouTube that teaches Progressive Web Apps from scratch. We start from a repository with a simple index.html, app.js &amp;amp; app.css all the way to building a simple PWA.&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%2Fi.imgur.com%2FpJKxBqS.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%2Fi.imgur.com%2FpJKxBqS.jpg" alt="PWA video series"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch the &lt;a href="https://www.youtube.com/watch?v=GSSP5BxBnu0&amp;amp;list=PLIiQ4B5FSuphk6P-zg_E3W9zL3J22U4dT&amp;amp;index=1" rel="noopener noreferrer"&gt;📽 PWA Video series&lt;/a&gt; for free!&lt;/p&gt;

</description>
      <category>pwa</category>
      <category>progressivewebapp</category>
      <category>javascript</category>
      <category>serviceworker</category>
    </item>
    <item>
      <title>Code to go: helping you find updated snippets for common use cases</title>
      <dc:creator>Jad Joubran</dc:creator>
      <pubDate>Sun, 17 Dec 2017 16:21:47 +0000</pubDate>
      <link>https://dev.to/jadjoubran/code-to-go-helping-you-find-updated-snippets-for-common-use-cases-7b7</link>
      <guid>https://dev.to/jadjoubran/code-to-go-helping-you-find-updated-snippets-for-common-use-cases-7b7</guid>
      <description>&lt;p&gt;&lt;a href="https://codetogo.io" rel="noopener noreferrer"&gt;Code to go&lt;/a&gt; is a website that aims to help developers learning JavaScript find up to date, accurate and ready to use snippets of JavaScript for common use cases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fnoqatihwa90fgsli6np2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fnoqatihwa90fgsli6np2.png" alt="homepage screenshot" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The motivation behind Code to go is that if you're teaching somebody JavaScript in 2017, they will most likely search on google some simple questions, such as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to split a string into array of characters in JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;However, this search result will yield a &lt;a href="https://stackoverflow.com/questions/6484670/how-do-i-split-a-string-into-an-array-of-characters" rel="noopener noreferrer"&gt;Stackoverflow question&lt;/a&gt; that was asked 7 years ago, marked as duplicate and that has an accepted answer that recommends using &lt;code&gt;split('')&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;While it may not be a big deal to use &lt;code&gt;split('')&lt;/code&gt; here, the learner will immediately lose their confidence of finding the correct answer here, as the comments clearly state that they should not be using &lt;code&gt;split('')&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I realized that there's a gap that stackoverflow isn't able to fill, which is providing short snippets of code that are ready to be used, especially by beginners.&lt;/p&gt;

&lt;p&gt;And this is exactly what Code to go does.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fzqp6ybd7tkei87gx0m75.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fzqp6ybd7tkei87gx0m75.png" alt="how to split a string into array of characters in JavaScript" width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Answers presented on Code to go are most of the times self-sufficient. They can be understood easily and they represent generic scenarios which allows the developers to adapt those snippets to their own scenarios.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fix76bvdydeni31h08pgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fix76bvdydeni31h08pgc.png" alt="search" width="800" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the time of writing, Code to go has 50 use cases that you can browser or search for.&lt;/p&gt;

&lt;p&gt;We are planning on adding more, however our top priority is to maintain quality rather than quantity.&lt;/p&gt;

&lt;p&gt;You can also suggest a Use case if you couldn't find it on the website. You can simply click on the Contribute button or head over to the &lt;a href="https://github.com/jadjoubran/codetogo.io/issues" rel="noopener noreferrer"&gt;github repository&lt;/a&gt; and create a new issue.&lt;/p&gt;

&lt;p&gt;It's also important to mention that Code to go does not aim to replace documentation. Whenever possible, our answers link back to the official Mozilla Developer Network documentation like in this example below.&lt;br&gt;
This allows the answers to be easily absorbed by beginners while also letting them dive deeper into the documentation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fhd491lmzwbvb27vuwkvs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fhd491lmzwbvb27vuwkvs.png" alt="example with MDN" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you this makes learning javascript even more enjoyable!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>snippets</category>
      <category>modern</category>
    </item>
  </channel>
</rss>
