<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: rajesh singh</title>
    <description>The latest articles on DEV Community by rajesh singh (@rajesh_singh_1989).</description>
    <link>https://dev.to/rajesh_singh_1989</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%2F1100104%2F02a470e9-98db-4653-b872-b5880df246be.jpg</url>
      <title>DEV Community: rajesh singh</title>
      <link>https://dev.to/rajesh_singh_1989</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rajesh_singh_1989"/>
    <language>en</language>
    <item>
      <title>Vote for Name of a Bot Development Framework for Python.</title>
      <dc:creator>rajesh singh</dc:creator>
      <pubDate>Tue, 11 Jul 2023 09:49:33 +0000</pubDate>
      <link>https://dev.to/rajesh_singh_1989/vote-for-name-of-a-bot-development-framework-for-python-27e</link>
      <guid>https://dev.to/rajesh_singh_1989/vote-for-name-of-a-bot-development-framework-for-python-27e</guid>
      <description>&lt;p&gt;Hi, &lt;br&gt;
I want to know which name you think is a Good Name for a Bot Development Framework. The Options are &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scrapium&lt;/li&gt;
&lt;li&gt;Botasaurus&lt;/li&gt;
&lt;li&gt;Bose Framework&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please Vote for your favorite name &lt;a href="https://www.omkar.cloud/l/vote/"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webscraping</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Which frontend &amp; backend framework are you using for your application?</title>
      <dc:creator>rajesh singh</dc:creator>
      <pubDate>Wed, 14 Jun 2023 03:59:29 +0000</pubDate>
      <link>https://dev.to/rajesh_singh_1989/which-frontend-backend-framework-are-you-using-for-your-application-5dp2</link>
      <guid>https://dev.to/rajesh_singh_1989/which-frontend-backend-framework-are-you-using-for-your-application-5dp2</guid>
      <description>&lt;p&gt;Hello there!&lt;/p&gt;

&lt;p&gt;Which frontend &amp;amp; backend framework are you using for your application?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>python</category>
    </item>
    <item>
      <title>Meet Omkar DevTools: 🚀 Your Swiss Army Knife as a Ninja Developer ✨</title>
      <dc:creator>rajesh singh</dc:creator>
      <pubDate>Mon, 12 Jun 2023 16:08:54 +0000</pubDate>
      <link>https://dev.to/rajesh_singh_1989/meet-omkar-devtools-your-swiss-army-knife-as-a-ninja-developer-2ekb</link>
      <guid>https://dev.to/rajesh_singh_1989/meet-omkar-devtools-your-swiss-army-knife-as-a-ninja-developer-2ekb</guid>
      <description>&lt;h2&gt;
  
  
  💡 What is Omkar DevTools?
&lt;/h2&gt;

&lt;p&gt;Omkar DevTools is a one-stop shop for developers, providing a comprehensive set of tools to help with tasks from Lorem Generation to JSON Decoding under a single dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Top Tools
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Base 64 Encoder&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fbase-64-encoder.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fbase-64-encoder.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JWT Decoder&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fjwt-decoder.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fjwt-decoder.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JSON Duplicate Remover&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fjson-duplicate-remover.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fjson-duplicate-remover.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hash Generator&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fhash-generator.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fhash-generator.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lorem Generator&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Florem-generator.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Florem-generator.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secret Generator (Secure for use as secrets in Django, JWT keys)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fsecret-generator.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fsecret-generator.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Text Counter&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Ftext-counter.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Ftext-counter.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Case Converter&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fcase-converter.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fcase-converter.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And many more tools to save your valuable development time. 👨🏻‍💻&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Get Started
&lt;/h2&gt;

&lt;p&gt;Get Started with &lt;strong&gt;Omkar DevTools&lt;/strong&gt; by visiting &lt;a href="https://www.omkar.cloud/devtools/" rel="noopener noreferrer"&gt;this link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Also, bookmark &lt;strong&gt;Omkar DevTools&lt;/strong&gt; for easy single click access when you need it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fbookmark-omkar-dev-tools.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Fmeet-omkar-dev-tools-your-swiss-army-knife-as-a-ninja-developer%2Fbookmark-omkar-dev-tools.gif"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;👋 Hi Reader, &lt;/p&gt;

&lt;p&gt;What do you think? Do you see the value of &lt;strong&gt;Omkar DevTools&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Share your thoughts in the comments and I will reply to every single comment.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Meet Bose Framework: 🚀 Your Swiss Army Knife as a Ninja Scraper ✨</title>
      <dc:creator>rajesh singh</dc:creator>
      <pubDate>Mon, 12 Jun 2023 15:59:06 +0000</pubDate>
      <link>https://dev.to/rajesh_singh_1989/meet-bose-framework-your-swiss-army-knife-as-a-ninja-scraper-42dn</link>
      <guid>https://dev.to/rajesh_singh_1989/meet-bose-framework-your-swiss-army-knife-as-a-ninja-scraper-42dn</guid>
      <description>&lt;h2&gt;
  
  
  💡 What is Bose Framework?
&lt;/h2&gt;

&lt;p&gt;Bose Framework is a framework built for selenium developers packed with best practices from experienced bot developers to help create &lt;strong&gt;undetectable&lt;/strong&gt;, &lt;strong&gt;low boilerplate&lt;/strong&gt; and &lt;strong&gt;easy to debug&lt;/strong&gt; bots. 🤖&lt;/p&gt;

&lt;p&gt;It helps you scrape or automate target websites with ease and gives you the mental powers of experienced bot developers at your fingertips, saving you &lt;strong&gt;hours&lt;/strong&gt; of development time. 👨🏻‍💻&lt;/p&gt;

&lt;h2&gt;
  
  
  🏆 Top Feautres
&lt;/h2&gt;

&lt;p&gt;Bose is a battery packed framework that implements following feautres to help you create bots faster, saving your valuable Development Time. ✨&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Go Low Boilerplate with Bose&lt;/strong&gt;
Launching a browser using Bare Selenium requires writing a significant amount of code:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'path/to/chromedriver'&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;executable_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;driver_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'https://www.example.com'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Bose, you can launch browser in few lines of code without having to worry about specifying paths:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bose&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseTask&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'https://www.example.com'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Configure Profile, Window Size, and User Agent with a Single Line of Code&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In bare Selenium, if you want to configure options such as the profile, user agent, or window size, it requires writing a lot of code, as shown below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.chrome.options&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Options&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'path/to/chromedriver.exe'&lt;/span&gt;

&lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Options&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;profile_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'1'&lt;/span&gt;

&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_argument&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;'--user-data-dir=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;profile_path&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;user_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.37")'&lt;/span&gt;
&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_argument&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;'--user-agent=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;user_agent&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;window_width&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1200&lt;/span&gt;
&lt;span class="n"&gt;window_height&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;720&lt;/span&gt;
&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_argument&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;'--window-size=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;window_width&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;,&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;window_height&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;executable_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;driver_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Bose, you can specify them in a single line of code using predefined variables. Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseTask&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;browser_config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BrowserConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_agent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;UserAgent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user_agent_106&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;window_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;WindowSize&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;window_size_1280_720&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;profile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Exception Handling that every Bot Developer wants&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bose also addresses a common frustration with Selenium - when an exception occurs, the browser crashes and closes automatically. This behavior is not desirable for bot developers and makes debugging hard. &lt;/p&gt;

&lt;p&gt;Bose, on the other hand, keeps the browser open in the event of an exception, allowing for easier debugging of the problem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cFou63X4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/error-prompt-83de79e560f129197afb9f831d388383.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cFou63X4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/error-prompt-83de79e560f129197afb9f831d388383.png" alt="error prompt" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Remembers the Past Runs&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's say you went to drink coffee while your bot was running, and when you came back, you noticed that the bot had closed.&lt;/p&gt;

&lt;p&gt;As a developer, you might have an itch to see the last screenshot taken before the browser was closed or to know how much time the bot took to complete its task.&lt;/p&gt;

&lt;p&gt;Well, Whenever you run Bose, it automatically stores important details such as &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the screenshot taken before closing&lt;/li&gt;
&lt;li&gt;the time it took to run the bot&lt;/li&gt;
&lt;li&gt;any errors that occurred.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After, each run a new folder is created in &lt;code&gt;tasks&lt;/code&gt; folder which contains three files, listed below:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;task_info.json&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;It contains information about the task run such as &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;duration for which the task run, &lt;/li&gt;
&lt;li&gt;the ip details of task &lt;/li&gt;
&lt;li&gt;the user agent&lt;/li&gt;
&lt;li&gt;window_size &lt;/li&gt;
&lt;li&gt;profile &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NXfzrnIg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/task-info-1ad8d89552138e2edc900434144dfbe0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NXfzrnIg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/task-info-1ad8d89552138e2edc900434144dfbe0.png" alt="task info" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;final.png&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This is the screenshot captured before driver was closed. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZvOeTnLb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/final-d2ca24d2717d17576eb8233ad0cd2b10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZvOeTnLb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/final-d2ca24d2717d17576eb8233ad0cd2b10.png" alt="final" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;page.html&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This is the html source captured before driver was closed. Very useful to know in case your selectors failed to select elements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q7jIUk3k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/page-cffce10976b4bf201b49a479c2340075.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q7jIUk3k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/page-cffce10976b4bf201b49a479c2340075.png" alt="Page" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;error.log&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;In case your task crashed due to exception we also store error.log which contains the error due to which the task crashed. This is very helful in debugging.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a1sALfyW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/error-log-9ebb09dca133b2d7df1ae6cfc67df909.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a1sALfyW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/error-log-9ebb09dca133b2d7df1ae6cfc67df909.png" alt="error log" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Built to defeat Cloudflare, Perimeterx by default&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Multi Million Dollar Companies protects their valuable data with the help of Cloudflare and PerimeterX.&lt;/p&gt;

&lt;p&gt;Now, you might be wondering how to bypass systems like Cloudflare and PerimeterX. Well, a brilliant Developer named &lt;a href="https://github.com/ultrafunkamsterdam"&gt;Leon&lt;/a&gt; created a &lt;a href="https://github.com/ultrafunkamsterdam/undetected-chromedriver"&gt;ChromeDriver&lt;/a&gt; that has excellent support for bypassing &lt;strong&gt;all major bot detection systems&lt;/strong&gt; such as Distil, Datadome, Cloudflare, and others. &lt;/p&gt;

&lt;p&gt;To use it, simply pass the &lt;code&gt;use_undetected_driver&lt;/code&gt; option to the &lt;code&gt;BrowserConfig&lt;/code&gt; in your code, as shown below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bose&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BaseTask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;BrowserConfig&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseTask&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;browser_config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BrowserConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;use_undetected_driver&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Output Data in CSV or JSON with a Single Line of Code&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Outputting data in CSV or JSON requires a significant amount of imperative code, as shown below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;write_json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'w'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;fp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dump&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;indent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;write_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'w'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newline&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'utf-8'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;csvfile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;fieldnames&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# get the fieldnames from the first dictionary
&lt;/span&gt;        &lt;span class="n"&gt;writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DictWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csvfile&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fieldnames&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;fieldnames&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writeheader&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# write the header row
&lt;/span&gt;        &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writerows&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# write each row of data
&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\u201c&lt;/span&gt;&lt;span class="s"&gt;The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.&lt;/span&gt;&lt;span class="se"&gt;\u201d&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Albert Einstein"&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\u201c&lt;/span&gt;&lt;span class="s"&gt;It is our choices, Harry, that show what we truly are, far more than our abilities.&lt;/span&gt;&lt;span class="se"&gt;\u201d&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"J.K. Rowling"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;write_json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"data.json"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;write_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"data.csv"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bose simplifies these complexities by encapsulating them in the Output module for easy reading and writing of data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bose&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Output&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\u201c&lt;/span&gt;&lt;span class="s"&gt;The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.&lt;/span&gt;&lt;span class="se"&gt;\u201d&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Albert Einstein"&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\u201c&lt;/span&gt;&lt;span class="s"&gt;It is our choices, Harry, that show what we truly are, far more than our abilities.&lt;/span&gt;&lt;span class="se"&gt;\u201d&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"J.K. Rowling"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write_json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"data.json"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;Output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"data.csv"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Run the Same Code Everywhere, whether it's on Mac, Linux, or Windows. Forget the need to change driver paths.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bose simplifies cross-platform development by abstracting away the differences between operating systems such as Windows, Mac, and Linux. &lt;/p&gt;

&lt;p&gt;You no longer need to specify driver paths specific to each OS when launching browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9swfkCgj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://ded9.com/wp-content/uploads/2022/08/mac_linux_windows_banner.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9swfkCgj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://ded9.com/wp-content/uploads/2022/08/mac_linux_windows_banner.png" alt="" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Adds Powerful Methods to Supercharge Bot Development&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The driver you receive in the &lt;strong&gt;&lt;code&gt;run&lt;/code&gt;&lt;/strong&gt; method of the Bose Task is an extended version of Selenium that adds powerful methods to make working with Selenium much easier. Some of the popular methods added to the Selenium driver by Bose Framework are:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;METHOD&lt;/th&gt;
&lt;th&gt;DESCRIPTION&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;get_by_current_page_referrer(link, wait=None)&lt;/td&gt;
&lt;td&gt;simulate a visit that appears as if you arrived at the page by clicking a link. This approach creates a more natural and less detectable browsing behavior.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;js_click(element)&lt;/td&gt;
&lt;td&gt;enables you to click on an element using JavaScript, bypassing any interceptions(ElementClickInterceptedException) from pop-ups or alerts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;get_cookies_and_local_storage_dict()&lt;/td&gt;
&lt;td&gt;returns a dictionary containing "cookies" and "local_storage”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;add_cookies_and_local_storage_dict(self, site_data)&lt;/td&gt;
&lt;td&gt;adds both cookies and local storage data to the current web site&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;organic_get(link, wait=None)&lt;/td&gt;
&lt;td&gt;visits google and then visits the “link” making it less detectable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;local_storage&lt;/td&gt;
&lt;td&gt;returns an instance of the LocalStorage module for interacting with the browser's local storage in an easy to use manner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;save_screenshot(filename=None)&lt;/td&gt;
&lt;td&gt;save a screenshot of the current web page to a file in tasks/ directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;short_random_sleep() and long_random_sleep():&lt;/td&gt;
&lt;td&gt;sleep for a random amount of time, either between 2 and 4 seconds (short) or between 6 and 9 seconds (long)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;get_element_or_* [eg: get_element_or_none, get_element_or_none_by_selector, get_element_by_id, get_element_or_none_by_text_contains,]&lt;/td&gt;
&lt;td&gt;find web elements on the page based on different criteria. They return the web element if it exists, or None if it doesn't.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;is_in_page(target, wait=None, raise_exception=False)&lt;/td&gt;
&lt;td&gt;checks if the browser is in the specified page&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In simple words, Bose is an excellent framework that simplifies the boring parts of Selenium and web scraping.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Get Started with Bose
&lt;/h2&gt;

&lt;p&gt;Now, let's see how you can have the magic of Bose at your finger tips. &lt;/p&gt;

&lt;p&gt;Start by Cloning the Template&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/omkarcloud/bose-starter my-bose-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then change into that directory, install dependencies, open vscode, and start the project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;my-bose-project
python &lt;span class="nt"&gt;-m&lt;/span&gt; pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
code &lt;span class="nb"&gt;.&lt;/span&gt;
python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first run will take some time as it downloads the chrome driver executable, subsequent runs will be fast.&lt;/p&gt;

&lt;p&gt;Once started it will scrape data from &lt;a href="https://quotes.toscrape.com/"&gt;quotes.toscrape.com&lt;/a&gt; and store the results in /output/finished.json&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZvOeTnLb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/final-d2ca24d2717d17576eb8233ad0cd2b10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZvOeTnLb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.omkar.cloud/bose/assets/images/final-d2ca24d2717d17576eb8233ad0cd2b10.png" alt="" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Upcoming Features in V2 to supercharge 🔋 Bot Development
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kubernetes Integration to help you scrape data at Google’s Scale [Priority]&lt;/li&gt;
&lt;li&gt;Save Storage by storing the profile in a single JSON file by storing cookies and local storage for the website. [Priority]&lt;/li&gt;
&lt;li&gt;Provide a temporary email service [Priority]&lt;/li&gt;
&lt;li&gt;Purchase hundreds of pre-created Google and Microsoft accounts [Priority]&lt;/li&gt;
&lt;li&gt;Built-in IP rotation for requests [Priority]&lt;/li&gt;
&lt;li&gt;Captcha Solving implemented right into Bose [Priority]&lt;/li&gt;
&lt;li&gt;Generate names, emails, usernames, etc., for users in countries such as India, Russia, Europe, China, and America.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📚 Summary
&lt;/h2&gt;

&lt;p&gt;Simply put, Bose empowers you to effortlessly automate or scrape your Target Website and its content with the ease of cutting butter with a knife. &lt;/p&gt;




&lt;p&gt;👋 Hi Reader, &lt;/p&gt;

&lt;p&gt;What do you think? Do you see the value of &lt;strong&gt;Bose Framework&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Share your thoughts in the comments and I will reply to every single comment.&lt;/p&gt;

</description>
      <category>webscraping</category>
      <category>python</category>
      <category>selenium</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Meet Om Startup Framework: 🚀 Your Swiss Army Knife as a Full Stack Ninja ✨</title>
      <dc:creator>rajesh singh</dc:creator>
      <pubDate>Mon, 12 Jun 2023 15:56:53 +0000</pubDate>
      <link>https://dev.to/rajesh_singh_1989/meet-om-framework-your-swiss-army-knife-as-a-full-stack-ninja-22me</link>
      <guid>https://dev.to/rajesh_singh_1989/meet-om-framework-your-swiss-army-knife-as-a-full-stack-ninja-22me</guid>
      <description>&lt;h2&gt;
  
  
  💡 What is Om Startup Framework?
&lt;/h2&gt;

&lt;p&gt;The Om Startup Framework helps you create production-ready web applications using Next.js and Django.&lt;/p&gt;

&lt;p&gt;It's a battery-packed framework that implements the following features to help you take your idea from concept to launch in a matter of days, saving developers months of development time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Production Ready Blogging System &lt;/li&gt;
&lt;/ul&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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_blog-546ae22dbe9df46c21b041741712283f.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_blog-546ae22dbe9df46c21b041741712283f.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Production Ready Authentication Pages with Google Auth, Email Auth, Email Verifivation and Forgot Password Functionality. &lt;/li&gt;
&lt;/ul&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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_sign_up-44572d93df9c51e95048ae5e7eb49757.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_sign_up-44572d93df9c51e95048ae5e7eb49757.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responsive and Beautiful Pricing Page with Whatsapp and FAQ Button which also supports Variable Pricing for Different Countries&lt;/li&gt;
&lt;/ul&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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_pricing-37dfef38b51e6a3a89fb7bd982215e67.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_pricing-37dfef38b51e6a3a89fb7bd982215e67.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User Management Dashboard with ability to Delete or Ban users of your Application&lt;/li&gt;
&lt;/ul&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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_omkar_users-e3f2f027af8b8ee1eeda0912d9129959.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_omkar_users-e3f2f027af8b8ee1eeda0912d9129959.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stunning Landing Page&lt;/li&gt;
&lt;/ul&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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_landing-ea27a63ca3a1db380402b881b2fd7429.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_landing-ea27a63ca3a1db380402b881b2fd7429.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;User Action Tracking so you know &lt;strong&gt;exactly&lt;/strong&gt; what each user did in your application from &lt;strong&gt;sign in&lt;/strong&gt; to &lt;strong&gt;sign out&lt;/strong&gt; and &lt;strong&gt;everything in between&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_action-97c06d96609ddc162e8566421a03458a.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_action-97c06d96609ddc162e8566421a03458a.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ready Made Url Shortner to create short urls for tracking clicks. Say Sayonara to bit.ly.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_omkar_shortner-b6eabdcb3cbe31eb55045fb282fde853.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_omkar_shortner-b6eabdcb3cbe31eb55045fb282fde853.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Pre configured Github Actions so delpoying new code is as simple as a &lt;code&gt;git push&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_github_actions-ca4fc50ed4ed1f2555bea224eaf12f1f.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_github_actions-ca4fc50ed4ed1f2555bea224eaf12f1f.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Contact Us Functionality which also sends a Thank You Email for Contacting Us.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_contact_us_modal-27529ed88e463a69d4d8f756f9853534.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_contact_us_modal-27529ed88e463a69d4d8f756f9853534.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brillant Privacy Policy and Terms of Conditions to safeguard your StartUp.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_privacy-fe56817f92ad91722e5e960be749d483.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Ffeautres_privacy-fe56817f92ad91722e5e960be749d483.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Great Guidance of Deployment and Important Tools you need for your StartUp. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Ffrom-localhost-to-cloud-next-js-django-ssl-github-actions-dns-configuration-the-ultimate-website-deployment-tutorial-with-kubernetes%2Fnodes.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%2Fwww.omkar.cloud%2Fblog%2Fstatic%2Fblog%2Ffrom-localhost-to-cloud-next-js-django-ssl-github-actions-dns-configuration-the-ultimate-website-deployment-tutorial-with-kubernetes%2Fnodes.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 Get Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;Clone Starter Template&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/omkarcloud/om-startup-framework-starter my-om-project
&lt;span class="nb"&gt;cd &lt;/span&gt;my-om-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then change into frontend/ directory and install dependencies.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;frontend/
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--legacy-peer-deps&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then change into blog/ directory and install dependencies.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;blog/
npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then change into backend/ directory, install dependencies, migrate database and seed with data.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;backend/
python &lt;span class="nt"&gt;-m&lt;/span&gt; pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
npm run db:delete-and-seed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Run the Frontend and Backend Server
&lt;/h3&gt;

&lt;p&gt;Start the frontend server&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;frontend/
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In a seperate terminal start the backend server&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;backend/
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, visit &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt; to see the home page with a nav bar linking to various pages of application. Explore the pages by clicking on navigation links to get a big picture of feautres of your application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Fgetting_started_server_starter-05e25c7e881441d4c02776beb920e56e.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Fgetting_started_server_starter-05e25c7e881441d4c02776beb920e56e.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Run the Blog Server
&lt;/h3&gt;

&lt;p&gt;Most of your time will be spent writing frontend and backend code. Occasionally, you will need to run the blog server to preview the articles you write. Run following Command to spin up the blog server&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;blog/
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now visit &lt;a href="http://localhost:4000/blog/" rel="noopener noreferrer"&gt;http://localhost:4000/blog/&lt;/a&gt; to see the blog home page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Fgetting_started_blog_starter-487dc220eee2e89bfc3afacffe353d06.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%2Fwww.omkar.cloud%2Fom-startup-framework%2Fassets%2Fimages%2Fgetting_started_blog_starter-487dc220eee2e89bfc3afacffe353d06.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  👨🏻‍💻 Pre-Requisite Knowledge
&lt;/h2&gt;

&lt;p&gt;To get the most out of our docs, it's recommended that you have a basic understanding of Next.js and Django.&lt;/p&gt;

&lt;p&gt;Given that you know React, If you are interested to learn Next.js and Django, these resources are Great Starting Point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt;: &lt;a href="https://nextjs.org/learn/foundations/about-nextjs" rel="noopener noreferrer"&gt;Next.js Documentation [Free]&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Django&lt;/strong&gt;: &lt;a href="https://www.youtube.com/watch?v=rHux0gMZ3Eg&amp;amp;pp=ygUMZGphbmdvIG1vc2gg" rel="noopener noreferrer"&gt;Mosh Hamedani Django Course [Paid]&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✨ Upcoming Features in V2
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Support for affiliate marketing [Priority]&lt;/li&gt;
&lt;li&gt;Port framework to SvelteKit, Nuxt.js, and Nest.js to increase reach [Priority]&lt;/li&gt;
&lt;li&gt;Analytics dashboard like Google Analytics&lt;/li&gt;
&lt;li&gt;Chat support&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📚 Summary
&lt;/h2&gt;

&lt;p&gt;Simply put, Om Startup Framework holds your hand, from authentication to deploying your app to the world&lt;/p&gt;

&lt;p&gt;If you want to save yourself months of development time, I highly encourage you to invest your time in learning about the Om Startup Framework by visiting &lt;a href="https://www.omkar.cloud/om-startup-framework/what-is-om-startup-framework/" rel="noopener noreferrer"&gt;this link&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;👋 Hi Reader, &lt;/p&gt;

&lt;p&gt;What do you think? Do you see the value of &lt;strong&gt;Om Startup Framework&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Share your thoughts in the comments and I will reply to every single comment.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>python</category>
    </item>
  </channel>
</rss>
