<?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: Abhighyaa Jain</title>
    <description>The latest articles on DEV Community by Abhighyaa Jain (@abhighyaa).</description>
    <link>https://dev.to/abhighyaa</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%2F679501%2Fc9646d25-cc6a-48a0-97de-91c4f3f5a532.jpeg</url>
      <title>DEV Community: Abhighyaa Jain</title>
      <link>https://dev.to/abhighyaa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhighyaa"/>
    <language>en</language>
    <item>
      <title>Journey of a web page - A mind map !</title>
      <dc:creator>Abhighyaa Jain</dc:creator>
      <pubDate>Sun, 06 Nov 2022 07:33:38 +0000</pubDate>
      <link>https://dev.to/abhighyaa/the-journey-of-a-web-request-a-mind-map-4g5g</link>
      <guid>https://dev.to/abhighyaa/the-journey-of-a-web-request-a-mind-map-4g5g</guid>
      <description>&lt;p&gt;Ever wondered what happens when you hit enter after typing a url in the browser’s address bar? 🤔&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%2F9zn5sojo1gjr4oslt7i1.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%2F9zn5sojo1gjr4oslt7i1.png" alt="what-happens-visually-on-hitting-enter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oh, I wish!😨 &lt;br&gt;
The browser BTS does so many things for this to appear so seamless. And understanding those are very important to make our applications highly performant.&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%2Fhfhxxdaoq73flt3ju8pt.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%2Fhfhxxdaoq73flt3ju8pt.png" alt="You got this"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's understand these one by one - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You enter some input &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%2Fz6yfxezrsm3r09u78h5s.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%2Fz6yfxezrsm3r09u78h5s.png" alt="You-entering-your-fav-website"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Browser parses the input to check if its a url or a search query. &lt;br&gt;
For search query =&amp;gt; it redirects to the search engine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For URL, it - &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%2Fej749eq2w80pzskgklvw.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%2Fej749eq2w80pzskgklvw.png" alt="What-does-browser-do-when-it-encounters-a-url"&gt;&lt;/a&gt;&lt;br&gt;
💡 In the n/w response, we can see vast differences between 14kb and 15kbs response size, but not between 15 and 16 kbs. Knowing which all Kbs are more critical than others can give you a big time &lt;a href="https://web.dev/ttfb/" rel="noopener noreferrer"&gt;TTFB&lt;/a&gt; benefit. More details &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work#tcp_slow_start_14kb_rule" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the response is fetched, it - &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%2F9vnv048jlysogeaqj7cc.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%2F9vnv048jlysogeaqj7cc.png" alt="what-does-browser-do-after-the-response-is-fetched"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Once renderer process receives the IPC and data stream, it -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Starts parsing the HTML received. HTML received is in bytes format.
&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%2Fnb38050dz7qkitlex8v8.png" alt="HTML Parsing"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction" rel="noopener noreferrer"&gt;DOM&lt;/a&gt; (the data structure browsers use to process html into web pages) - it contains all the nodes of HTML and their relationships. &lt;/li&gt;
&lt;li&gt;When parser comes across downloading resources(like css, js, assets like fonts, image, video), it sends requests to the network thread in the browser process. &lt;/li&gt;
&lt;li&gt;Preload scanner is a browser optimisation technique to speeden up this process. It peaks at the tokens generated by parsers and sends requests to the network thread in the browser process.&lt;/li&gt;
&lt;li&gt;CSS, JS are render blocking resources. They stop html parsing and block page rendering, thus creating more delays and worsening the page load times.
&lt;/li&gt;
&lt;li&gt;💡 This is why we use techniques like &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/preload" rel="noopener noreferrer"&gt;preloads&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/preconnect" rel="noopener noreferrer"&gt;preconnects&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-async" rel="noopener noreferrer"&gt;async&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-defer" rel="noopener noreferrer"&gt;defer&lt;/a&gt;, splitting CSS into critical and non critical and defer the non critical one etc wherever suitable.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the DOM is constructed, the main thread parses the CSS to create &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model" rel="noopener noreferrer"&gt;CSSOM&lt;/a&gt; - the data structure similar to DOM, but containing the computed styles for each node in the DOM. &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%2Fiu7q5buqlpnvekrdhoy4.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%2Fiu7q5buqlpnvekrdhoy4.png" alt="CSSOM"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now the browser creates an &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Accessibility_tree" rel="noopener noreferrer"&gt;accessibility tree&lt;/a&gt; - AOM - semantic version of DOM - to be used by screen readers and other accessibility devices.&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%2Fr7ru7a2abyeg2iswqbrz.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%2Fr7ru7a2abyeg2iswqbrz.png" alt="Accessibility Object model"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now to render the page, the browser needs to know the exact positions of the nodes. So, it creates the render/layout tree, containing the coordinates information for the nodes which are to be shown on the page, considering all line breaks, height and width of elements.&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%2Frrulmy52tlkq3ev9kt51.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%2Frrulmy52tlkq3ev9kt51.png" alt="Render tree"&gt;&lt;/a&gt;&lt;br&gt;
🤔 Why do we need it, if we have dom and cssom? &lt;br&gt;
Because CSS is mighty 💪🏻 It can hide elements from the web page even if they are present in DOM. Vice versa, it can add info(using the pseudo classes), even if they are not present in DOM. It can make the elements float to one side, mask overflow items, and change writing directions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subsequent calculation of these positions is called reflow.&lt;/li&gt;
&lt;li&gt;💡 If for elements like image, we can provide dimensions before loading, reflow can be saved improving the &lt;a href="https://web.dev/cls/" rel="noopener noreferrer"&gt;CLS&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next it creates paint records - to add z-index and determine orders in which to paint.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now comes the step where we actually see something on the screen - rasterization - transforming the images created into actual pixels using GPUs. &lt;br&gt;
To optimise this, the browser creates layers of the page (based on video, canvas, 3d transform, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/will-change" rel="noopener noreferrer"&gt;will-change css property&lt;/a&gt;). These layers are individually rasterized and then composited to form the actual page. &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%2Fqety6be5bxggs3vo0c2f.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%2Fqety6be5bxggs3vo0c2f.png" alt="Rasterization and Composition"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first occurrence of this marks the &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/First_contentful_paint#:~:text=First%20Contentful%20Paint%20(FCP)%20is,the%20page%20is%20actually%20loading" rel="noopener noreferrer"&gt;FCP&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Also, the entire time duration from when the DNS lookup started to here, marks our &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Time_to_interactive" rel="noopener noreferrer"&gt;TTI&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;💡 When we encounter janky scrolls and animations, we should check reflows and repaints, it must be skipping some frames. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It is now that the renderer process sends a message back to the browser process to replace the spinner with reload icon. And all onload events are fired.&lt;/p&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%2Fuploads%2Farticles%2Fmgqj6d1e70uw4ou2qzb4.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%2Fmgqj6d1e70uw4ou2qzb4.png" alt="Its done"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is how eventful and expensive a web page’s journey is. So, be mindful of the renders next time you code an application.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>webperf</category>
      <category>architecture</category>
      <category>html</category>
    </item>
    <item>
      <title>My first conference!</title>
      <dc:creator>Abhighyaa Jain</dc:creator>
      <pubDate>Tue, 11 Oct 2022 17:47:20 +0000</pubDate>
      <link>https://dev.to/abhighyaa/my-first-conference-2omi</link>
      <guid>https://dev.to/abhighyaa/my-first-conference-2omi</guid>
      <description>&lt;p&gt;So, React India conf ended a couple of weeks ago as I write this, but what I experienced is to be cherished forever. I am still overwhelmed, hoping that writing about it makes me sober 😛 &lt;/p&gt;

&lt;p&gt;Also, if you have not watched the Hotstar special at React India, check it out &lt;a href="https://www.youtube.com/watch?v=Hy11T_eoUHg&amp;amp;t=31271s"&gt;here&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Hy11T_eoUHg?start=31271"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;and DO NOT, I repeat DO NOT miss out on the entry if you are a true bollywood fan 🙈&lt;/p&gt;




&lt;p&gt;So this all began with me asking my EM, “I want to attend the conference. Can you help me with the passes?” To this, he casually replied, “Give a talk there, easy peasy”. I was wondering - Give a talk. Me. At an international tech conference. Easy Peasy. Okay he must be definitely kidding. A little disclaimer about me here, I have been around amazing folks since the beginning of my career and I don’t know lots of things so I was muddled whether I would be able to present something that would make sense  and am I the right person to do so, because I am a very tiny contributor to what we are gonna talk about.&lt;/p&gt;

&lt;p&gt;But with this blog and the video, you must have figured it out that I made it to the conf. So, cutting short these dilemmas to the conf week, I and my colleagues had already outlined the content we wanted to present by now, we had worked on the slides as well. Ours was the last day, last talk and we(I and my co speaker) were arriving a day before the conf, which meant we had sufficient time to practise, coordinate, and do dry runs. Right? &lt;br&gt;
Oh, I wish. This was a myth. The moment I stepped in Goa, I started meeting folks from the airport itself, and the talks continued to happen - at the venue in the day, in the night, in the conference hall, in the workshops, in the garden, on the beach, in the lobby area, on the booths, during the meals, off the breaks - Basically it just went on. And it was only until two hours before the talk we realised, ouch, we need to be at least somewhat prepared. And with 1.5 dry runs and lots of esteem, we did it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Takeaways -
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Of course lots of goodies 😛&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VBVsSFnD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/89g2ci9rvfclyx7jl2da.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VBVsSFnD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/89g2ci9rvfclyx7jl2da.jpeg" alt="React India goodies" width="768" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lots of things to flaunt about - meeting and spending time with tech celebrities 🙈&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---0QbmKs9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/khagmy9j144zlkx59xcw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---0QbmKs9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/khagmy9j144zlkx59xcw.png" alt="Breakfast with Kent C. Dodds" width="324" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zMn1MoB4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w53y4j09mybpju2rkhms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zMn1MoB4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w53y4j09mybpju2rkhms.png" alt="The one with Tejas Kumar" width="552" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2yc2wK02--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bdsmh575s46re9yqd92m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2yc2wK02--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bdsmh575s46re9yqd92m.png" alt="All speakers in a frame" width="880" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F4-o240f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h9lxfakk4tia2uy6ai60.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F4-o240f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h9lxfakk4tia2uy6ai60.png" alt="With Disney+ Hotstar team" width="880" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But majorly - &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Give things a shot - Do not be hesitant to ask for what you want even in professional settings (life in general as well) You are either way not getting it, but you might get it, if you ask for it. I from sharing the interest of attending the conf, to actually speaking at it - classic example here!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You don’t need to know it all to be an awesome techie. You just need to know how to figure things out. Ask the right questions to you and folks around and chase for the answers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go, talk to folks around. You get some useful insights and ideas about where you have been moving in circles. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It can be an eye-opener, a turning point for you as you get highly pumped to contribute to the community.(by any means - open source, blogs, podcasts, videos, tweets - me beginning with writing this)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Be humble. Dance your way to celebrating tech and life in general. Enjoy every bit of your journey.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MHWw9h9_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x4i3r75lofa281x02rb9.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MHWw9h9_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x4i3r75lofa281x02rb9.jpeg" alt="React India Doodle Art" width="654" height="946"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>community</category>
      <category>beginners</category>
      <category>devjournal</category>
      <category>writing</category>
    </item>
  </channel>
</rss>
