<?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: CodeChem</title>
    <description>The latest articles on Forem by CodeChem (@codechem).</description>
    <link>https://forem.com/codechem</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%2Forganization%2Fprofile_image%2F3114%2Fba075d9c-3aa9-40da-8138-08cefa13c19e.png</url>
      <title>Forem: CodeChem</title>
      <link>https://forem.com/codechem</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/codechem"/>
    <language>en</language>
    <item>
      <title>How we spent Hacktoberfest 2022</title>
      <dc:creator>Ilija Boshkov</dc:creator>
      <pubDate>Mon, 07 Nov 2022 22:22:50 +0000</pubDate>
      <link>https://forem.com/codechem/how-we-spent-hacktoberfest-2022-mcd</link>
      <guid>https://forem.com/codechem/how-we-spent-hacktoberfest-2022-mcd</guid>
      <description>&lt;p&gt;October, it’s a month that reminds most people of Halloween and dressing up; however, for developers, it can have a very different meaning. Octobers to a lot of us developers, mean Hacktoberfest and contributing to open source. Most of us have some piece of software we just can’t live without. For us at CodeChem, open source is a very big part of our everyday lives and we try to contribute as often as we can in any way that we can.&lt;/p&gt;

&lt;p&gt;For this Hacktoberfest we decided to help out by sponsoring some project that we love and use. Lately, we have been exploring &lt;a href="https://www.remotion.dev/"&gt;Remotion&lt;/a&gt;, an open-source framework for creating videos via React components. Remotion had just announced a $2,000 budget that they had dedicated to bounties for some of the issues on their GitHub. This sparked an idea for us - in the spirit of giving and Hacktoberfest , we wanted to show our appreciation for such an awesome piece of open-source software, so we chipped in and doubled their issue bounty pool to $4,000 in the hopes of amplifying the Hacktober magic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uDyYO5Ha--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vg74q5nnvgixd052djwh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uDyYO5Ha--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vg74q5nnvgixd052djwh.png" alt="Hacktober performance screenshot" width="880" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In total, &lt;strong&gt;27&lt;/strong&gt; issues were fixed - that means bugs were fixed, features were implemented and documentation was improved thanks to the support of everyone in the open-source community.&lt;/p&gt;

&lt;p&gt;Our contribution did not stop at just doubling the Hacktoberfest bounty pot, we’re developers first and foremost, so we did what we do best, we sat down, wrote some code, opened a few PRs (No bounty for us, we do it for love ❤️). But we also did something interesting and held a talk on Remotion at our local BeerJS in Skopje. &lt;/p&gt;

&lt;p&gt;Andrej, our local Remotion enthusiast held a presentation on what Remotion is and how we can use it to create a video of the audience's favorite beers. It was a fun, interactive talk and brought something new to the JS scene in Skopje.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MQC8WW6R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wv4l9u7dzxuv25yjcvhk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MQC8WW6R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wv4l9u7dzxuv25yjcvhk.png" alt="Andrej Acevski during tal" width="880" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As for the PRs, one of our developers, Stefan Uzunov &lt;a href="https://github.com/remotion-dev/remotion/pull/1438"&gt;improved the Remotion CLI&lt;/a&gt; by adding some enhanced interactivity and sane defaults when picking which composition gets rendered, while Ilija Boshkov contributed by packaging an existing component into a mainline Remotion package for &lt;a href="https://github.com/remotion-dev/remotion/issues/1390"&gt;adding motion blur to Remotion videos&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Hacktoberfest did not end at just Remotion, this month our awesome Andrej released a new open-source NPM package for easily adding &lt;a href="https://www.npmjs.com/package/@codechem/chakra-ui-animations"&gt;animations to Chakra UI components&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;All in all, it was a very productive month for us. We would like to say that it was our pleasure to support Remotion and we’re so happy that so much work has been done. This part is to you - the reader, we would like to encourage &lt;strong&gt;you&lt;/strong&gt; to go out and contribute to your favorite open-source software. It could be as easy as going to the project’s GitHub repository and looking at some of the issues, we’re sure the maintainers as well as the users will appreciate your help. Any contribution counts, and none is too small, a lot of our world today runs on software built by many people just like you and any one of us.&lt;/p&gt;

&lt;p&gt;❤️, Code Chem&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Knowledge sharing is at the heart of CodeChem</title>
      <dc:creator>Ivana Rangelova</dc:creator>
      <pubDate>Mon, 13 Sep 2021 12:38:55 +0000</pubDate>
      <link>https://forem.com/codechem/knowledge-sharing-is-at-the-heart-of-codechem-mkf</link>
      <guid>https://forem.com/codechem/knowledge-sharing-is-at-the-heart-of-codechem-mkf</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Knowledge is power, but it’s far more powerful when it’s shared. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Knowledge sharing powers our company. And the success of knowledge sharing plays a key role in our company culture that we have been shaping since day one. &lt;/p&gt;

&lt;p&gt;In fact, it’s the heart of what we do and how we maintain quality. As such, we leverage it at every opportunity. &lt;/p&gt;

&lt;p&gt;Now, we can proudly say that we achieved that on another level. &lt;/p&gt;

&lt;p&gt;Our colleague Lazar became an instructor and made his first &lt;a href="https://egghead.io/courses/build-a-modern-user-interface-with-chakra-ui-fac68106"&gt;course&lt;/a&gt; on  &lt;a href="https://egghead.io/"&gt;egghead&lt;/a&gt; . &lt;/p&gt;

&lt;p&gt;In this article, he shares his experience about creating this course.&lt;/p&gt;




&lt;h3&gt;
  
  
  What was your motive to create this course?
&lt;/h3&gt;

&lt;p&gt;I’ve always wanted to pass my knowledge and experience and help developers be better at their everyday life. Also, I’ve always wanted to produce tech content. If you add the opportunity to the mix, you’ll see the full picture of my motive. This was a fun and interesting experience for me, and it helps me break the ice of course creation.&lt;/p&gt;

&lt;h3&gt;
  
  
  What was the process of creating this course?
&lt;/h3&gt;

&lt;p&gt;Believe it or not, 80% of the time (or even more) went into planning the course, rather than producing the videos. I’ve had the opportunity to work with Lauro Silva, who's a super cool human being. He selflessly supported me during the planning and creation of this course from start to finish and I’ve learned a lot from him.&lt;/p&gt;

&lt;p&gt;In terms of the process, I started by creating the course outline. I thought about all of the single takeaways that could be part of the course and divided them into separate lessons. That list got refined multiple times while I was creating the course. Then I wrote the outlines for each lesson. I’ve had several meetings with Lauro where we went through the course curriculum and discussed what could we change to make it better. After I nailed the curriculum, I started recording the lessons one by one and sent them to Lauro to review them. When I felt like I got the hang of it, I recorded all of the remaining lessons and submitted them in the egghead instructor’s portal. Lauro did a final review of the complete material and that was it! The course was complete!&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s next?
&lt;/h3&gt;

&lt;p&gt;I really enjoyed creating this course. It was fun, but challenging as well. It took multiple skills to produce it, like planning, writing code, designing the UI, recording, editing, and even marketing it at the end. So I’m motivated to keep creating courses. The courses don’t just help the viewers who are learning from them. They also help me have a solid understanding of the technology that I’m creating the course for. So in a way, I’m also getting better, along with the viewers. It’s a win-win situation where everyone has something to gain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tips:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Make sure you plan and code your lesson before recording it.&lt;/li&gt;
&lt;li&gt;Keep your end-result code on a separate screen to remind yourself while recording.&lt;/li&gt;
&lt;li&gt;Each lesson should have a single take-away. Don't explain multiple concepts and functionalities that are not connected.&lt;/li&gt;
&lt;li&gt;Hit record and don't stop on your mistakes. If you make a mistake, make a pause, and continue.&lt;/li&gt;
&lt;li&gt;Try not to move with your cursor a lot. It'll be very obvious when you cut out a segment where you make a mistake.&lt;/li&gt;
&lt;li&gt;Write outlines for each of your lessons. The level of detail is up to you. You can do bullet points, or the whole narration word by word. Whatever works best for you.&lt;/li&gt;
&lt;li&gt;Never forget to do a recap at the end. Recaps solidify the viewer's knowledge. Include the Recap in your outline so you won't forget it.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>How to protect your eyes as a developer 👀</title>
      <dc:creator>Ivana Rangelova</dc:creator>
      <pubDate>Fri, 27 Aug 2021 10:33:35 +0000</pubDate>
      <link>https://forem.com/codechem/how-to-protect-your-eyes-as-a-developer-1ejh</link>
      <guid>https://forem.com/codechem/how-to-protect-your-eyes-as-a-developer-1ejh</guid>
      <description>&lt;p&gt;Eye health isn’t always the top priority when it comes to self-care, right?&lt;/p&gt;

&lt;p&gt;The first thing when you wake up is checking emails on a phone or scrolling Product Hunt. Throughout the day you read and write code on the screen with a dark background and a bright multi-colored font, or a light background with darker font. At night after hard work, you watching TV.&lt;/p&gt;

&lt;p&gt;That means your eyes are constantly are under a lot of strain and even lead to a host of eye-related symptoms, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tired eyes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blurry vision&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dry eyes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Headaches&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Red eyes&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Luckily, there are a few simple things you can do to look after your most widely used sensory organ and keep it in top shape for your coding.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try 20-20-20 rule
&lt;/h2&gt;

&lt;p&gt;When you are looking at objects at a close distance, your screen in this case, tiny muscles inside your eyes called the ciliary muscles - contract. And by focusing, the contraction changes the shape of the lenses inside the eyes. While focusing, the eyes start to struggle. They especially struggle when you read your code on the screen.&lt;/p&gt;

&lt;p&gt;Try the 20-20-20 rule. All you need to do is after 20 minutes of coding, distance yourself from the screen and start looking at least 20 seconds in cool-toned objects at least 20 feet away.&lt;/p&gt;

&lt;p&gt;By moving your focus to a distanced object, you're letting your eyes relax.&lt;/p&gt;

&lt;h2&gt;
  
  
  Think blinking
&lt;/h2&gt;

&lt;p&gt;Blinking is important! The eyelids work like windshield wipers.&lt;/p&gt;

&lt;p&gt;The solution is simple. Take time to look away from your screen and start with slow blinks, as if you're falling asleep. This may seem like a no-big-deal, but did you know that your natural blinking rate of 18 to 20 times a minute decreases significantly when you’re sitting in front of a screen? The upper eyelid of the eye doesn't contact the lower eyelid, which means that only part of our cornea gets moistened. This is a hard one to prevent, but taking time to blink helps wet your eyes to prevent them from drying and getting tired, which also stops the blurred vision.&lt;/p&gt;

&lt;p&gt;This is another way and a great habit to protect your eyes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check your lighting
&lt;/h2&gt;

&lt;p&gt;The workplace needs to be lighter than your computer screen.&lt;/p&gt;

&lt;p&gt;A well lead workspace is important for your mood as well. Try to work in natural light as much as possible. Ideally, the window should be on your side instead of directly in front or behind you. By using blinds you will reduce glare. But, in case you’re using artificial light, position the screen to reduce reflections. Also, you can try out different types and colors of bulbs to see what suits your eyes best.&lt;/p&gt;

&lt;h2&gt;
  
  
  Invest in a good monitor
&lt;/h2&gt;

&lt;p&gt;It's a fact that our eyes are not big fans of flickering, glare, and low resolution. A great option for your eyes is an OLED panel. Because it has vibrant colors, angles with wide viewing, and emits significantly less blue light than an LCD panel.&lt;/p&gt;

&lt;p&gt;Another great option is a screen with a refresh rate of at least 75 Hz. It has a much smoother viewing experience and is easier for the eyes. Even better if the screen is anti-reflective and anti-glare.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reduce blue light at night
&lt;/h2&gt;

&lt;p&gt;Blue light isn't always bad for you and your eyes. It boosts your attention and mood while you are programming during the day. But during the night, blue light can suppress the secretion of the hormone melatonin, who helps control your sleep cycle. Any type of light can do this, but blue light is most powerful.&lt;/p&gt;

&lt;p&gt;In that case, it's a good idea to install software that controls the color temperature or filtrates the blue light. Macs already have a pre-install feature called "night shift". You can configure it to turn on automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drink more water
&lt;/h2&gt;

&lt;p&gt;You need to stay hydrated throughout the day by drinking water.&lt;/p&gt;

&lt;p&gt;Do you remember that scratching sensation when you blink like there is something in your eye? That is when the body is dehydrated. There is not enough water to remain hydrated. That results in drying your eyes and they become itchy and scratchy.&lt;/p&gt;

&lt;p&gt;Let's recap. if you want to protect your eyes as a developer, try to acquire these 3 habits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Look at something far away periodically;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blink slow every once in a while;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Drink more water.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Invest in a good monitor;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduce blue light at night.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>codenewbie</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Prototype vs Minimum viable product</title>
      <dc:creator>Ivana Rangelova</dc:creator>
      <pubDate>Thu, 12 Aug 2021 13:23:34 +0000</pubDate>
      <link>https://forem.com/codechem/prototype-vs-minimum-viable-product-4gpd</link>
      <guid>https://forem.com/codechem/prototype-vs-minimum-viable-product-4gpd</guid>
      <description>&lt;h3&gt;
  
  
  A prototype or an MVP: What should the first version of your product be? What’s the difference between the two? What are they used for?
&lt;/h3&gt;

&lt;p&gt;Keep reading for the answers. Today we're going to talk about these 3 topics. Let's start. &lt;/p&gt;




&lt;h2&gt;
  
  
  Prototype vs MVP: Short Definition
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1628614090223%2FKBENu6gAh.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1628614090223%2FKBENu6gAh.gif" alt="Screen Recording 2021-08-10 at 18.46.23.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's say that prototypes are often confused with MVPs because of their same purpose.  Both are designed to help validate your idea. But how they are approached is fundamentally different. With the following 3 basic definitions, we will make it easier for you to understand the difference between a prototype and a minimum viable product (MVP):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Prototypes are created before an MVP.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A prototype is an interactive, working visualization, in another word, simulation of the product, meant to identify usability flaws that can affect user experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A minimum viable product is an early version of your product but with core and functional features, meant to collect people's feedback.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We already wrote an article on &lt;a href="https://blog.codechem.com/tips-for-building-successful-mvp-in-3-months" rel="noopener noreferrer"&gt;how to build an MVP&lt;/a&gt;. &lt;/p&gt;




&lt;h1&gt;
  
  
  Prototype
&lt;/h1&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1628675320951%2Fh0xztfRszKY.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1628675320951%2Fh0xztfRszKY.png" alt="Frame 1516.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The prototype actually is a sample of what will become your final product. &lt;/p&gt;

&lt;p&gt;A beauty in prototypes is that they are non-committal and can be used in every stage of the process. Also, they can be animated and easily sharable with friends, teams, and potential investors. Whether it’s about embodying an idea or testing a specific feature, prototyping is a powerful way to explore concepts, understand usability and improve functionality. &lt;/p&gt;

&lt;p&gt;In this experimental process, the dev team implements ideas from paper to digital. &lt;br&gt;
The prototype can come in a thousand shapes and sizes from paper prototypes and sketches to functional interactive prototypes. There is an abundance of tools, but in our process, we use &lt;a href="https://www.figma.com/" rel="noopener noreferrer"&gt;Figma&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.figma.com/prototyping/" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1628598514256%2Fs6HgdKb7_.png" alt="1d9a11a5033484631ad3eb62996414f41cd96ae4-1200x630.png"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;✋ &lt;strong&gt;5 Advantages of Prototyping&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can attract investors.&lt;/strong&gt; With prototyping your initial product you can get investors to consider and invest in your startup.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can optimize resources.&lt;/strong&gt; With creating a prototype, you can identify flaws of the design (like UI elements) and be fixed before the development begins.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Iterate designs.&lt;/strong&gt; Tools like Figma help the team create many design iterations in a short time. This can last until you can choose the design with the best performance and make some internal experiments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can collect feedback.&lt;/strong&gt; Prototyping is the best way to test users for initial feedback. User testing is an important component in this phase. It can help improve and shape the design and still have enough time to fix the flaws. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can polish your idea.&lt;/strong&gt; By creating a prototype, you can simplify and transform your idea into a visually appealing and refined format.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Minimum viable product (MVP)
&lt;/h1&gt;

&lt;p&gt;In the minimum viable product approach, the word &lt;strong&gt;minimum&lt;/strong&gt; is important here. There is nothing irrelevant in an MVP. Focused on one or few core features, a minimum viable product can be used, tested, and played with. No need to ask your test users theoretical questions, you’re only observing their behavior and collecting specific feedback of a practical nature. Okay, let’s be more clear here… an MVP is not just the functioning early release version of your final product with core features. A minimum viable product on the other hand is an experiment, testing part of your solution with the users who are experiencing the problem. And, the resulting data helps you produce a better, more marketable version of your final product.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.codechem.com/tips-for-building-successful-mvp-in-3-months" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1628608114685%2FE4VSFWBsQ.png" alt="Frame 1515.png"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;✋ &lt;strong&gt;5 Advantages of MVP&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can attract investors.&lt;/strong&gt; By creating a prototype you can provide seed funding for your startup... But if your MVP intrigues people with a positive reaction, it can help you gain a much bigger investment!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Save you time and resources&lt;/strong&gt; – We already said that there's no need to implement all of the features in your MVP. That means the development work is reduced and the risk of over-building features is minimized.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Helps you a better understanding of the ‘problem’.&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Confirm and engage with your users&lt;/strong&gt; – You’re not just testing the product, you’re also testing and identified the people who really need your product. You’re also putting the word out on the upcoming product, creating interest, raising awareness, a buzz...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You let the money in.&lt;/strong&gt;  With an MVP out in the market and good marketing, you can start acquiring paying users that will support your growth.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s not forget the dev team. Launching an MVP is motivational: there’s a tangible representation of the future product; an MVP means progress.&lt;/p&gt;




&lt;h1&gt;
  
  
  In a nutshell
&lt;/h1&gt;

&lt;h3&gt;
  
  
  The differences between an MVP and a prototype.
&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1628699756464%2FvlPnnXhw-.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1628699756464%2FvlPnnXhw-.png" alt="mvporprototip@3x.png"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  So, which one is better for the first version of your product: MVP or prototype?
&lt;/h2&gt;

&lt;p&gt;There is no winner! Which approach is better depends on the stage of the product you’re building, its scope, and intended users, but one thing is sure that for validating your initial idea, either a prototype or an MVP will be sufficient. Both prototypes and MVPs can be used to reduce risk, reduce costs, so there’s no need to invest in a huge, complex platform without going first through one of those (or both) stages.&lt;br&gt;
When our team is working on a proposal, they always choose the solution that best fits the client's needs, budget, and business goals.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you want to test the basic product concept and you have a limited budget, create a prototype.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you want to test if the users really want a specific feature, build an MVP.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re not sure which approach would fit best for your product, our dev team is always happy to talk and help you with your challenge, so feel free to contact us as well!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codechem.com/mvp" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1628608314357%2FAsr3IfpIO.png" alt="Frame 1512.png"&gt;&lt;/a&gt; &lt;/p&gt;




&lt;h1&gt;
  
  
  COMING UP NEXT:
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;How to hire a dedicated development team for your Startup.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>webdev</category>
    </item>
    <item>
      <title>3 methods that will help prioritize your MVP's features</title>
      <dc:creator>Ivana Rangelova</dc:creator>
      <pubDate>Thu, 05 Aug 2021 15:04:53 +0000</pubDate>
      <link>https://forem.com/codechem/3-methods-that-will-help-prioritize-your-mvp-s-features-1b1m</link>
      <guid>https://forem.com/codechem/3-methods-that-will-help-prioritize-your-mvp-s-features-1b1m</guid>
      <description>&lt;p&gt;When you’re in that stage of building your product, you may find yourself falling into one of the traps, such as: One-more-Feature. &lt;/p&gt;

&lt;p&gt;You want nothing but to be perfect, and you’re thinking of all the cool features that would help to achieve this perfection, and so the list keeps growing and growing... &lt;br&gt;
You know what they say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When everything is important, nothing is important. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you elicit a long list with dozens of wants features: from small to large, from simple to complex, from usual to unique, how can you know where to start? How do you filter all of the features and assemble the minimum, enough to verify your idea? &lt;/p&gt;

&lt;p&gt;There are features that are certain must-haves but there are some that will be totally pointless. And prioritizing the features for your minimum viable product is the key to escape from the chaos in your head. 🗝️&lt;/p&gt;

&lt;p&gt;Feature prioritization for your  &lt;a href="https://blog.codechem.com/tips-for-building-successful-mvp-in-3-months"&gt;minimum viable product&lt;/a&gt;  is the most important decision you will make in the development process. So, in this article, we will explain how to achieve this.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to pick your MVP features
&lt;/h2&gt;

&lt;p&gt;Choosing the right features for your MVP can't be impulsive and intuitive, but precisely defined. We know that this process can be tricky but fun and it's totally worth it. While you may think that you have sorted all things, detailing it actually takes a lot of work and effort, such as discussions with developers and experts. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_tCJyJ9J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1628169427636/ATtM0p4ce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_tCJyJ9J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1628169427636/ATtM0p4ce.png" alt="2.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After you figure out the problem your product is solving and who your target will be, it’s time to analyze your competitors and what your potential users like in their products. See what functionality the competition is offering and what users might feel is missing in their product. Don’t skip the market research! This will help you with your further development, and result in a long list of desired features. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.gv.com/sprint/"&gt;Design Sprint&lt;/a&gt; is a fantastic way to point a problem and gain people's feedback on a solution to that problem. In a 5-day workshop, a team with experts explores a problem, simulate design thinking, creates a prototype, and gains feedback from users on that prototype. This fun and magical whirlwind process help you uncover new solutions and open new horizons for your product. &lt;/p&gt;

&lt;p&gt;Post-Sprint the teams can be left with a long list of features. But luckily you’ve been armed with valuable information which helps you much easier to plan the entire process. &lt;/p&gt;

&lt;h2&gt;
  
  
  Product feature prioritization methods
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Wants vs. Needs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For this method, you need a crystal clear picture between what the user wants and what the user needs. We are already said that user experience and feedback are very important for your MVP. Sometimes you may find in the scenario where early adopters prefer cool and unique functionalities, but in reality, that is not vital for the product at an early stage. Of course, you can keep and implement them for version 2.0 or for further development. By avoiding implementing too many non-essential features too soon you are making a very smart move. This will save you valuable time and money. Otherwise, you will be forced to sacrifice the needed features. That is going to result in harming your MVP and lead you astray from its overall purpose of product validation. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature Buckets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Suggested by many famous project managers and product owners, this product development method is the most usual and quickest way of validating features. &lt;br&gt;
For prioritizing into feature buckets you split the list of features into 3 groups, sometimes 4 or 5.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Must have&lt;/strong&gt; (Metric Movers). These features are intended to positively affect the main KPIs of the product. The success or failure of your product will be judged by the KPIs, so this bucket is essential in the interest of reaching product goals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nice to have&lt;/strong&gt; (Delights). Features that increase people's satisfaction, such as attractive and cool animations, leaderboards, entertaining elements, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not needed&lt;/strong&gt; (User requests). These features are actively requested by users, but are not intended to solve their principal problem. They are minor and attractive features, such as unique and funny sticker packs or emojis. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a very rare scenario, but don't get confused as some features may fall into 3 buckets. But, evade it where one of the buckets has no features in it. This likely illustrates the issue with your innovative ability, product performance, or the gathering and interpretation of user feedback.&lt;br&gt;
These issues can cause both short-term and long-term problems, and threaten the project's success. A balanced approach would result in an MVP with features from all buckets. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MoSCow Matrix&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is another prioritization method used in agile product development and involves splitting all features into 4 logical categories: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;(M)&lt;/strong&gt; Must Have are features that are very essential for building your MVP. Without these features, the product may face some legal or regulatory challenges. Also, intended to give the product its fundamental value to users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;(S)&lt;/strong&gt; Should Have features are second to 'must-haves' in the order of importance. Тhey brings great value from the user experience aspect. And their absence won't have a high impact on your MVP.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;(C)&lt;/strong&gt; Could Have features are the cute little add-ons. But no matter how exciting, attractive, and interesting they are, don’t rush to include them in the early product version.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;(W)&lt;/strong&gt; Won’t Have are the features that you’re absolutely sure you won’t implement in your MVP, but in the final version of your product. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;(C)&lt;/strong&gt; Could Have features are the cute little add-ons. But no matter how exciting, attractive, and interesting they are, don’t rush to include them in the early product version.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;(W)&lt;/strong&gt; Won’t Have are the features that you’re absolutely sure you won’t implement in your MVP, but in the final version of your product. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Different methods have different approaches and involve differing perspectives. Deciding what method to use and conducting it yourself could be overwhelming, which is where product development companies like &lt;a href="https://codechem.com/company"&gt;CodeChem&lt;/a&gt; are more than happy to jump in and assist. &lt;/p&gt;




&lt;h2&gt;
  
  
  COMING UP NEXT:
&lt;/h2&gt;

&lt;p&gt;The differences between a prototype and an MVP. &lt;/p&gt;

&lt;p&gt;Stay tuned.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>webdev</category>
    </item>
    <item>
      <title>4 popular types of MVP: How to choose the right one for your startup</title>
      <dc:creator>Ivana Rangelova</dc:creator>
      <pubDate>Tue, 27 Jul 2021 12:41:29 +0000</pubDate>
      <link>https://forem.com/codechem/4-popular-types-of-mvp-how-to-choose-the-right-one-for-your-startup-1id7</link>
      <guid>https://forem.com/codechem/4-popular-types-of-mvp-how-to-choose-the-right-one-for-your-startup-1id7</guid>
      <description>&lt;p&gt;&lt;strong&gt;In our latest blog post, we've discussed what a &lt;a href="https://blog.codechem.com/tips-for-building-successful-mvp-in-3-months"&gt;Minimal Viable Product&lt;/a&gt; is. It's the easiest tool you can build in order to test your idea and learn through collecting feedback from your early adopters. And also, how to build it.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;It's a fact that in this dynamic and turbulent world, full of brilliant ideas ready to be born into great startups, every entrepreneur is facing the same challenge - a blank page! That is one of the main reasons why many startups are failing. The blank page has endless possibilities and no guidelines. And the absence of form scares off potential entrepreneurs before they start. The absence of form exists because of the lack of feedback, so entrepreneurs don't know whether they are making the right decisions. &lt;/p&gt;

&lt;p&gt;Successful entrepreneurs see the blank page differently. They will shape a blank page into many ideas, then a plan, and at the end a product. They will transform the page to a process that will allow for that evolution to occur. Successful entrepreneurs don’t rely on the intuition of what users want, instead, they learn it through a process of hypothesis and experimentation. They discover the best decisions for their business by building an MVP. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RZkm9BrI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627293290736/CN6kiVdh6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RZkm9BrI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627293290736/CN6kiVdh6.png" alt="SITE.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MVP can come in a thousand shapes and forms. So, in this article, we will focus on the most popular ones. We will give you a simple explanation and examples from successful startups. We're sure that it will help you decide which type or solution is most suitable!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Content-related MVP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This group of MVPs is based on content. It will allow you to present the idea behind your product to your potential users or investors without building a prototype.&lt;/p&gt;

&lt;p&gt;And now you probably have a question: ‘Isn't MVP first and foremost a product?’ Yes! But, it’s possible to catch potential leads and measure purchase intent without building it. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y7F09eNn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627074311409/OGtwoEq8Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y7F09eNn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627074311409/OGtwoEq8Q.png" alt="Frame 119.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A landing page is the most used form of MVP because is easy to make. A simple website, a short description of your product, and a CTA (call to action) button can be a very reliable test of people’s interest. For a quick result – you can run an AdWords campaign on your main keywords and see people's reactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main tips:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✔︎ Make it look aesthetically appealing, so you can grab people’s attention!&lt;/p&gt;

&lt;p&gt;✔︎ Try to explain all the features from the user’s perspective.&lt;/p&gt;

&lt;p&gt;✔︎ Ask people to leave their e-mails. Once the MVP is live, you’ll be able to inform early adopters about your product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example:&lt;/em&gt;&lt;/strong&gt; Buffer.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--okxCxnsh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1626858312158/feVz3FA_X.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--okxCxnsh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1626858312158/feVz3FA_X.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the most popular platforms for scheduling social media posts was tested through various landing pages before the first line of its code was written. Joel Gascoigne, the founder, build a simple website describing Buffer’s functionalities and a page with “Plans &amp;amp; Pricing”. Everyone who clicked on could be a potential subscriber. Most importantly, the product wasn’t ready yet. The page only contained a piece of information that it will be launched soon and a possibility of signing up for a newsletter. Very easy and effective! &lt;/p&gt;

&lt;p&gt;🤩 &lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can be built cheaply and quickly.&lt;/li&gt;
&lt;li&gt;Can easily be matched with online ads.&lt;/li&gt;
&lt;li&gt;Can be tested and optimized easily.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;😩 &lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The conversion rate is low (about 1-3% of people sign up).&lt;/li&gt;
&lt;li&gt;Hard to adapt all vital information into one page.&lt;/li&gt;
&lt;li&gt;A landing page that's not aesthetic can hurt your brand.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aR3PYFsU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627074360194/NCOwzJOWT.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aR3PYFsU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627074360194/NCOwzJOWT.png" alt="Frame 118.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This type of MVP is another popular content-related MVP. One minute-long video is more than enough to explain your product. An interesting and creative video catches people's attention more easily than a simple description. Also, can go viral very quickly. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example:&lt;/em&gt;&lt;/strong&gt; dropbox.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=w4eTR7tci6A"&gt;https://www.youtube.com/watch?v=w4eTR7tci6A&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DropBox (a platform for sharing files on different devices) proved the effectiveness of their MVP in the form of a video. Because of the complexity of their innovative product, they test it before investing resources for development. DropBox created a short animated video for their MVP. The subscriptions sky-rocketed overnight!&lt;/p&gt;

&lt;p&gt;🤩 &lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explains your product in a simple way.&lt;/li&gt;
&lt;li&gt;People are interested in watching a short video.&lt;/li&gt;
&lt;li&gt;Good for branding.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;😩 &lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You may have to spend a lot of time to make an explainer video and get the right message.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Functionality-related MVP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This type of MVP is based on functionality. Can be used when content-related MVP wouldn’t give you enough feedback from your early adopters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LLOVg4MZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627074407055/qtaGw4lQs2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LLOVg4MZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627074407055/qtaGw4lQs2.png" alt="Frame 120.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wizard of Oz MVP is where you essentially put up a front that gives your early adopters the impression that you have a product. Also, users have the opportunity to experience it. It’s a very effective way of checking if you have a wanted product before you actually build it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example:&lt;/em&gt;&lt;/strong&gt; zappos.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4lUzqH-g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1626945804501/APIXUL0Ke.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4lUzqH-g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1626945804501/APIXUL0Ke.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Zappos (an online shoe retailer) is the most famous example of Wizard of Oz MVP. Nick, the founder tested the idea before creating the product. He went to local stores, photographed shoes, and sell them online. All that he needed was a very simple website and a small budget for ads to get traffic. From the customer’s side, it looked like a fully functional website.&lt;/p&gt;

&lt;p&gt;🤩 &lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can set up this MVP cheaply and quickly.&lt;/li&gt;
&lt;li&gt;You can use social media to generate interest.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;😩 &lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have to spend a lot of time and effort to manually perform the service.&lt;/li&gt;
&lt;li&gt;Customers can feel cheated if they come to know that there is no real product.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pwtYQkJU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627293187427/UEgamzwe0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pwtYQkJU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627293187427/UEgamzwe0.png" alt="4..png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Single Feature MVP is when you develop your actual product and sell it to your potential users. Even though the term means developing 'one single’ feature for the MVP, it doesn’t necessarily mean that. Single Feature MVPs are those that focus on solving the core problem of the user. And to do so, you may need more features in your minimum viable product, but they must be prioritized. Keep ‘must-have’ features and eliminate ‘nice to have’. While defining and prioritizing the core features to build, consider the following things: Unique Selling Point that offers users value and stand among the competition. Leave the other features for later development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example:&lt;/em&gt;&lt;/strong&gt; spotify.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bmzxzRHD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627029759594/lTaVfzzVZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bmzxzRHD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1627029759594/lTaVfzzVZ.png" alt="pasted image 0.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Spotify today is the global leader in the music industry. But how it reached the top of success is an interesting story.&lt;/p&gt;

&lt;p&gt;In 2008 Daniel Ek and Martin Lorentzon identified the opportunity that the music industry had nothing to help the music lovers stream songs. In 2006 after just 4 months of development, they launched their first prototype. &lt;/p&gt;

&lt;p&gt;🤩 &lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Focused on solving one specific problem for specific users.&lt;/li&gt;
&lt;li&gt;You can get your product to market fast with low costs.&lt;/li&gt;
&lt;li&gt;You can expand it later without much difficulty.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;😩 &lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have to invest in development.&lt;/li&gt;
&lt;li&gt;You may have a problem figuring out which feature you should focus on. &lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Before choosing the right type of MVP for your startup, you should define your goal. Understand your target, estimate the resources, choose the most suitable type MVP for your startup, and get ready to beat the market. As a &lt;a href="https://codechem.com/mvp"&gt;software development company&lt;/a&gt;, we are always here to help you make the right decision and turn your ideas into a successful startup! ★&lt;/p&gt;

&lt;h2&gt;
  
  
  NEXT STEP ⇢
&lt;/h2&gt;

&lt;p&gt;In this post, we went through what are the most popular types of MVP. In the following post, we will explain how to &lt;strong&gt;define and prioritize the features for your MVP.&lt;/strong&gt; Stay tuned.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>devops</category>
      <category>programming</category>
      <category>codequality</category>
    </item>
    <item>
      <title>Road To An Internship - Grinding Period [3/3]</title>
      <dc:creator>Andrej Acevski</dc:creator>
      <pubDate>Thu, 22 Jul 2021 13:53:36 +0000</pubDate>
      <link>https://forem.com/codechem/road-to-an-internship-grinding-period-3-3-299j</link>
      <guid>https://forem.com/codechem/road-to-an-internship-grinding-period-3-3-299j</guid>
      <description>&lt;p&gt;Hey folks!&lt;/p&gt;

&lt;p&gt;This is the last part of my "Road to an Internship" series, we'll be continue talking about my Grinding Period and the my discovery of new technologies. If you haven't read the previous parts, be sure to check them out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.codechem.com/road-to-an-internship-starting-off-03"&gt;Starting Off&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.codechem.com/road-to-an-internship-moving-on-13"&gt;Moving On&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.codechem.com/road-to-an-internship-the-rough-break-23"&gt;The Rough Break&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Grinding Period 💪
&lt;/h3&gt;

&lt;p&gt;As I was finishing the last project I started getting more involved in the developer communities and I met &lt;a href="https://nikolovlazar.com/"&gt;Lazar&lt;/a&gt;. Still to this day, he's one of my biggest inspirations - his portfolio website inspired and truly astonished me. I peeked around and I love what he does for programmers and he gave me a lot of tips on what technologies to learn and improve on. It motivated me a lot when I met other hardworking developers who are working through their problems just like me. &lt;/p&gt;

&lt;p&gt;Like always, I decided to start a pet project, but this time it was special - I recreated my website  &lt;a href="https://andrejs-tunes.herokuapp.com/"&gt;Andrej's Tunes&lt;/a&gt; using Next.js, Tailwind and I decided to move on from Javascript to Typescript. You can find the source code  &lt;a href="https://github.com/aacevski/andrejs-tunes"&gt;here&lt;/a&gt;. It was quite a productive period and I was very happy with the outcome.&lt;/p&gt;

&lt;p&gt;After the positive feedback, I started getting interested in new technologies, some of the frameworks I was experimenting with were: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blitzjs.com/"&gt;Blitz.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://strapi.io/"&gt;Strapi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amplication.com/"&gt;Amplification&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I decided to apply for my internship at &lt;a href="http://codechem.com/"&gt;CodeChem&lt;/a&gt; where there was an Open Day. CodeChem's Open Day is the first event I attended hosted by a programming company but it was genuinely fun. We had a challenge - it was to recreate the game Bejewled. I had a lot of fun and after some time, I secured the long awaited internship.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Words 🙌
&lt;/h3&gt;

&lt;p&gt;I hope I managed to motivate some junior developer who're struggling with their code right now. With a lot of love and persistence - you can truly learn any technology, framework or anything - really. On top of that, this was a fun way of me to look on how I've improved these past months and I know that the fire within me won't stop burning anytime soon!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>tailwindcss</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Road To An Internship - The Rough Break [2/3]</title>
      <dc:creator>Andrej Acevski</dc:creator>
      <pubDate>Thu, 22 Jul 2021 10:56:36 +0000</pubDate>
      <link>https://forem.com/codechem/road-to-an-internship-the-rough-break-2-3-15k5</link>
      <guid>https://forem.com/codechem/road-to-an-internship-the-rough-break-2-3-15k5</guid>
      <description>&lt;p&gt;What's up!&lt;/p&gt;

&lt;p&gt;We're continuing to the third part of my Road to an Internship series! Last time I was sharing my experiences with API's and the little Discord bot I made which implemented my knowledge of API's. In this part I'll put a highlight on burnouts in programming and the learning curve I had with React. &lt;/p&gt;

&lt;h3&gt;
  
  
  The Rough Break 🛑
&lt;/h3&gt;

&lt;p&gt;There was a silent phase from me after the last project. I was making websites who never saw the light of day and I was trying to master Node.js more each day! However one day I decided that I was ready for React and so the journey began. It was a long journey, mainly because I couldn't really get the hand of React, there were multiple tries back and fourth but I couldn't understand the main concept of React. So I began to think of a way to overcome React and I decided to do what I used to do on my previous project and how I learned past technologies - a pet project! &lt;/p&gt;

&lt;p&gt;One thing you guys might not know about me is that I love music and I'm always around music, it was always a dream of mine to make a website that displays your favorite artists and tracks from Spotify and one night as I was browsing &lt;a href="https://developer.spotify.com/documentation/web-api/"&gt;Spotify's API&lt;/a&gt;, I had a breakthrough - I decided to make a website to display a user's favorite artists or tracks using React. &lt;/p&gt;

&lt;p&gt;Before I continue I want to talk about the minor burnout I had as a programmer. In my case it wasn't that serious but I was so obsessed on becoming a better programmer it killed my motivation. After I made my Discord bot, my motivation went down and now when I look back to it, the main reason was because I was overworked. This is the main reason I struggled with React so much. It was a big learning curve, I must admit but combine that with a slight burnout and it wasn't the most pleasant experience. No matter what's your skill level, we should all take a step back because a break is almost as important as doing our job.&lt;/p&gt;

&lt;p&gt;Now, let's continue where we left off! As I was building my website, I started to fall in love with programming more and more. I found a place where I could share my creativity. After a week and a half, I was finally done and it was time to name the project, so &lt;a href="https://github.com/aacevski/andrej-tunes"&gt;Andrej's Tunes&lt;/a&gt; was born!&lt;br&gt;
 If you visit it, you can see it's an archived Github repository. Why so? In the next chapter I'll talk on how I reworked this website and how you can always improve your code. So what resources did I lean onto when I was making this website? In this specific chapter of my series I'll give you a tip that is used a lot in the real world. The best resource on learning a new technology is the documentation, I was heavily leaning on these following documentations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/docs/getting-started.html"&gt;React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://styled-components.com/docs"&gt;styled-component&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://material-ui.com/"&gt;Material-UI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What's next? ⚡
&lt;/h3&gt;

&lt;p&gt;In the next chapter I'll talk about how I burst out of my bubble and surrounded myself by amazing programmers who made me take my programming skills to the next level!&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>javascript</category>
      <category>adventofcode</category>
      <category>github</category>
    </item>
    <item>
      <title>Road To An Internship - Moving On [1/3]</title>
      <dc:creator>Andrej Acevski</dc:creator>
      <pubDate>Thu, 22 Jul 2021 10:52:47 +0000</pubDate>
      <link>https://forem.com/codechem/road-to-an-internship-moving-on-1-3-291m</link>
      <guid>https://forem.com/codechem/road-to-an-internship-moving-on-1-3-291m</guid>
      <description>&lt;p&gt;Hey! &lt;/p&gt;

&lt;p&gt;This is the second part of my Road To An Internship series, last time we left off right as I was finishing my pet project &lt;a href="https://aacevski.github.io/Omnifoods/"&gt;Omnifoods&lt;/a&gt;. It was a simple website with some jQuery mixed with it, however a very important lesson for me to learn! I've had more concrete knowledge on responsiveness. &lt;/p&gt;

&lt;h3&gt;
  
  
  Moving On 👉
&lt;/h3&gt;

&lt;p&gt;The last project was quite crucial and as a developer, I suggest everyone starting from the very basics. This way you can learn a lot more, even if you feel confident - you can always learn more! However I was far from my final goal. I started reading up on API's and started watching YouTube videos to better improve my knowledge. Some videos that helped me a lot are the following: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://www.youtube.com/watch?v=f__x1VofV2Q"&gt;Build A Weather App With JavaScript &lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.youtube.com/watch?v=GZvSYJDk-us"&gt;APIs for Beginners - How to use an API &lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=iFMLyMgCUTs"&gt;Intro to APIs &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Like before, I wanted to start another project, that's the best way for me to learn. I've always wanted to make a Disord bot but not just any Discord bot - I've had in mind to use an API provided by Riot Games for one of their games called Teamfight Tactics. The main goal for this project was to make it display statistics about the username entered, this way I could learn more about HTTP requests and on top of that, I would improve my knowledge with Node.js and Javascript! Here's the API I've  &lt;a href="https://developer.riotgames.com/"&gt;used&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After countless of hours, days and a lot of coffees, I finished  &lt;a href="https://github.com/aacevski/River-Sprite"&gt;River Sprite&lt;/a&gt; , that was the name I went for when naming the Discord bot. I must admit - it's quite a messy code, I know it's good practice to always have clean code but the knowledge I acquired was priceless. I've decided to use the original code I had, for everyone that is starting and is interested - I hope it motivates you to start off project&lt;/p&gt;

&lt;h3&gt;
  
  
  In the next chapter... 👾
&lt;/h3&gt;

&lt;p&gt;Next time I'll be talking more about my "Silent Period" - where I focused mostly on React and I'll have a segment on how to avoid burnouts.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>reactnative</category>
      <category>github</category>
      <category>adventofcode</category>
    </item>
    <item>
      <title>Road To An Internship - Starting Off [0/3]</title>
      <dc:creator>Andrej Acevski</dc:creator>
      <pubDate>Wed, 21 Jul 2021 15:07:09 +0000</pubDate>
      <link>https://forem.com/codechem/road-to-an-internship-starting-off-0-3-2h14</link>
      <guid>https://forem.com/codechem/road-to-an-internship-starting-off-0-3-2h14</guid>
      <description>&lt;p&gt;Hey folks!&lt;/p&gt;

&lt;p&gt;In December of 2020, I decided to pursue a career as a web developer - in this series of articles I'll be talking about the steps I took. You don't have to follow these exact steps, however I wanted to write about my experience and on top of that I hope to motivate some of you future developers who are currently trying to forge your own path!&lt;/p&gt;

&lt;p&gt;I'm far from a full stack web developer, nevertheless I have the mindset of learning new things everyday. Taking that in account, I've accomplished a lot of my goals that I had in mind when I was starting. One of them was securing an internship and working what I love. &lt;/p&gt;

&lt;h3&gt;
  
  
  Starting Off 🌟
&lt;/h3&gt;

&lt;p&gt;I have to say that I had prior programming knowledge before I started learning with a more serious approach. Where did I start? CSS. I practiced CSS a LOT. It might sound weird, but if you start working with responsive designs, grid designs, flexbox and the rest, you need to know CSS quite well. &lt;br&gt;
I recommend everyone who's a beginner to use &lt;a href="https://getbootstrap.com/docs/4.0/layout/grid/"&gt;Bootstrap's Grid&lt;/a&gt; system. &lt;br&gt;
As I was working through the grid system, I was acquiring knowledge in colors.  &lt;a href="https://color.adobe.com/"&gt;Adobe Color&lt;/a&gt; is an amazing tool which assisted me in choosing and picking colors. &lt;/p&gt;

&lt;p&gt;My way of learning is making projects - in my opinion that is the best way to learn a skill. I picked up a Udemy course about CSS and created a website called  &lt;a href="https://aacevski.github.io/Omnifoods/"&gt;Omnifoods&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;It's not the finest websites, however I acquired plenty of knowledge. Some other pretty useful websites if you're starting are&lt;br&gt;
&lt;a href="https://css-tricks.com/snippets/html/glyphs/"&gt;Glyphs&lt;/a&gt;, &lt;a href="https://www.0to255.com/"&gt;0to255&lt;/a&gt; and last but not least &lt;a href="https://octopus.do/"&gt;Octopus&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I'm in love with Octopus since it makes sure you plan out your website prior to doing the programming. &lt;/p&gt;

&lt;h3&gt;
  
  
  To be continued... 🔜
&lt;/h3&gt;

&lt;p&gt;That's how I started out, in the next article I'll be talking how I learned about API's, Node.js and much more. Thanks for reading!&lt;/p&gt;

</description>
      <category>story</category>
      <category>internships</category>
      <category>css</category>
      <category>boostrap</category>
    </item>
    <item>
      <title>Building an MVP from Scratch 🚀</title>
      <dc:creator>Lazar Nikolov</dc:creator>
      <pubDate>Wed, 21 Jul 2021 13:29:23 +0000</pubDate>
      <link>https://forem.com/codechem/building-an-mvp-from-scratch-5a3e</link>
      <guid>https://forem.com/codechem/building-an-mvp-from-scratch-5a3e</guid>
      <description>&lt;p&gt;Back in October 2020 I decided to start a pet project with a goal to learn a new technology. I noticed people on Twitter were saying how much they like the Developer Experience of Blitz JS so I decided to use it in this pet project.&lt;/p&gt;

&lt;p&gt;But then I thought, this pet project could be something useful to our employees. So, after a little research I decided to build an Absence Tracker, so we can ditch the Telegram group where we reported our absences.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Inception
&lt;/h2&gt;

&lt;p&gt;I decided to use &lt;a href="http://chakra-ui.com/" rel="noopener noreferrer"&gt;Chakra UI&lt;/a&gt; along with &lt;a href="http://blitzjs.com/" rel="noopener noreferrer"&gt;Blitz JS&lt;/a&gt;, because it's rich with components and it allows me to quickly build the UI. And it looks 😍. I did a little planning and Database Design in &lt;a href="https://diagrams.net" rel="noopener noreferrer"&gt;diagrams.net&lt;/a&gt; and started to layout the pages.&lt;/p&gt;

&lt;p&gt;One month in I decided to stream the whole development process on  &lt;a href="https://twitch.tv/nikolovlazar" rel="noopener noreferrer"&gt;Twitch&lt;/a&gt;! That was one of my best decisions. I've met a lot of cool folks on my streams and they gave me some interesting ideas regarding the implementation. All of my streaming archive can be found on my &lt;a href="https://www.youtube.com/channel/UCTexaJMnN_Pv6TVueQ61-oQ" rel="noopener noreferrer"&gt;YouTube channel&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenges
&lt;/h2&gt;

&lt;p&gt;One of the challenges was keeping up with the changes of Blitz JS. When I started the project Blitz was still in alpha. And as we all know, alpha software tends to change and it's totally normal. Blitz JS is maturing in a great way, but keeping track of the changes did require a lot of release notes reading and checking out past PRs.&lt;/p&gt;

&lt;p&gt;Another challenge was using Chakra UI with an experimental version of React (default by Blitz JS). I couldn't find a good workaround, so I decided to use the stable version of React. The drawback of that was disabling the Concurrent mode of React, even though I really liked that feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Benefits
&lt;/h2&gt;

&lt;p&gt;This tech stack grew to be my favourite. It really allows you to build your app in a record time! I really like the DX of Blitz JS and Chakra UI and their intuitive APIs. I'll definitely use these technologies for my future projects too.&lt;/p&gt;

&lt;p&gt;As I mentioned, streaming on Twitch was one my best decision. I've gotten a lot of followers and met a lot of cool folks that hung around my streams. I've also gotten the attention of Chakra UI! They liked my streams and invited me to join the &lt;a href="https://chakra-ui.com/team" rel="noopener noreferrer"&gt;core team&lt;/a&gt; 🤩&lt;/p&gt;

&lt;h2&gt;
  
  
  The Finale
&lt;/h2&gt;

&lt;p&gt;I decided to bring my colleague &lt;a class="mentioned-user" href="https://dev.to/iboshkov"&gt;@iboshkov&lt;/a&gt; as a guest to my live stream where we Dockerized the app and deployed it on our company servers. There was a readymade Docker image for Blitz JS, but we decided to build our own. It wasn't complicated at all. After we set up everything in a Docker Compose network, the deployment was a single line command.&lt;/p&gt;

&lt;p&gt;Next on our list is to onboard all of the employees, synchronise the old data with the new platform and officially start using the new platform. It started off as a pet project, a "placeholder" for me to learn a new technology, but it grew into a cool usable app that will make our lives easier. It's been a wild ride, but I'd do it all over again without thinking.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>sideprojects</category>
      <category>mvp</category>
    </item>
    <item>
      <title>FFMPEG: Screen-recording and video compression made fast and easy (MacOSX guide)</title>
      <dc:creator>Ivana Rangelova</dc:creator>
      <pubDate>Fri, 16 Jul 2021 20:47:27 +0000</pubDate>
      <link>https://forem.com/codechem/ffmpeg-screen-recording-and-video-compression-made-fast-and-easy-macosx-guide-4i21</link>
      <guid>https://forem.com/codechem/ffmpeg-screen-recording-and-video-compression-made-fast-and-easy-macosx-guide-4i21</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;You probably already know the "Why" since you're here, or probably you're just a knowledge devourer that wants to know stuff just because one day it might come in handy (trust me, this might come in handy one day).&lt;/p&gt;

&lt;p&gt;In your life as a developer you might need to make screen recordings to send to your colleagues or clients to showcase (the progress of) something you've developed. And these screen recordings can result in pretty big file sizes depending on the resolution and the length of the recording. Big files don't work well with slow upload speed and also they take more space on a server ("Thanks Captain Obvious!" - said someone from the audience). &lt;/p&gt;

&lt;p&gt;So, since video compression is a thing, I'm going to help you compress those chonky files and help you decrease the effects of the aforementioned problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pre-requisites
&lt;/h2&gt;

&lt;p&gt;The only additional things you will need to accomplish this task are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Homebrew&lt;/code&gt; - a package manager for MacOS (makes life a lot easier)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ffmpeg&lt;/code&gt; - a CLI tool which allows video format conversion, compression etc.&lt;/li&gt;
&lt;li&gt;basic terminal knowledge (traversing the file system)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Installing the pre-requisites
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open a terminal window&lt;/li&gt;
&lt;li&gt;Install &lt;code&gt;Homebrew&lt;/code&gt; by running this:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install &lt;code&gt;ffmpeg&lt;/code&gt; by running this:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install ffmpeg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Screen-recording tutorial
&lt;/h2&gt;

&lt;p&gt;Recording your screen on MacOSX is as easy as pressing &lt;code&gt;Cmd&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;5&lt;/code&gt;. I won't explain further, the tool is quite intuitive, fiddle around with it and you'll get familiar with it quite fast.&lt;/p&gt;

&lt;p&gt;NOTE: To make your life easier rename your recording to something short and simple like "a.mov".&lt;/p&gt;

&lt;h2&gt;
  
  
  Video compression tutorial
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open a terminal window&lt;/li&gt;
&lt;li&gt;Go to the recording's location (using the terminal of course)&lt;/li&gt;
&lt;li&gt;Run:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ffmpeg -i {recording-video} -vcodec libx264 -crf 24 {output-video}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The {recording-video} and the {output-video} have to contain the file extension as well.&lt;br&gt;
(i.e.: &lt;code&gt;ffmpeg -i a.mov -vcodec libx264 -crf 24 b.mov&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;And that's about it. If you want to know more about what the options for &lt;code&gt;ffmpeg&lt;/code&gt; mean, keep on reading.&lt;/p&gt;
&lt;h2&gt;
  
  
  Breaking down the &lt;code&gt;ffmpeg&lt;/code&gt; command
&lt;/h2&gt;

&lt;p&gt;Let's dissect the command first:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ffmpeg | -i {recording-video} | -vcodec libx264 | -crf 24 | {output-video}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's explain it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ffmpeg&lt;/code&gt; is the name of the CLI tool&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-i&lt;/code&gt; is an option which takes the name of the input video (the video which we want to work on)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-vcodec&lt;/code&gt; is an option which takes the video codec's name (in our case it's &lt;code&gt;libx264&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-crf&lt;/code&gt; is an option which determines the constant rate factor (I know it's wrong, but I remember this as compression ratio factor, which makes it easier for me to remember that higher values mean higher compression and lower video quality/size)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Outro
&lt;/h2&gt;

&lt;p&gt;I hope this post helped you learn something new. This may serve as a short introduction to &lt;code&gt;ffmpeg&lt;/code&gt; for you as well, which is a powerful CLI tool. You can learn more about &lt;code&gt;ffmpeg&lt;/code&gt; &lt;a href="https://ffmpeg.org/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Also, I've made a multi-platform tool which installs everything automatically. You can look at it &lt;a href="https://github.com/martinezzthebig/bmms-video-compressor"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
