<?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: Pulkit Gupta</title>
    <description>The latest articles on DEV Community by Pulkit Gupta (@pulkit30).</description>
    <link>https://dev.to/pulkit30</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%2F732970%2F07b465f3-4913-40c8-bf43-b4c7ae2578f8.jpeg</url>
      <title>DEV Community: Pulkit Gupta</title>
      <link>https://dev.to/pulkit30</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pulkit30"/>
    <language>en</language>
    <item>
      <title>Building for Developers, Thinking Like a Product Engineer</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Thu, 08 May 2025 07:39:12 +0000</pubDate>
      <link>https://dev.to/pulkit30/building-for-developers-thinking-like-a-product-engineer-5445</link>
      <guid>https://dev.to/pulkit30/building-for-developers-thinking-like-a-product-engineer-5445</guid>
      <description>&lt;p&gt;&lt;em&gt;My journey at Atlan over the past year&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Over the last year, I’ve grown from writing frontend code to fully owning product features that power workspace onboarding workflows and infrastructure scale.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What I Work On
&lt;/h2&gt;

&lt;p&gt;At Atlan, I contribute to our &lt;strong&gt;Internal Developer Portal (IDP)&lt;/strong&gt; — a platform that helps onboard new customer workspaces, manage infrastructure at scale, and bring cost transparency across teams.&lt;/p&gt;

&lt;p&gt;This means building tools &lt;em&gt;for developers&lt;/em&gt; — and ensuring they’re reliable, scalable, and easy to use.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 From Engineer to Product Thinker
&lt;/h2&gt;

&lt;p&gt;What started as a frontend engineering role soon turned into something much bigger.&lt;/p&gt;

&lt;p&gt;I started picking up backend tickets. Then I started thinking about how features connect. Then I started owning entire problems end-to-end — and began thinking like a &lt;strong&gt;Product Engineer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It wasn’t just about building things.&lt;br&gt;&lt;br&gt;
It was about building the &lt;em&gt;right&lt;/em&gt; things.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Tech I Touched
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Daily Stack&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Go&lt;/code&gt; (Backend)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Vue.js&lt;/code&gt; (Frontend)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;PostgreSQL&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Docker&lt;/code&gt;, &lt;code&gt;Kubernetes&lt;/code&gt;, &lt;code&gt;Loft&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Argo CI/CD&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AWS Cloud Services&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🏆 Highlights from the Year
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;Reduced tenant onboarding time by 30%&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
By introducing QA automation in our developer onboarding workflow.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Built dynamic tenant scaling (Atlas)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Designed and delivered full-stack support for on-demand tenant scaling inside our IDP.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Improved cost transparency and infra scalability&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Always thinking about the bigger picture — not just building features, but building with intention.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What I Learned
&lt;/h2&gt;

&lt;p&gt;→ Real &lt;strong&gt;ownership&lt;/strong&gt; drives better outcomes&lt;br&gt;&lt;br&gt;
→ Collaboration is about &lt;strong&gt;alignment&lt;/strong&gt;, not just hand-offs&lt;br&gt;&lt;br&gt;
→ Writing good &lt;strong&gt;docs&lt;/strong&gt; is just as important as writing good code&lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 Looking Forward
&lt;/h2&gt;

&lt;p&gt;I’m still a Software Engineer by title, but I work and think like a &lt;strong&gt;Product Engineer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Next goals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📦 Deepen my product thinking
&lt;/li&gt;
&lt;li&gt;💬 Build with more user empathy
&lt;/li&gt;
&lt;li&gt;🛠️ Solve harder, more meaningful platform problems&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Let’s Connect
&lt;/h2&gt;

&lt;p&gt;If you’re building internal platforms, developer tools, or solving scale challenges, I’d love to hear from you.&lt;/p&gt;

&lt;p&gt;💬 &lt;a href="https://www.linkedin.com/in/pulkit30/" rel="noopener noreferrer"&gt;Drop me a message on LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
📁 &lt;a href="https://pulkits.me" rel="noopener noreferrer"&gt;Check out my portfolio&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Thanks for reading! And if you’ve walked a similar path, I would love to hear your learnings too.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>softwareengineering</category>
      <category>developer</category>
      <category>learning</category>
    </item>
    <item>
      <title>You're not in the right place if...</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Mon, 24 Jun 2024 14:54:05 +0000</pubDate>
      <link>https://dev.to/pulkit30/youre-not-in-the-right-place-if-34k6</link>
      <guid>https://dev.to/pulkit30/youre-not-in-the-right-place-if-34k6</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lack of Support from Management&lt;/strong&gt;:&lt;br&gt;
Your manager does not provide the necessary guidance or opportunities to help you grow professionally. Without their support, it becomes challenging to develop new skills or advance in your career.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Credit for Work Taken by Senior&lt;/strong&gt;:&lt;br&gt;
Your senior colleague often presents the work you have completed as their own, taking credit for your efforts and contributions. This undermines your achievements and can negatively impact your career progression.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Team Members Hindering Recognition&lt;/strong&gt;:&lt;br&gt;
Your team members actively prevent you from receiving the recognition you deserve for your hard work and accomplishments. This lack of acknowledgment can be demotivating and can affect your job satisfaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Insufficient Time for Task Completion&lt;/strong&gt;:&lt;br&gt;
You are not allocated enough time to complete tasks effectively, leading to rushed work and potentially lower-quality results. This can create stress and hinder your ability to perform to the best of your abilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lack of Team Cohesion&lt;/strong&gt;:&lt;br&gt;
Your team does not function cohesively and fails to work collaboratively. This lack of teamwork can lead to inefficiencies, misunderstandings, and a less productive work environment.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Anything I missed? Please mention that in the comments.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>engineer</category>
      <category>career</category>
      <category>job</category>
    </item>
    <item>
      <title>Polling in Vue.js</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Sun, 16 Jun 2024 09:35:59 +0000</pubDate>
      <link>https://dev.to/pulkit30/polling-in-vuejs-205j</link>
      <guid>https://dev.to/pulkit30/polling-in-vuejs-205j</guid>
      <description>&lt;p&gt;Designing a composable in Vue.js to continuously poll data after the "x" interval.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Polling?
&lt;/h3&gt;

&lt;p&gt;It is defined as the process when a client requests a particular piece of data at regular intervals (maybe every x seconds) and the server reverts with a usual response with the required data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.geeksforgeeks.org/polling-and-streaming-concept-scenarios/" rel="noopener noreferrer"&gt;read more&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Composable
&lt;/h3&gt;

&lt;p&gt;Let's write a composable &lt;code&gt;usePolling&lt;/code&gt; inside &lt;code&gt;src/composables/usePolling.ts&lt;/code&gt;&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;p&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;onMounted&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;onUnmounted&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;vue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;usePolling&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;timeInterval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;interval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;callMethod&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;isPolling&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;clear&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
    &lt;span class="nf"&gt;clearInterval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br&gt;
    &lt;span class="nx"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br&gt;
    &lt;span class="nx"&gt;isPolling&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fetchData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;poll&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
    &lt;span class="nx"&gt;callMethod&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;value&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;poll&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
      &lt;span class="c1"&gt;// start interval&lt;/span&gt;&lt;br&gt;
      &lt;span class="nx"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;setInterval&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
        &lt;span class="nx"&gt;callMethod&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;value&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br&gt;
      &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="nx"&gt;timeInterval&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
      &lt;span class="nf"&gt;clear&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;&lt;br&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
    &lt;span class="c1"&gt;// clear any existing polling calls&lt;/span&gt;&lt;br&gt;
    &lt;span class="nf"&gt;clear&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br&gt;
    &lt;span class="c1"&gt;// set polling flag to true&lt;/span&gt;&lt;br&gt;
    &lt;span class="nx"&gt;isPolling&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br&gt;
    &lt;span class="c1"&gt;// fetch data&lt;/span&gt;&lt;br&gt;
    &lt;span class="nf"&gt;fetchData&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="nf"&gt;onMounted&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;isPolling&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nf"&gt;fetchData&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="nf"&gt;onUnmounted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;clear&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
    &lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br&gt;
    &lt;span class="nx"&gt;clear&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;&lt;br&gt;
&lt;span class="p"&gt;};&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;usePolling&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Component:&lt;br&gt;
&lt;/h3&gt;

&lt;p&gt;Now, let's use this composable inside any component.&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;p&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt; &lt;span class="nx"&gt;setup&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;onMounted&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;vue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;usePolling&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;../composables/usePolling&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;apiCall&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;api call&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br&gt;
  &lt;span class="c1"&gt;// const response = await fetch("&lt;a href="https://jsonplaceholder.typicode.com/todos/1%22" rel="noopener noreferrer"&gt;https://jsonplaceholder.typicode.com/todos/1"&lt;/a&gt;);&lt;/span&gt;&lt;br&gt;
  &lt;span class="c1"&gt;// const data = await response.json();&lt;/span&gt;&lt;br&gt;
  &lt;span class="c1"&gt;// console.log(data);&lt;/span&gt;&lt;br&gt;
&lt;span class="p"&gt;};&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;clear&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;usePolling&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;apiCall&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="nf"&gt;onMounted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/script&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;br&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;template&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Hello&lt;/span&gt; &lt;span class="nx"&gt;world&lt;/span&gt;&lt;span class="o"&gt;!&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/template&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Console output:&lt;br&gt;
&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2uc3kqgnkui513hbfwhs.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2uc3kqgnkui513hbfwhs.gif" alt="output"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>vue</category>
    </item>
    <item>
      <title>Let's Explore React Together.</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Tue, 05 Sep 2023 11:00:37 +0000</pubDate>
      <link>https://dev.to/pulkit30/lets-explore-react-together-3he2</link>
      <guid>https://dev.to/pulkit30/lets-explore-react-together-3he2</guid>
      <description>&lt;h6&gt;
  
  
  Lets share our knowledge.
&lt;/h6&gt;

&lt;p&gt;Let's discuss about cool tricks and hacks you used in react. Or, anything you want to share (experience, learning) related to react.&lt;/p&gt;

&lt;p&gt;Feel free to use comment box to share your thoughts and experience. I will learn and explore them more.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>React.js Hooks: A Quick Guide</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Sat, 26 Aug 2023 12:30:35 +0000</pubDate>
      <link>https://dev.to/pulkit30/reactjs-hooks-a-quick-guide-1le2</link>
      <guid>https://dev.to/pulkit30/reactjs-hooks-a-quick-guide-1le2</guid>
      <description>&lt;p&gt;As developers, we're constantly looking for ways to build cleaner, more efficient, and more modular code. React, a popular JavaScript library for building user interfaces, has recently introduced a game-changing feature called Hooks. In this blog post, we'll dive into the world of React Hooks, understand their purpose, and learn how to use them with real-life examples. So, let's get hooked on Hooks!  &lt;/p&gt;

&lt;h4&gt;
  
  
  What are React Hooks?
&lt;/h4&gt;

&lt;p&gt;React Hooks are a set of functions that allow us to "hook" into React state and lifecycle features from function components. They were introduced in React 16.8 to enable developers to write cleaner and more reusable code by eliminating the need for classes and simplifying complex components. Some of the most common Hooks are useState, useEffect, and useContext.  &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;1. useState  *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The useState Hook allows us to add state to our functional components. It's a great replacement for the old setState method in class components.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&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="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;  
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;  
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;clicked&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;times&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&amp;gt; &lt;/span&gt;&lt;span class="err"&gt; 
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&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;span class="o"&gt;&amp;gt;&lt;/span&gt;  
        &lt;span class="nx"&gt;Click&lt;/span&gt; &lt;span class="nx"&gt;me&lt;/span&gt;  
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&amp;gt; &lt;/span&gt;&lt;span class="err"&gt; 
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt; &lt;/span&gt;&lt;span class="err"&gt; 
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;  
&lt;span class="p"&gt;}&lt;/span&gt;  

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In this example, we create a simple counter component. We use the useState Hook to initialize the count state variable to 0 and provide a setCount function to update the state. When the button is clicked, the setCount function is called to increment the count by 1.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. useEffect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The useEffect Hook allows us to perform side effects, like data fetching or updating the DOM, in our functional components. It replaces lifecycle methods like componentDidMount, componentDidUpdate, and componentWillUnmount.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;User&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setUser&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  

  &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fetchUser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`https://api.example.com/users/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;userData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  
      &lt;span class="nf"&gt;setUser&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userData&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
    &lt;span class="p"&gt;};&lt;/span&gt;  

    &lt;span class="nf"&gt;fetchUser&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;  

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;  
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;  
      &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&amp;gt; : &amp;lt;p&amp;gt;Loading...&amp;lt;/&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;  
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt; &lt;/span&gt;&lt;span class="err"&gt; 
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;  
&lt;span class="p"&gt;}&lt;/span&gt;  

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In this example, we create a User component that fetches a user's data based on their userId. We use the useEffect Hook to make an API call when the component mounts or when the userId changes. The useEffect Hook takes two arguments: a function to perform the side effect and an array of dependencies. In this case, the dependency is the userId.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. useContext&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The useContext Hook allows us to access the value of a given context without using the traditional Context.Consumer component. It simplifies the process of retrieving context values in our components.  &lt;/p&gt;

&lt;p&gt;Example:  &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ThemeContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./ThemeContext&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;ThemedButton&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;theme&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ThemeContext&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;  
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;background&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;foreground&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;  
      &lt;span class="nx"&gt;I&lt;/span&gt; &lt;span class="nx"&gt;am&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;themed&lt;/span&gt; &lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;  
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&amp;gt; &lt;/span&gt;&lt;span class="err"&gt; 
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;  
&lt;span class="p"&gt;}&lt;/span&gt;  

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;ThemedButton&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In this example, we create a ThemedButton component that uses the useContext Hook to access the theme values from a ThemeContext. We then apply the theme's background and foreground colors to the button's style.  &lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion:
&lt;/h4&gt;

&lt;p&gt;React Hooks have truly revolutionized the way we build modern web applications. By understanding and implementing Hooks like useState, useEffect, and useContext, we can write cleaner, more efficient, and more modular code. So go ahead, give Hooks a try, and watch our React development skills soar to new heights&lt;/p&gt;

&lt;p&gt;In Next Blog, I'll cover more hooks with proper examples. Stay tuned.&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Containerizing Next.js App with Docker: Quick Guide</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Tue, 22 Aug 2023 17:34:09 +0000</pubDate>
      <link>https://dev.to/pulkit30/containerizing-nextjs-app-with-docker-quick-guide-51ml</link>
      <guid>https://dev.to/pulkit30/containerizing-nextjs-app-with-docker-quick-guide-51ml</guid>
      <description>&lt;p&gt;Next.js is a powerful React framework that makes it easy to create server-rendered React applications with exceptional performance and user experience. However, deploying Next.js applications can be a bit challenging, especially when it comes to managing dependencies, configuring the environment, and ensuring consistent behavior across different platforms.&lt;/p&gt;

&lt;p&gt;This is where Docker comes in. Docker is an open-source platform that simplifies the process of building, deploying, and running applications in containers. By containerizing your Next.js app, you can streamline your deployment process, improve portability, and ensure that your app runs consistently across different environments.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;‣ To learn more about docker, read &lt;a href="https://dev.to/pulkit30/getting-started-with-docker-4b71"&gt;Getting Started With Docker&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In this blog post, we'll walk you through the process of containerizing your Next.js app using Docker. We'll start by discussing the benefits of using Docker with Next.js and then dive into the steps you need to take to get your app up and running in a Docker container.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Use Docker with Next.js?
&lt;/h3&gt;

&lt;p&gt;There are several reasons why you might want to consider containerizing your Next.js application with Docker:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Consistent behavior across environments&lt;/strong&gt;: Docker containers provide an isolated environment where your app runs, ensuring that it behaves consistently across different platforms and environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simplified dependency management&lt;/strong&gt;: By bundling all the dependencies your app needs within a Docker container, you eliminate the need to install and manage them manually on the host machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy deployment and scaling&lt;/strong&gt;: With Docker, you can easily deploy and scale your Next.js app to multiple instances, making it easier to handle traffic spikes and high availability requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portable and shareable&lt;/strong&gt;: Docker containers can be easily shared with others, making it easy for team members to collaborate on a project or deploy your app to different environments without the need for manual configuration.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Containerizing Your Next.js App: A Step-by-Step Guide
&lt;/h3&gt;

&lt;p&gt;To get started with containerizing your Next.js app, follow these steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Install Docker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before you can containerize your Next.js app, you need to have Docker installed on your machine. You can download the appropriate version of Docker for your operating system from the Docker website (&lt;a href="https://www.docker.com/products/docker-desktop" rel="noopener noreferrer"&gt;https://www.docker.com/products/docker-desktop&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Create a Dockerfile&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Dockerfile is a script that contains instructions for building a Docker image. It specifies the base image, dependencies, and configuration needed to run your Next.js app in a container.&lt;/p&gt;

&lt;p&gt;In your Next.js project's root folder, create a new file named Dockerfile with the following content:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

# Use the official Node.js image as the base  
FROM node:14  

# Set the working directory inside the container  
WORKDIR /app  

# Copy package.json and package-lock.json to the container  
COPY package*.json ./  

# Install dependencies  
RUN npm install  

# Copy the app source code to the container  
COPY . .  

# Build the Next.js app  
RUN npm run build  

# Expose the port the app will run on  
EXPOSE 3000  

# Start the app  
CMD ["npm", "start"]  


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This Dockerfile specifies that we'll be using the official Node.js image as our base and sets up a working directory inside the container. We then copy our package.json and package-lock.json files to the container and install the dependencies. Next, we copy the source code to the container and build the Next.js app. Finally, we expose port 3000 and start the app using npm start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Build the Docker Image&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the Dockerfile in place, you can now build the Docker image for your Next.js app. Run the following command in your project's root folder:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

docker build -t your-image-name .  


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Replace your-image-name with a name of your choice for the Docker image. This command will create a Docker image with your Next.js app and its dependencies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18965e9oodv0u8a4068d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18965e9oodv0u8a4068d.png" alt="docker-build"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;‣ To learn more about docker images, read &lt;a href="https://dev.to/pulkit30/docker-images-a-quick-guide-17pa"&gt;Docker Image: A Quick Guide&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Run the Docker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run Docker Image using the command given below:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

docker run --rm -p 3000:3000 --name &amp;lt;container-name&amp;gt; &amp;lt;image-name&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1xlui8jhhvt3kdhpyp0.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1xlui8jhhvt3kdhpyp0.gif" alt="docker-run"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎉 We have containerize out Next.js application &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Stop Docker Container&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To Stop running docker conatiner run the command below:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

docker stop &amp;lt;container-name&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jelux885stb7epnk2e9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jelux885stb7epnk2e9.png" alt="docker-stop"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎉 By this, we have successfully containerize our Next.js project using Docker 🚀.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhzp7j9lnesxyars5dir.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhzp7j9lnesxyars5dir.gif" alt="roll-in"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow for more.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>docker</category>
      <category>containers</category>
      <category>react</category>
    </item>
    <item>
      <title>Docker Images: A Quick Guide</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Mon, 23 Jan 2023 15:54:30 +0000</pubDate>
      <link>https://dev.to/pulkit30/docker-images-a-quick-guide-17pa</link>
      <guid>https://dev.to/pulkit30/docker-images-a-quick-guide-17pa</guid>
      <description>&lt;h2&gt;
  
  
  Docker Images
&lt;/h2&gt;

&lt;p&gt;Docker images are pre-built software packages that include all of the necessary files and dependencies to run a specific application or service. These images are stored in a registry, such as Docker Hub, and can be easily downloaded and used to create new containers. They are used to package and distribute software in a consistent and portable way, making it easy to deploy and run applications in different environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create Docker images
&lt;/h2&gt;

&lt;p&gt;We can create an image using a &lt;code&gt;Dockerfile&lt;/code&gt;. A &lt;code&gt;Dockerfile&lt;/code&gt; is a script that contains instructions on how to build your image.&lt;/p&gt;

&lt;p&gt;Here is the basic steps to create a Docker image:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new folder and navigate to it.&lt;/li&gt;
&lt;li&gt;Create a new file called &lt;code&gt;Dockerfile&lt;/code&gt; and open it in a text editor.&lt;/li&gt;
&lt;li&gt;Use the &lt;code&gt;FROM&lt;/code&gt; instruction to specify the base image that your image will be built on.&lt;/li&gt;
&lt;li&gt;Use the &lt;code&gt;RUN&lt;/code&gt; instruction to execute commands that will be run during the image build process.&lt;/li&gt;
&lt;li&gt;Use the &lt;code&gt;COPY&lt;/code&gt; instruction to copy files or folders from your host machine to the image.&lt;/li&gt;
&lt;li&gt;Use the &lt;code&gt;CMD&lt;/code&gt; instruction to specify the command that will be run when a container is created from the image.&lt;/li&gt;
&lt;li&gt;Save the &lt;code&gt;Dockerfile&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Open a terminal window and navigate to the folder where the &lt;code&gt;Dockerfile&lt;/code&gt; is located.&lt;/li&gt;
&lt;li&gt;Run the following command to build the image:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build -t my-image .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The -t flag is used to give the image a tag (name), in this case "my-image". The . at the end specifies the current directory as the build context.&lt;/p&gt;

&lt;p&gt;Once the image is built, you can run it using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -p 80:80 my-image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command runs the image and maps port 80 on the host to port 80 in the container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here is an example Dockerfile that creates an image with the latest version of Ubuntu and installs the Apache web server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM ubuntu:latest
RUN apt-get update &amp;amp;&amp;amp; apt-get install -y apache2
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To build the image, open a terminal window and navigate to the directory where the Dockerfile is located. Then run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build -t ubuntu-local .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, we will build a docker image for node.js application.&lt;br&gt;
Follow for more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jw480wejz2ddrk5q6vz.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jw480wejz2ddrk5q6vz.gif" width="400" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gratitude</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Getting started with Docker</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Fri, 20 Jan 2023 07:41:35 +0000</pubDate>
      <link>https://dev.to/pulkit30/getting-started-with-docker-4b71</link>
      <guid>https://dev.to/pulkit30/getting-started-with-docker-4b71</guid>
      <description>&lt;h2&gt;
  
  
  What is Docker?
&lt;/h2&gt;

&lt;p&gt;Docker is a platform for developing, shipping, and running applications in containers. Containers are lightweight, portable, and self-sufficient environments that allow developers to package an application with all its dependencies and run it consistently across different environments. Docker provides a command-line interface and API for managing and interacting with containers, as well as tools for building and distributing container images. It is widely used in the software development industry to improve the efficiency and consistency of the development and deployment process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why to use Docker?
&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%2Fuser-images.githubusercontent.com%2F76155456%2F213642263-276b9ed6-764c-4b82-8464-8ae4d04f4532.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%2Fuser-images.githubusercontent.com%2F76155456%2F213642263-276b9ed6-764c-4b82-8464-8ae4d04f4532.png" alt="banner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are several reasons why developers and organizations use Docker:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Consistency: Docker allows developers to package an application and its dependencies into a container, which ensures that the application runs consistently across different environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Isolation: Containers provide a level of isolation between the application and the host system, which can improve security and reduce conflicts between different applications running on the same machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Portability: Containers can be easily moved between different environments, such as from a developer's local machine to a staging or production environment, making it easier to manage the application's lifecycle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability: Docker allows you to easily run multiple instances of a container, which can be useful for scaling an application horizontally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resource Efficiency: Docker containers are lightweight, which means they use less resources than traditional virtual machines, making it easier to run multiple containers on a single machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microservices: Docker is widely used in microservices architecture, where each microservice runs in its own container, allowing for better isolation and scalability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Community: Docker has a large and active community, which means that there are many resources available for learning and troubleshooting.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What are Docker Images?
&lt;/h2&gt;

&lt;p&gt;Docker images are the building blocks of containers in Docker. An image is a lightweight, stand-alone, executable package that includes everything needed to run a piece of software, including the code, runtime, system tools, libraries, and settings.&lt;/p&gt;

&lt;p&gt;Images are created using the docker build command, which takes a Dockerfile as input. A Dockerfile is a script that contains instructions for building an image, such as specifying the base image, installing dependencies, and configuring the environment. Once an image is built, it can be run as a container using the docker run command.&lt;/p&gt;

&lt;p&gt;Docker images are stored in a registry, such as Docker Hub, which is a centralized repository for storing and distributing images. Developers can push their images to a registry and share them with others, or pull images from a registry to use in their own projects.&lt;/p&gt;

&lt;p&gt;Docker images are also layered. Each instruction in a Dockerfile creates a new image layer, and each layer is cached. It allows reusing the layer for multiple images. This means that if multiple images use the same base image, only one copy of the base image needs to be stored on the host. This makes images lightweight, and fast to transfer.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Docker Containers?
&lt;/h2&gt;

&lt;p&gt;Docker containers are the instances of Docker images. They are lightweight, standalone, and executable packages that include everything needed to run a piece of software, including the code, runtime, system tools, libraries, and settings.&lt;/p&gt;

&lt;p&gt;When you run a container, Docker creates a container object and starts the container process. The container process runs the application and its dependencies inside the container. Containers share the host system's kernel, but they have their own file system, network, and process space.&lt;/p&gt;

&lt;p&gt;You can start, stop, move, or delete a container using the docker command-line interface. Containers can also be managed using the Docker API and various tools that integrate with the API.&lt;/p&gt;

&lt;p&gt;Containers are isolated from each other and the host system, which means that they can't interfere with other containers or the host system, and vice versa. This isolation provides a level of security, and allows multiple containers to run on the same host without conflicts.&lt;/p&gt;

&lt;p&gt;Containers are also ephemeral, which means that they don't persist data or state. Any changes made to a container during its lifetime are lost when the container is deleted. To persist data, you can use Docker Volumes or bind-mounts to connect a container to a directory on the host system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9akcf7xzahyyqlylo33.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9akcf7xzahyyqlylo33.gif" alt="docker-gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This concludes our basic introduction to Docker. Up next, we'll look at how to install Docker on your machine and create a Docker image.&lt;/p&gt;

&lt;p&gt;Follow for more.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>Coding Period GSoC'22 | Week 10 + 11 + 12</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Thu, 08 Sep 2022 07:08:10 +0000</pubDate>
      <link>https://dev.to/pulkit30/coding-period-gsoc22-week-10-11-3ep8</link>
      <guid>https://dev.to/pulkit30/coding-period-gsoc22-week-10-11-3ep8</guid>
      <description>&lt;p&gt;I am sharing my progress for Weeks 10 and 11 in this blog.&lt;/p&gt;

&lt;h3&gt;
  
  
  Task Completed
&lt;/h3&gt;

&lt;p&gt;By now, we have completed following tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/CircuitVerse/CircuitVerse/tree/master/simulator/spec" rel="noopener noreferrer"&gt;Simulator Testing&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/CircuitVerse/CircuitVerse/tree/master/simulator/src/file" rel="noopener noreferrer"&gt;Importing and Exporting of CircuitFiles&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3236" rel="noopener noreferrer"&gt;Touch Compatibility&lt;/a&gt;.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbbj5o10scv2f3zsegtn8.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbbj5o10scv2f3zsegtn8.gif" alt="clapping-meme-gif" width="300" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Week In Review
&lt;/h3&gt;

&lt;p&gt;Completed &lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3236" rel="noopener noreferrer"&gt;Mobile Touch Compatibility&lt;/a&gt; task for simulator and finally got Pull Request merged in Primary codebase 🎉.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft96kjffc6qijba71604y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft96kjffc6qijba71604y.png" alt="Image description" width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we can simulate circuits from our mobile or tablet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytpbrqfp2qn5byfe0kk9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytpbrqfp2qn5byfe0kk9.jpg" alt="Mobile-view-simulator" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pull Requests&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3236" rel="noopener noreferrer"&gt;Touch compatibility || GSoC'21 + GSoC'22&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3272" rel="noopener noreferrer"&gt;hotfix: simulator mobile-UI for smaller devices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3268" rel="noopener noreferrer"&gt;feat: logic to toggle mobile view for simulator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Future Plan
&lt;/h3&gt;

&lt;p&gt;Currently, we are working on Custom Dialog Box task 🚀. Hopefully we will complete Custom Dialog task by next week 🥳.&lt;/p&gt;

&lt;p&gt;That's all for now; stay tuned for more updates😉.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank You&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>gsoc</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>career</category>
    </item>
    <item>
      <title>Coding Period GSoC'22 | Week 7 + 8 + 9</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Sat, 20 Aug 2022 15:34:20 +0000</pubDate>
      <link>https://dev.to/pulkit30/coding-period-gsoc22-week-7-8-9-2836</link>
      <guid>https://dev.to/pulkit30/coding-period-gsoc22-week-7-8-9-2836</guid>
      <description>&lt;p&gt;I will share my progress for Weeks 7, 8 and 9 in this blog.&lt;/p&gt;

&lt;h3&gt;
  
  
  Journey so far
&lt;/h3&gt;

&lt;p&gt;For me, GSoC'22 journey is going smoothly. Everything was easy to understand and my mentor helped me in every way possible. The community was a great support in the whole process. &lt;/p&gt;

&lt;p&gt;I also passed my &lt;a href="https://blog.circuitverse.org/posts/pulkitgupta_phase_1_report/" rel="noopener noreferrer"&gt;mid-term evaluation&lt;/a&gt; 🥳.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qz15leb9hygbyi5qual.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qz15leb9hygbyi5qual.gif" alt="success-meme-gif" width="356" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Completed Tasks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By now, we have completed &lt;code&gt;Simulator Testing&lt;/code&gt; and &lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3222" rel="noopener noreferrer"&gt;Importing and Exporting of circuit Files&lt;/a&gt; tasks and working on other tasks as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Future Plan
&lt;/h3&gt;

&lt;p&gt;We are working on Mobile Touch Compatibility Task and started working on Custom Dialog Box task 🚀. Hopefully we will complete Touch Compatibility Task by the next week 🥳.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pull Requests&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3236" rel="noopener noreferrer"&gt;Mobile Touch compatibility&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all for now; stay tuned for more updates😉.&lt;/p&gt;

&lt;p&gt;Thank You&lt;/p&gt;

</description>
      <category>gsoc</category>
      <category>opensource</category>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Coding Period GSoC'22 | Week 4 + 5</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Mon, 18 Jul 2022 12:03:54 +0000</pubDate>
      <link>https://dev.to/pulkit30/coding-period-gsoc22-week-4-5-4l6l</link>
      <guid>https://dev.to/pulkit30/coding-period-gsoc22-week-4-5-4l6l</guid>
      <description>&lt;p&gt;This blog is about my progress for week 4 and Week 5. I implemented the import and export of circuit-files and Mobile Touch Compatibility tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Work Done(Week 4 + Week 5)
&lt;/h2&gt;

&lt;p&gt;These two weeks were full of fun and learning new things. It began with the completion of the import and export of circuit-files task. In the fifth week of the coding period, I and &lt;a href="https://github.com/aman-singh7" rel="noopener noreferrer"&gt;Aman&lt;/a&gt; started working on the Mobile Touch Compatibility task. We also had a meeting with mentors to discuss about the Touch Compatibility task.&lt;/p&gt;

&lt;p&gt;Work Sample :&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/HrdA-dnsA5A"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Pull Requests&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3221" rel="noopener noreferrer"&gt;Added Tests for Force-Gate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3204" rel="noopener noreferrer"&gt;Fix: Testing of CombinationalCircuits on UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3236" rel="noopener noreferrer"&gt;Completed Mobile Touch compatibility&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Next...?
&lt;/h2&gt;

&lt;p&gt;We will complete the Mobile Touch Compatibility task and will fix the codeClimate issues .&lt;br&gt;
After completing the above tasks, we will start with my next task which is custom alert and prompt dialog boxes 🎉.&lt;/p&gt;

&lt;p&gt;That's all for now; stay tuned for more updates😉.&lt;/p&gt;

&lt;center&gt;

&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.gifer.com%2F6eZ.gif" width="800" height="400"&gt;

&lt;/center&gt;

</description>
      <category>gsoc</category>
      <category>productivity</category>
      <category>career</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Coding Period GSoC'22 | Week 2 + 3</title>
      <dc:creator>Pulkit Gupta</dc:creator>
      <pubDate>Sun, 03 Jul 2022 18:17:15 +0000</pubDate>
      <link>https://dev.to/pulkit30/coding-period-gsoc22-week-2-3-4dp3</link>
      <guid>https://dev.to/pulkit30/coding-period-gsoc22-week-2-3-4dp3</guid>
      <description>&lt;p&gt;These two weeks were full of fun and learning new things, it began with adding the tests for combinational analysis, bit converters, sub-circuits, and force gates in the second week.&lt;/p&gt;

&lt;p&gt;On Saturday, June 25th, we joined a weekly meeting in which all mentors and contributors participated. During this meeting, we contributors presented our work and received guidance from the mentors.&lt;/p&gt;

&lt;p&gt;As we entered the third week, me and my mentor decided to review our plans and to begin with the second task, which is the import and export of circuitFiles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Work done(Week 2 + Week 3)
&lt;/h2&gt;

&lt;p&gt;The second task, import &amp;amp; export of circuitFiles, is now being taken on, as the Simulator Testing task is almost finished 🎯 .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feb16fyn0xmieqywm23i0.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feb16fyn0xmieqywm23i0.gif" alt="minions-excited-gif" width="498" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link to Pull Request's&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3207" rel="noopener noreferrer"&gt;Added tests for bitConvertor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3204" rel="noopener noreferrer"&gt;Added tests for Combinational Analysis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3212" rel="noopener noreferrer"&gt;Added tests for subCircuits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3221" rel="noopener noreferrer"&gt;Added tests for Force-gate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CircuitVerse/CircuitVerse/pull/3222" rel="noopener noreferrer"&gt;Feat: Import and Export of CircuitFiles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Next...?
&lt;/h2&gt;

&lt;p&gt;We will focus on updating the documentation for simulator testing and completing the importing and exporting of circuitFiles during the next few weeks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Completion of Import and Export of CircuitFiles.&lt;/li&gt;
&lt;li&gt;Complete documentation stuff for Simulator Testing Part.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all for now; this series will go on.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>career</category>
      <category>gsoc22</category>
    </item>
  </channel>
</rss>
