<?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>Forem: Manan Gouhari</title>
    <description>The latest articles on Forem by Manan Gouhari (@manangouhari).</description>
    <link>https://forem.com/manangouhari</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%2F230009%2F26a2416a-5ba0-49e2-94b1-32bd1c347432.jpg</url>
      <title>Forem: Manan Gouhari</title>
      <link>https://forem.com/manangouhari</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/manangouhari"/>
    <language>en</language>
    <item>
      <title>Presentation goof-ups are humbling</title>
      <dc:creator>Manan Gouhari</dc:creator>
      <pubDate>Sun, 22 Nov 2020 20:44:15 +0000</pubDate>
      <link>https://forem.com/manangouhari/presentation-goof-ups-are-humbling-13ko</link>
      <guid>https://forem.com/manangouhari/presentation-goof-ups-are-humbling-13ko</guid>
      <description>&lt;p&gt;Not a tech post, but as this is the only place I blog, y'all will have to deal with this type of post until I get my own blog up and running. Here's to hoping y'all don't mind :)&lt;/p&gt;

&lt;h2&gt;
  
  
  Act 1: The Setup
&lt;/h2&gt;

&lt;p&gt;We had an idea-pitching competition in our Uni, and about 20 teams participated. The top 7 were selected for the final round, and yay we were one of them.&lt;/p&gt;

&lt;p&gt;In the finals, we had to present our idea in front of three judges through one of the most torturous software of this age, Microsoft Teams :p&lt;/p&gt;

&lt;h2&gt;
  
  
  Act 2: The goof-up
&lt;/h2&gt;

&lt;p&gt;As you can recognize from the title, we bombed the presentation really hard.&lt;/p&gt;

&lt;p&gt;Four of us ran into one disaster after another, non-stop. &lt;br&gt;
The audio won't work, terrible lag, people speaking the wrong part, and whatnot. &lt;/p&gt;

&lt;p&gt;By now you can guess that we didn't win _(-&lt;em&gt;-)&lt;/em&gt;/&lt;/p&gt;

&lt;h2&gt;
  
  
  Act 3: The Conclusion
&lt;/h2&gt;

&lt;p&gt;To be honest, it was a humbling experience to go through. Being in tech usually &lt;strong&gt;detaches you from the reality of how fickle it is&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;I mean in 2020 when companies are starting to build mind-blowing stuff in VR &amp;amp; AR, start-ups are working towards full-blow metaverse, &lt;strong&gt;here we're having audio issues due to our stupid internet&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But I value this experience, speaking in public scares me. &lt;br&gt;
Right before my turn, my pulse starts to race.&lt;/p&gt;

&lt;p&gt;This experience allowed me to tackle this low-key fear head-on and I've decided to keep on doing the same by seeking out as many opportunities as I can to speak/present in public.&lt;/p&gt;

&lt;h2&gt;
  
  
  Act 4: The Ask
&lt;/h2&gt;

&lt;p&gt;While I'll probably stay away from idea-pitching competitions for a &lt;strong&gt;byte&lt;/strong&gt;,&lt;br&gt;
I'm looking forward to speaking at tech conferences, even if it's a small 5-10 minutes talk.&lt;/p&gt;

&lt;p&gt;In case you're somebody who hosts a tech-conference or knows somebody who hosts a tech-conference, please let me know if you've scope to squeeze in one short talk. &lt;/p&gt;

&lt;p&gt;If you've made it this far, thanks a lot for reading.&lt;br&gt;
You can reach out to me on Twitter - &lt;a href="https://twitter.com/manangouhari"&gt;@manangouhari&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/fxe8v45NNXFd4jdaNI/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/fxe8v45NNXFd4jdaNI/giphy.gif" alt="bye bye mickey mouse"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comprehensive guide to HTML and CSS</title>
      <dc:creator>Manan Gouhari</dc:creator>
      <pubDate>Fri, 12 Jun 2020 16:22:39 +0000</pubDate>
      <link>https://forem.com/manangouhari/comprehensive-guide-to-html-and-css-29c9</link>
      <guid>https://forem.com/manangouhari/comprehensive-guide-to-html-and-css-29c9</guid>
      <description>&lt;p&gt;There are three components that go into frontend development - html, css and javascript. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML is the structure of the website.&lt;/li&gt;
&lt;li&gt;CSS is the styles on the website.&lt;/li&gt;
&lt;li&gt;Javascript brings in functionality to the website.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTML and CSS are not programming language per se(people have been debating about it for ages.)&lt;br&gt;
But Javascript is a programming language.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sKmCMRrG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4efwootoan7o2yiv37eo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sKmCMRrG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4efwootoan7o2yiv37eo.jpg" alt="HTML meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At a beginner level, you can create AMAZING, STUNNING websites with just HTML and CSS. &lt;/p&gt;

&lt;p&gt;HTML and CSS are super easy to learn, believe me.&lt;br&gt;
But it takes time to master the art of using them in websites to create compelling layouts like the one in the below photo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aPF7DToE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4e4dj1twv8ig2wj4l5c6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aPF7DToE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4e4dj1twv8ig2wj4l5c6.jpg" alt="Website example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  First step is to get good at HTML and CSS, here are a few resources for you -
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Learning Platforms -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.freecodecamp.org/learn"&gt;Freecodecamp&lt;/a&gt; - Awesome platform to interactively learn web development, I can't stress on how complete it is. All for free.&lt;/li&gt;
&lt;li&gt;
&lt;a href="//codecademy.com"&gt;Codecademy&lt;/a&gt; - It's mostly a paid platform but their basic HTML and CSS course is free! Worth giving a look.&lt;/li&gt;
&lt;li&gt;
&lt;a href="//scrimba.com"&gt;Scrimba&lt;/a&gt; - An interesting platform for sure. Think of it as interactive courses. You can look at and edit the code while you're watching the course! Tons of free courses over here!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Crash courses on Youtube(GOLD) -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=8gNrZ4lAnAw"&gt;Frontend developer crash course by DesignCourse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=vQWlgd7hV4A"&gt;HTML and CSS crash course by DevEd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=UB1O30fR-EE"&gt;HTML Crash Course by Traversy Media&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=yfoY53QXEnI"&gt;CSS Crash Course by Traversy Media&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Basic tutorials through projects -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=ZeDP-rzOnAA&amp;amp;"&gt;Build a responsive website with HTML and CSS tutorial by DevEd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Wm6CUkswsNw"&gt;Build an HTML5 website with a responsive layout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=zyNhxN6sToM"&gt;Coding a responsive webpage from start to finish&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Best websites/blogs -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/"&gt;MDN Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/"&gt;W3Schools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-tricks.com/"&gt;CSS-Tricks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.samanthaming.com/"&gt;Samantha Ming&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Instagram carousels worth checking out -
&lt;/h3&gt;

&lt;p&gt;(I truly believe there's a lot of value all over Instagram, you just gotta dig it up)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.instagram.com/p/B94ER5ag_tP/"&gt;Basics of HTML and CSS by @iamharsh.dev&lt;/a&gt;
-&lt;a href="https://www.instagram.com/p/CBVwheDg-q1/?igshid=1eve7lpwupw08"&gt;CSS Crash Course by @iamharsh.dev&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  By &lt;a href="https://www.instagram.com/thecodercoder/"&gt;@thecodercoder&lt;/a&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B_-cqXQgJpS/"&gt;How to make images transparent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B-XGSCXA9PR/"&gt;Media queries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B9mKDZClaHz/"&gt;Emmet shortcuts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B7jD9ChgJKw/"&gt;How to be a good webdeveloper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B7G3eioAru-/"&gt;How to use codepen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  By &lt;a href="https://www.instagram.com/thecodecrumbs/"&gt;@thecodecrumbs&lt;/a&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/CA-jHtpoDNw/"&gt;5 ways to host a website for free&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/CBDsXb1o6f4/"&gt;How to speed up your site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/CAAvlMEDQqY/"&gt;CSS Box Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B-wzSDTAdCd/"&gt;Example of animations with CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B-hTzIho56v/"&gt;CSS Shorthand properties&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  By &lt;a href="https://www.instagram.com/duanecreates/"&gt;@duanecreates&lt;/a&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B_pr4xqA0wm/"&gt;CSS Media Queries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B-cO99Pgo2o/"&gt;How to get nice fonts for your websites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B-E89GhAWyO/"&gt;Frontend developer roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B9mVFkQg3z5/"&gt;9 HTML Tags you might need&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/B8Y96OaA-Uq/"&gt;Box Sizing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tools -
&lt;/h2&gt;

&lt;p&gt;Websites that can make your life easy as a frontend developer. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://coolors.co/"&gt;coolors.co&lt;/a&gt; - Generate beautiful color palletes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://unsplash.com"&gt;Unsplash&lt;/a&gt; - Find stock images for your project.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fontawesome.com/"&gt;Fontawesome&lt;/a&gt; - ICONS(free and paid)&lt;/li&gt;
&lt;li&gt;
&lt;a href="//heroicons.dev"&gt;Heroicons&lt;/a&gt; - ICONS(all free)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fonts.google.com/"&gt;Google fonts&lt;/a&gt; - Find fonts for your website.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://uigradients.com/"&gt;uiGradients&lt;/a&gt; - Amazing gradients for your UI!&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css3gen.com/box-shadow/"&gt;Box shadow generator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion -
&lt;/h2&gt;

&lt;p&gt;Once you're good at HTML and CSS, dive into Javascript and Javascript frameworks. &lt;br&gt;
A nice way to practice is to pick up a &lt;a href="https://www.frontendmentor.io/challenges"&gt;Frontend Mentor Challenge&lt;/a&gt; and trying to solve those.&lt;br&gt;
One other thing that works really well for me is watch youtube videos where a person is making a website, be it a tutorial or live stream, it really exposes the ideology that goes behind breaking the website into pieces and implementing it.&lt;/p&gt;

&lt;p&gt;If any of y'all want to contact me, hit me up on &lt;a href="//instagram.com/manan.code"&gt;Instagram at @manan.code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;All the best on your journey into frontend web development!&lt;/em&gt;&lt;br&gt;
&lt;a href="https://i.giphy.com/media/3ornk7TgUdhjhTYgta/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/3ornk7TgUdhjhTYgta/giphy.gif" alt="good luck gif"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A peak into the architecture at covidfyi.in</title>
      <dc:creator>Manan Gouhari</dc:creator>
      <pubDate>Sun, 17 May 2020 17:28:37 +0000</pubDate>
      <link>https://forem.com/manangouhari/a-peak-into-the-architecture-at-covidfyi-in-h52</link>
      <guid>https://forem.com/manangouhari/a-peak-into-the-architecture-at-covidfyi-in-h52</guid>
      <description>&lt;p&gt;We've been working on &lt;code&gt;covidfyi.in&lt;/code&gt; for almost 2 months now and have gone through significant-tech changes already. &lt;/p&gt;

&lt;h2&gt;
  
  
  What do we do?
&lt;/h2&gt;

&lt;p&gt;We're a platform where the data for all the government released resources like hospitals, helplines, doctors, etc are aggregated by our dedicated data team and that's presented on our frontend in an easy to find manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  v1 architecture -
&lt;/h2&gt;

&lt;p&gt;We started with our backend made in Django and PostgreSQL and hosted on Heroku.&lt;br&gt;
But quick enough, we started running into limitations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations of our initial architecture -
&lt;/h2&gt;

&lt;p&gt;First was, Heroku dyno sleeps after 30 minutes of inactivity, hence, the first request after the server has gone to sleep takes too long to respond, upwards of 10 seconds.&lt;/p&gt;

&lt;p&gt;The second limitation is more niche, our data team is using a google sheet to manage and collate the data - they felt a form-based admin dashboard would be too restrictive. So, whenever the data team updated the google sheet, we in the tech team downloaded the CSV and manually updated the database by running a pre-defined utility command. This was also limiting in another sense - whenever the data team wanted to add a new column, we would manually have to add that in the database schema inside our code - too tedious in my opinion.&lt;br&gt;
We searched, but in no way, we could figure out how to include new columns in our schema at runtime. But this research wasn't fruitful at least when it was limited to the scope of an RDBMS.&lt;/p&gt;

&lt;p&gt;Now, how did we overcome these limitations? Keep reading to find out :)&lt;/p&gt;

&lt;h2&gt;
  
  
  Moving towards our new architecture -
&lt;/h2&gt;

&lt;p&gt;The first step was to shift from Django to Flask, because flask is lightweight and Django is an elephant, we didn't want a huge framework standing in the way of what we wanted to accomplish.&lt;/p&gt;

&lt;p&gt;In the second step, we shifted from PostgreSQL to MongoDB, this is the change that brought the MOST return on investment. But why? it simplified our workflow by at least 100 times.&lt;/p&gt;

&lt;p&gt;It's simple what we did, and makes me think how we were stupid enough to not think of this in the first place.&lt;br&gt;
I wrote a script that extracts the JSON from our google sheet, sanitized the response, and inserted it into our MongoDB database as is and this script runs every 12 hours to update our DB.&lt;br&gt;
This does two things - simplifies the workflow, and also at the same time allows for a dynamic schema.&lt;/p&gt;

&lt;p&gt;Thirdly, we shifted from Heroku to a VM on GCP, this eliminated most of our performance issues.&lt;br&gt;
And did I mention, we've a caching layer setup using Redis which caches most of our API responses, hence makes it super quick.&lt;/p&gt;

&lt;h2&gt;
  
  
  TLDR -
&lt;/h2&gt;

&lt;p&gt;In short, our current architecture is - &lt;em&gt;Flask + MongoDB + Redis + GCP&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contribute -
&lt;/h2&gt;

&lt;p&gt;If you would like to contribute to our project, hit me up on Instagram at &lt;a href="https://www.instagram.com/manan.code/"&gt;@manan.code&lt;/a&gt;, we're looking for both React and Flask dev.&lt;br&gt;
Our git repos - &lt;a href="//github.com/covidfyi"&gt;covidfyi&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you've got any suggestions of how we could improve our architecture, drop in a comments please.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>api</category>
      <category>mongodb</category>
      <category>redis</category>
    </item>
    <item>
      <title>Flexbox: flex-direction and justify-content</title>
      <dc:creator>Manan Gouhari</dc:creator>
      <pubDate>Wed, 13 May 2020 12:32:33 +0000</pubDate>
      <link>https://forem.com/manangouhari/flexbox-flex-direction-and-justify-content-i4k</link>
      <guid>https://forem.com/manangouhari/flexbox-flex-direction-and-justify-content-i4k</guid>
      <description>&lt;p&gt;This post will dive into these two flexbox properties - &lt;code&gt;flex-direction&lt;/code&gt; and &lt;code&gt;justify-content&lt;/code&gt;.&lt;br&gt;
For a more practical demonstration of building layouts with flexbox, take a look at the previous post of mine - &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/manangouhari" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nmgQZows--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--XvK_NvZV--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/230009/26a2416a-5ba0-49e2-94b1-32bd1c347432.jpg" alt="manangouhari image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/manangouhari/building-layouts-with-flexbox-40e" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How do you build houses with Flexbox?&lt;/h2&gt;
      &lt;h3&gt;Manan Gouhari ・ Mar 22 ・ 4 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#css&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#html&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;We're going to see all three properties in action with the help of three boxes.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;code&gt;flex-direction&lt;/code&gt; -
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/manan21/embed/oNjMoGg?height=600&amp;amp;default-tab=css,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;br&gt;
By default, &lt;code&gt;flex-direction&lt;/code&gt; is set to &lt;code&gt;row&lt;/code&gt; if nothing is specified. &lt;br&gt;
Here's what happens when you set &lt;code&gt;flex-direction&lt;/code&gt; to &lt;code&gt;column&lt;/code&gt;.&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/manan21/embed/PoPBOEp?height=600&amp;amp;default-tab=css,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;code&gt;flex-direction&lt;/code&gt; can be set to following values - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;row&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;column&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;row-reverse&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;column-reverse&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But mostly you'll find yourself using either &lt;code&gt;row&lt;/code&gt; or &lt;code&gt;column&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. &lt;code&gt;justify-content&lt;/code&gt; -
&lt;/h3&gt;

&lt;p&gt;It is used to define how is content spaced out along the &lt;strong&gt;main-axis&lt;/strong&gt;(main-axis is set by &lt;code&gt;flex-direction&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;It can be set to following values - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;flex-start&lt;/code&gt; - items are placed from the start of axis&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;flex-end&lt;/code&gt; - items are placed at the end of the axis&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;center&lt;/code&gt; - items are placed at the center of the axis&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;space-between&lt;/code&gt; - items are spread out with the space between them being equal, first item is at start of the axis and the last element is at end of the axis.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;space-around&lt;/code&gt; - items are spread out with equal space on either side&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;space-evenly&lt;/code&gt; - items are spread out with each empty space being equal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/manan21/embed/BaoPmeY?height=600&amp;amp;default-tab=css,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;br&gt;
Let's also take a look at how these properties behave when &lt;code&gt;flex-direction&lt;/code&gt; is set to &lt;code&gt;column&lt;/code&gt;.&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/manan21/embed/PoPBEYE?height=600&amp;amp;default-tab=css,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Well, that is everything that I know about these two properties.&lt;br&gt;
Which more flexbox properties would you like me to explore in future posts?&lt;/p&gt;

&lt;p&gt;Also, a reminder: for more practical demonstration of how to build layouts with flexbox and what's the thought process behind it, check out my other blog post - &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/manangouhari" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nmgQZows--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--XvK_NvZV--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/230009/26a2416a-5ba0-49e2-94b1-32bd1c347432.jpg" alt="manangouhari image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/manangouhari/building-layouts-with-flexbox-40e" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How do you build houses with Flexbox?&lt;/h2&gt;
      &lt;h3&gt;Manan Gouhari ・ Mar 22 ・ 4 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#css&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#html&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>css</category>
      <category>tutorial</category>
      <category>frontend</category>
      <category>html</category>
    </item>
    <item>
      <title>How do you build houses with Flexbox?</title>
      <dc:creator>Manan Gouhari</dc:creator>
      <pubDate>Sun, 22 Mar 2020 20:00:50 +0000</pubDate>
      <link>https://forem.com/manangouhari/building-layouts-with-flexbox-40e</link>
      <guid>https://forem.com/manangouhari/building-layouts-with-flexbox-40e</guid>
      <description>&lt;p&gt;I recently learned Flexbox, now it's time to give a practical demonstration for you people, the lovely &lt;strong&gt;DEV Community&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A layout is a website's house😂&lt;/p&gt;

&lt;p&gt;Let's build this blog layout.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i7y625LT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/88juggm8an1cuk6z8351.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i7y625LT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/88juggm8an1cuk6z8351.png" alt="sample layout"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let's think of this step by step.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l4gNBSS7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/l3xso3zpwuy20qumo1zl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l4gNBSS7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/l3xso3zpwuy20qumo1zl.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Nav covers approximately 1/10th area of the whole screen vertically and the rest of it goes to the main area.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;NAV&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;MAIN&lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Styles -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100vh&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100vw&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;nav&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;First, on the body we add &lt;code&gt;display: flex&lt;/code&gt;, this is necessary as flexbox has to be activated on the &lt;strong&gt;parent container&lt;/strong&gt;, to layout the elements inside it using flexbox. &lt;br&gt;
Now there are two main ways flexbox can be aligned, &lt;strong&gt;row&lt;/strong&gt; or &lt;strong&gt;column&lt;/strong&gt;. &lt;strong&gt;Row is horizontal&lt;/strong&gt;, &lt;strong&gt;column is vertical&lt;/strong&gt;.&lt;br&gt;
In this case, we want them horizontally aligned so we add &lt;code&gt;flex-direction: row&lt;/code&gt;&lt;br&gt;
Now talking about &lt;code&gt;flex-grow&lt;/code&gt;, it defines how much the item will grow relative to the other elements in the flex container.&lt;br&gt;
We want the &lt;code&gt;main&lt;/code&gt; area to take up 10x space compared to the &lt;code&gt;nav&lt;/code&gt; so we add &lt;code&gt;flex-grow: 10&lt;/code&gt; to main and &lt;code&gt;flex-grow: 1&lt;/code&gt; to &lt;code&gt;nav&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Another point to keep in mind, the flex properties of the parent container concerns only its direct children, not the elements inside the children elements.&lt;br&gt;
Now moving on to the &lt;code&gt;main&lt;/code&gt; area, this is what we want to do - &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7jT-XSN9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qid9jmt2acp0duxdzeie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7jT-XSN9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qid9jmt2acp0duxdzeie.png" alt="MAIN ALIGN"&gt;&lt;/a&gt;&lt;br&gt;
Now, what would we do to achieve it?&lt;/p&gt;

&lt;p&gt;Both &lt;code&gt;header&lt;/code&gt; and &lt;code&gt;content&lt;/code&gt; are children of the &lt;code&gt;main&lt;/code&gt;, we need to turn flexbox on, on &lt;code&gt;main&lt;/code&gt; element. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;header&lt;/code&gt; and &lt;code&gt;content&lt;/code&gt; are aligned vertically, i.e. in a column with &lt;code&gt;header&lt;/code&gt; taking up about 1/8th space and rest of it to the &lt;code&gt;content&lt;/code&gt; container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;NAV&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;HEADER&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;CONTENT&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* styles */&lt;/span&gt;
&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;header&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.content&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you see the first layout image, you'll notice the &lt;code&gt;posts&lt;/code&gt; area and &lt;code&gt;aside&lt;/code&gt; are under the &lt;code&gt;.content&lt;/code&gt; area, so now we gotta turn up the flex on &lt;code&gt;.contents&lt;/code&gt;&lt;br&gt;
container. This is how we want it to be - &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nwlnXYXu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3fkfvmbkr8gr98xgekc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nwlnXYXu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3fkfvmbkr8gr98xgekc4.png" alt="Final Mock"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;        &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class = &lt;/span&gt;&lt;span class="s"&gt;"posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            POSTS
            &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;aside&amp;gt;&lt;/span&gt;ASIDE&lt;span class="nt"&gt;&amp;lt;/aside&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.content&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.posts&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;aside&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;40vh&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Again, following the same drill that we've in the previous parts of this layout added &lt;code&gt;display: flex&lt;/code&gt; to .contents and then decided what proportions should its children be in by using &lt;code&gt;flex-grow&lt;/code&gt;.&lt;br&gt;
Now moving onto the last part of this layout, &lt;br&gt;
the &lt;code&gt;individual posts&lt;/code&gt; under the &lt;code&gt;.posts&lt;/code&gt; container. I think this is the simplest one out of all others in this tutorial till now.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--v720s-7w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7otqzhfaqzntqk2ka0xo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v720s-7w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7otqzhfaqzntqk2ka0xo.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Now &lt;code&gt;.posts&lt;/code&gt; will be our parent flex container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;            &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class = &lt;/span&gt;&lt;span class="s"&gt;"posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;POST&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;POST&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;POST&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.posts&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.post&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All we gotta do is turn up the flex on &lt;code&gt;.posts&lt;/code&gt; and specify &lt;code&gt;flex-direction&lt;/code&gt; to &lt;code&gt;column&lt;/code&gt;. We specif &lt;code&gt;flex-grow: 1&lt;/code&gt; on &lt;code&gt;.post&lt;/code&gt; to indicate that each post should take up equal space, there are other ways to do this too, by using &lt;code&gt;justify-content&lt;/code&gt; and &lt;code&gt;align-items&lt;/code&gt; but I find &lt;code&gt;flex-grow&lt;/code&gt; to be the most intuitive.&lt;/p&gt;

&lt;p&gt;Now that we're done with our layout, here's the final code -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;NAV&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;HEADER&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class = &lt;/span&gt;&lt;span class="s"&gt;"posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;POST&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;POST&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;POST&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;aside&amp;gt;&lt;/span&gt;ASIDE&lt;span class="nt"&gt;&amp;lt;/aside&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100vh&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100vw&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;nav&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;header&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.content&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;aside&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;40vh&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.posts&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.post&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-grow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Once you understand flexbox, building layouts in it comes to you almost intuitively. The best tip to get better at it is &lt;strong&gt;to practice&lt;/strong&gt;.&lt;br&gt;
Top-down approach works very well with Flexbox, first think of your major containers, how are they related and then the content inside them, step by step.&lt;br&gt;
There's much more to flexbox that hasn't been explored in this post like &lt;code&gt;justify-content, align-items, flex-basis, flex-shrink&lt;/code&gt; etc. Go on explore!&lt;/p&gt;

&lt;p&gt;Side note - &lt;em&gt;Of course for a normal layout, there would be padding, margin, and colors involved which were forgone in this post for the sake of focusing solely on flexbox.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How do you scrape Instagram?</title>
      <dc:creator>Manan Gouhari</dc:creator>
      <pubDate>Sat, 21 Mar 2020 12:29:26 +0000</pubDate>
      <link>https://forem.com/manangouhari/how-do-you-scrape-instagram-1577</link>
      <guid>https://forem.com/manangouhari/how-do-you-scrape-instagram-1577</guid>
      <description>&lt;p&gt;Recently, there have been talks of &lt;strong&gt;Instagram&lt;/strong&gt; closing down its API and leaving access to only corporate partners. &lt;br&gt;
Data scraping becomes even more important in this scenario because of Instagram's large user base. Instagram is a platform full of data in its every nook and cranny. &lt;br&gt;
I decided to start by scraping whatever data we can find on a person's account page, which you can access at &lt;a href="https://instagram.com/"&gt;https://instagram.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's take a look at my page for example at &lt;a href="https://instagram.com/manan.code"&gt;https://instagram.com/manan.code&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--chkycTYi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jr2n2kirez6oc6qgmhgv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--chkycTYi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jr2n2kirez6oc6qgmhgv.png" alt="Profile"&gt;&lt;/a&gt;&lt;br&gt;
This is the main area I am interested in, what all could we scrape from here and how? Right-click on the page and click view page source to see the source file behind it.&lt;br&gt;
You'll see something like this - &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HOX7RUaE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5l98meync1h69cw5v870.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HOX7RUaE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5l98meync1h69cw5v870.png" alt="Source"&gt;&lt;/a&gt;&lt;br&gt;
Now at first look, this seems incomprehensible and it seems almost impossible to find any data from this, it's just sea of link and script tags.&lt;br&gt;
But the data is there somewhere for sure. &lt;br&gt;
I did some digging and found out the script tag that consists basically everything we need.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2kEHIRBU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/713yabdp73bh95d4nvuw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2kEHIRBU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/713yabdp73bh95d4nvuw.png" alt="script"&gt;&lt;/a&gt;&lt;br&gt;
Now that we know where the data is, let's move on to the code.&lt;br&gt;
We'll use the requests module and BeautifulSoup.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;
So till this point in the code, we've requested Instagram and got the source, after that we've converted it to a BeautifulSoup object to make it easy to find the script tag we need. After converting it to BeautifulSoup object, we've used the find_all function in the BeautifulSoup library and found all the script tags, by a little trial and error, I discovered, the script tag we need is the 5th one, so we index it appropriately and find the script tag we need.&lt;br&gt;
But, we need to do one more thing, right now what we have is not a string, we can't slice it to find what we need. Hence, we access the contents of the script tag. &lt;br&gt;
The next step is to find out where's the part we need. &lt;br&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;
Now what we've done is, if you remember, the javascript object having all the data started from &lt;code&gt;{"config":&lt;/code&gt;, I've simply used a little string processing to slice out the whole javascript object and having it isolated, convert it to a JSON object using loads from the json package in the standard library.&lt;br&gt;
If you print &lt;code&gt;data_json&lt;/code&gt;, this is what you get - &lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--07Kau61i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cjp94ki9ydgdw3e6w200.png" alt="Alt Text"&gt;&lt;br&gt;
On looking closely, I figured out all the right keys to the data we need, here is the result.&lt;br&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vIjoJ9SN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j5yjvr0bq69lrtkoypop.png" alt="Final"&gt;&lt;br&gt;
and this marks the end of our journey to scraping Instagram!&lt;br&gt;
Check out my video where I go over the same thing - &lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/yAT7nkPVG9Y"&gt;
&lt;/iframe&gt;


</description>
      <category>python</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Flexbox changed my life, bye bye boostrap</title>
      <dc:creator>Manan Gouhari</dc:creator>
      <pubDate>Sun, 15 Mar 2020 20:48:20 +0000</pubDate>
      <link>https://forem.com/manangouhari/flexbox-changed-my-life-bye-bye-boostrap-497e</link>
      <guid>https://forem.com/manangouhari/flexbox-changed-my-life-bye-bye-boostrap-497e</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/manangouhari" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nmgQZows--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--XvK_NvZV--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/230009/26a2416a-5ba0-49e2-94b1-32bd1c347432.jpg" alt="manangouhari image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/manangouhari/building-layouts-with-flexbox-40e" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How do you build houses with Flexbox?&lt;/h2&gt;
      &lt;h3&gt;Manan Gouhari ・ Mar 22 '20 ・ 4 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#css&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#html&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Learning flexbox changed my life.
&lt;/h2&gt;

&lt;p&gt;Well, you could say it's an overstatement, but worth it.&lt;br&gt;
To add a little context, I am a developer focused on backend web development, so I simply used to use a framework like Bootstrap for two major reasons - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Responsiveness&lt;/li&gt;
&lt;li&gt;Creating layouts using the grid system&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But recently I had been getting frustrated with how ugly and generic my sites would end up looking because of Bootstrap. I knew it in me if I could conquer a beast like backend development, how tough could CSS be? This initiated my foray into the pure custom wrote CSS.&lt;/p&gt;

&lt;p&gt;I honestly never felt that I would have fun writing CSS and designing UIs, but man it is addictive. &lt;br&gt;
When you combine basic CSS skills with a sprinkle of aesthetic sense, it's a combination worth moving people. Non-tech people can't usually appreciate what goes on at the backend of a software, UI, the frontend is all they see, the cover of the book does have quite a lasting impact.&lt;/p&gt;

&lt;p&gt;Flexbox provided me the power to tackle both, mobile-responsiveness and making layouts through pure CSS, now I won't ever use Bootstrap unless it's forced upon me. &lt;br&gt;
Flexbox has a few core concepts, when applied top-down, help you in creating great layouts with ease.&lt;br&gt;
What do I mean by applying the flexbox concepts top-down? &lt;br&gt;
Think of your whole layout as a flexbox container, then drill down on the individual components. Your navigation bar, lay it out using flexbox. Your main area, lay it out using flexbox. Information cards, yes, flexbox will help you lay them out too. &lt;/p&gt;
&lt;h2&gt;
  
  
  Resources I found most effective -
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=FTlczfR82mQ"&gt;DevEd - Youtube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=-Wlt8NRtOpo"&gt;Traversy Media - Youtube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-tricks.com/snippets/css/a-guide-to-flexbox/"&gt;Complete guide to Flexbox - &lt;code&gt;css-tricks.com&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-tricks.com/the-thought-process-behind-a-flexbox-layout/"&gt;The Thought Process Behind a Flexbox Layout - &lt;code&gt;css-tricks.com&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stay tuned, I am planning to write a blog post explaining the intricacies of Flexbox.&lt;br&gt;
Edit - Here's the promised blog post - &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/manangouhari" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nmgQZows--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--XvK_NvZV--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/230009/26a2416a-5ba0-49e2-94b1-32bd1c347432.jpg" alt="manangouhari image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/manangouhari/building-layouts-with-flexbox-40e" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How do you build houses with Flexbox?&lt;/h2&gt;
      &lt;h3&gt;Manan Gouhari ・ Mar 22 '20 ・ 4 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#css&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#html&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;If you find anything in this post that requires correction, please let me know. (this was a very quick and spontaneous write.)&lt;/p&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>ui</category>
    </item>
  </channel>
</rss>
