<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Rutik Wankhade]]></title><description><![CDATA[Rutik Wankhade]]></description><link>https://blog.rutik.dev</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 05:39:15 GMT</lastBuildDate><atom:link href="https://blog.rutik.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Building a blog with the powers of headless hashnode]]></title><description><![CDATA[I have been using Hashnode since its early days. Over the years it has become my go-to platform for writing blogs because of its exceptional features. But this time around Hashnode took blogging to the next level by introducing Headless Hashnode. Whe...]]></description><link>https://blog.rutik.dev/building-a-blog-with-the-powers-of-headless-hashnode</link><guid isPermaLink="true">https://blog.rutik.dev/building-a-blog-with-the-powers-of-headless-hashnode</guid><category><![CDATA[HeadlessHashnode]]></category><category><![CDATA[HeadlessChallenge]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Tue, 31 Oct 2023 05:20:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1698730025885/db45fd7c-a09d-4e47-803d-c7fb54024a7d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have been using Hashnode since its early days. Over the years it has become my go-to platform for writing blogs because of its exceptional features. But this time around Hashnode took blogging to the next level by introducing <a target="_blank" href="https://hashnode.com/headless"><strong>Headless Hashnode</strong></a>. When it was announced that something new was cooking for Hashnode, I knew it would be something along the lines of customization and taking full control of the blogs. And it did not disappoint.</p>
<p>So I used this opportunity to build the blog, the way I wanted.</p>
<h3 id="heading-step-1-setting-up-the-blog">Step 1: Setting up the blog</h3>
<p>The good thing was that Hashnode already provided a blog <a target="_blank" href="https://github.com/hashnode/starter-kit">starter kit</a> which is integrated with hashnode APIs. That made the job easy as I didn't have to build it from scratch.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1698725930180/caec91f8-aca8-4834-8b8f-b10363169bee.png" alt class="image--center mx-auto" /></p>
<p>So I forked the blog starter kit repository, set environment variables and deployed it on vercel. I chose the enterprise theme.</p>
<p>I was building this blog for Tabwave and I already had a website deployed on the domain <a target="_blank" href="https://tabwave.app">tabwave.app</a>. Thanks to Hashnode now I can deploy my blog on my subpath like <a target="_blank" href="https://tabwave.app/blog">tabwave.app/blog</a></p>
<p>This is how you can configure it on your subpath if your main project is deployed on vercel.</p>
<pre><code class="lang-typescript"><span class="hljs-keyword">async</span> rewrites() {
    <span class="hljs-keyword">return</span> [
      {
        source: <span class="hljs-string">"/blog"</span>,
        destination: <span class="hljs-string">"https://starter-kit-rose-seven.vercel.app/blog"</span>, -&gt; Replace https:<span class="hljs-comment">//starter-kit-rose-seven.vercel.app with your own Vercel deployment URL from step 1</span>
      },
      {
        source: <span class="hljs-string">"/blog/:path*"</span>,
        destination: <span class="hljs-string">"https://starter-kit-rose-seven.vercel.app/blog/:path*"</span>, -&gt; Replace https:<span class="hljs-comment">//starter-kit-rose-seven.vercel.app with your own Vercel deployment URL from step 1</span>
      },
    ];
  },
</code></pre>
<p>You can read more about setting up your blog on the <a target="_blank" href="https://github.com/hashnode/starter-kit">started kit repo</a></p>
<p>Once it was deployed, I enabled the headless mode in my blog dashboard on Hashnode. And that's it. It started treating my blog as a headless blog and sent readers directly to the origin which is <a target="_blank" href="https://tabwave.app/blog">tabwave.app/blog</a></p>
<p><img src="https://media.tenor.com/LjZCITZUTGsAAAAd/did-you-see-how-fast-that-was-shane-luis.gif" alt="Did You See How Fast That Was Shane Luis GIF - Did You See How Fast That Was Shane Luis Rerez GIFs" /></p>
<h3 id="heading-step-2-personalize-the-blog">Step 2: Personalize the blog</h3>
<p>At this stage, the blog is live and running. It was mind-blowing to see it didn't even took me more than half an hour to set it up. Now that the blog is ready, it is time to customize it.</p>
<p>I started with the headers and footers first and then slowly built the blog cards. At first, I just made normal cards ui for blogs but then I got an idea. This was a blog for a productivity app, so why not make it look like that?</p>
<p>And I ended up making my blog cards look like simple handwritten sticky notes.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1698728027061/ad704f26-c744-4412-83c7-8015e0c9d4b3.png" alt class="image--center mx-auto" /></p>
<p>I customized everything else to match it with the theme of my website.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1698728334129/1a2fa518-baf5-4920-98da-051a98a5a966.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1698728806622/ca6852d0-ff60-4061-8015-d45ba239f418.png" alt class="image--center mx-auto" /></p>
<p>Having tags and their respective pages is very useful as I can put all the changelog on a single page.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1698728671072/2415a52c-4459-43d2-abab-3450b012dcfe.png" alt class="image--center mx-auto" /></p>
<p>And that's it. You can see my blog here at <a target="_blank" href="https://tabwave.app/blog">tabwave.app/blog</a></p>
<p>repository : <a target="_blank" href="https://github.com/rutikwankhade/tabwave-blog">https://github.com/rutikwankhade/tabwave-blog</a></p>
<p>Even I was surprised by how easy and fast it is to build a blog with headless hashnode. I believe it's gonna change the blogging space as it opens the countelss opportunities with it.</p>
<p>Now I can just use the powerful hashnode editors to write a blog any time and publish it. I hope this pushes me to write more often. Nevertheless, I had fun exploring headless hashnode and you should also give it a try.</p>
]]></content:encoded></item><item><title><![CDATA[Dev Retro 2022 - From feeling imposter  to feeling confident]]></title><description><![CDATA[2022 was a year full of learnings for me. It was about solving problems, lots of iterations, making solid fundamentals, and growing up as a person. Even though it feels like this year went really fast and I have a very vague memory of it, this is my ...]]></description><link>https://blog.rutik.dev/dev-retro-2022-from-feeling-imposter-to-feeling-confident</link><guid isPermaLink="true">https://blog.rutik.dev/dev-retro-2022-from-feeling-imposter-to-feeling-confident</guid><category><![CDATA[#DevRetro2022]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Wed, 04 Jan 2023 11:38:58 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1672832263166/e49284b2-0c08-4c1a-bfc9-8bb88422ea6c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>2022 was a year full of learnings for me. It was about solving problems, lots of iterations, making solid fundamentals, and growing up as a person. Even though it feels like this year went really fast and I have a very vague memory of it, this is my honest attempt to reflect on the year 2022.</p>
<h3 id="heading-launched-2-products-on-product-hunt">🚀 Launched 2 products on Product Hunt</h3>
<ul>
<li><p>My first open-source project <a target="_blank" href="https://coverview.vercel.app/">Coverview,</a> a tool to create cover images for blogs quickly and easily crossed <strong>500+ stars on GitHub</strong>. So I revamped it and added new features like more themes, fonts, custom icons, and Unsplash integration. And launched it on Product hunt. It was 🏆 <a target="_blank" href="https://www.producthunt.com/products/coverview#coverview-2"><strong>#1 Product of the day</strong></a></p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1672829234466/c35fae82-149d-459d-bc90-70c49b1db296.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
<ul>
<li><p>I also launched <a target="_blank" href="https://halfbakedideas.app">Halfbakedideas</a>, an app to share and vote half baked ideas on Product hunt. It was the 🏆 <strong>#2 Product of the day</strong>. More than 1000 people signed up and it has around 350+ half-baked ideas at the moment.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1672829267964/4af2b150-a1c3-403a-b9b2-0104e0a3e3ce.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
<h3 id="heading-hackathons-and-sprints">🏃‍♂️ Hackathons and sprints</h3>
<p>This year I participated in 3 hackathons.</p>
<ol>
<li><p><strong>Netlify x Hashnode hackathon -</strong> It was a 4-week-long hackathon. I built <a target="_blank" href="https://blog.rutikwankhade.dev/introducing-glimpse-a-readers-corner-to-discover-new-books">Glimpse</a>, an app to track and share about books. Out of 150+ submissions, My project was among the top 10 <a target="_blank" href="https://townhall.hashnode.com/netlify-x-hashnode-hackathon-winners?v=1">runners ups</a>.</p>
</li>
<li><p><strong>Hasura x Hashnode hackathon -</strong> It was also a 4-week-long hackathon. I built an API that gives bucket list ideas based on different categories. I learned about GraphQL and Hasura while building it. I wrote about the whole process <a target="_blank" href="https://blog.rutikwankhade.dev/building-a-bucket-list-ideas-api-with-hasura-and-graphql">here</a>. Also, you can play around with API at <a target="_blank" href="https://bucketlist-api-playground.vercel.app/">https://bucketlist-api-playground.vercel.app/</a></p>
</li>
<li><p><strong>PlanetScale x Hashnode hackathon -</strong> This was also a 4-week-long hackathon. Even though I didn't make it to the winners, this was the most fun I had in a hackathon. I built an app where we can share our half-baked ideas and vote for them. it's like bringing the internet's best half-baked ideas into one place.</p>
<p> Have a look at <a target="_blank" href="https://halfbakedideas.app">halfbakedideas.app</a> for some creative side project ideas.</p>
</li>
</ol>
<p>Building something from the scratch and turning an idea into a product was a thrilling experience. That's why I love hackathons the most. The deadline makes it more fun as it's like a sprint of building stuff. Also, I learned new technologies like Nextjs, Hasura, Planetscale, and more.</p>
<h3 id="heading-lots-of-rejections">🙇‍♂️ Lots of rejections</h3>
<p>Job search is hard. I applied and interviewed at a couple of companies but faced lots of rejections. It hurts more when you get the chance but you fail to grab it. But every rejection helped me to reflect on myself and see what mistakes I am doing. Every rejection was a lesson, a step towards being more confident.</p>
<h3 id="heading-am-i-an-imposter">👀 Am I an imposter?</h3>
<p>Even though I was learning and building stuff, I was feeling like an imposter. I had feelings of self-doubt all the time. And the harder I tried to hide it by constantly building new stuff, the worse it got. I knew something was missing. And I realized that my fundamentals are not strong. I only had enough knowledge to build stuff but there were missing gaps. That's what I was afraid of.</p>
<h3 id="heading-making-strong-fundamentals">💪 Making strong fundamentals</h3>
<p>The first step to solving a problem is to understand the problem. I started noting down the things I am bad at and the things that I need to improve on. Taking action was the second step.</p>
<p>So I decided to go back and work on making my fundamentals strong. I did not want to make the mistake of choosing so many resources and then giving up. So I just picked <a target="_blank" href="https://javascript.info/"><strong>JavaScript.info</strong></a> and started reading from scratch. Also took lots of handwritten notes in the process. That filled those gaps and I felt more confident about myself.</p>
<p>Next, I binge-watched the <a target="_blank" href="https://www.youtube.com/watch?v=pN6jk0uUrD8&amp;list=PLlasXeu85E9cQ32gLCvAvr9vNaUccPVNP"><strong>Namaste JavaScript</strong></a> playlist on youtube which helped me understand how things work under the hood in JavaScript.</p>
<p>The biggest lesson I learned in this process was I should <strong>focus more on the why and how</strong> of a topic than <strong>what</strong> while learning anything.</p>
<h3 id="heading-the-thing-about-confidence">🕊️ The thing about confidence</h3>
<p>I used to think I need to be confident to do a certain thing. Like, say I need to be confident to give interviews. But I was wrong. The first time we do anything will be uncomfortable. The next time we do it, it will get easier. Confidence doesn't come before the experience. We need to do the experience and then get confidence. So in this case, giving more and more interviews gives you confidence and not the other way. First comes action then confidence.</p>
<h3 id="heading-rebuilt-my-portfolio">🔮 Rebuilt my portfolio</h3>
<p>I had a personal website before but it wasn't ranking on google. So I decided to rebuild my portfolio website with Nextjs which improved the SEO drastically.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1672825020957/1efc75f8-536a-4b9e-b9dc-062f74f7611b.png" alt class="image--center mx-auto" /></p>
<p>It's built with Nextjs, tailwindCSS, and framer motion for tiny animations. It uses markdown files and contetlayer to create pages where I wrote full case studies of my projects. Have a look at <a target="_blank" href="https://rutikwankhade.dev">rutikwankhade.dev</a></p>
<h3 id="heading-personal-growth">🐣 Personal growth</h3>
<p>The other half of the I year when I understood the importance of physical and mental health. Most of the days were about sitting in one place in front of my laptop for long hours. And I didn't notice until my body started giving me signals.</p>
<p>So I joined the gym. I went and paid the next two months' fees beforehand. I call it <strong>deliberately pushing myself into commitments.</strong> Like if I wanted to start reading books, I would already buy 3-4 new books. If I want to learn something, I would buy an expensive course. And it works every time.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1672658658654/17160de4-31b0-48bc-9686-c44d7fac4716.png" alt class="image--center mx-auto" /></p>
<p>Out of all the books I read this year, I can't recommend "<strong>The courage to be disliked</strong>" enough. It's one of the best books I read that changed my perspective on life.</p>
<h5 id="heading-rediscovering-hobbies"><strong>Rediscovering hobbies</strong></h5>
<p>I bought a little pocket sketchbook, and some pens and started drawing again. I mostly draw cute characters but It's one of those activities that I enjoy doing.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1672669958741/f7c1ae81-88a9-4de7-8b20-239b77f4fa26.jpeg" alt class="image--center mx-auto" /></p>
<h3 id="heading-finally-launched-tabwave-v2">🎉 Finally launched Tabwave v2</h3>
<p>Tabwave has been my passion project for a long time. And now it has become even <em>more mindful and beautiful</em>. After lots of procrastination and the constant urge to make it perfect, I launched a new <a target="_blank" href="https://tabwave.app">Tabwave</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1672829310461/f6cd72ec-45c5-4708-b297-f02b5a16230a.png" alt class="image--center mx-auto" /></p>
<p>It has now a clean user interface and features like drag-and-drop, sort tasks, edit notes, access and search bookmarks, site blocking, and more. You can also use it at <a target="_blank" href="https://web.tabwave.app">web.tabwave.app</a></p>
<h3 id="heading-looking-forward">📅 Looking forward</h3>
<p>Last year I thought of doing so many things and didn't even start. But this year I want to focus on less stuff with more impact. This year I will write more. Regardless of what I do in 2023, I wish to keep on building. From getting crazy ideas to turning them into products, building cool things, and having fun.</p>
<p>Happy new year!</p>
]]></content:encoded></item><item><title><![CDATA[Say goodbye to boring new tabs]]></title><description><![CDATA[Finally, the wait is over. Last year I built and launched Tabwave, a mindful productivity chrome extension that replaces your browser's new tab. It has been my passion project for a long time. And now it has become even more mindful and beautiful.
Af...]]></description><link>https://blog.rutik.dev/say-goodbye-to-boring-new-tabs</link><guid isPermaLink="true">https://blog.rutik.dev/say-goodbye-to-boring-new-tabs</guid><category><![CDATA[Productivity]]></category><category><![CDATA[side project]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Sat, 24 Dec 2022 11:22:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1671879681433/541c6f4d-7bc0-48e2-8d3f-93317f84a32a.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Finally, the wait is over. Last year I built and launched <a target="_blank" href="https://tabwave.app">Tabwave</a>, a mindful productivity chrome extension that replaces your browser's new tab. It has been my passion project for a long time. And now it has become even more mindful and beautiful.</p>
<p>After lots of procrastination and the constant urge to make it perfect, Introducing the new <a target="_blank" href="https://tabwave.app"><strong>Tabwave</strong></a>.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/bL63Af6zQ-8">https://youtu.be/bL63Af6zQ-8</a></div>
<p> </p>
<p>✨ So what's new?</p>
<h3 id="heading-a-more-clean-and-beautiful-user-interface"><strong>A more clean and beautiful user interface</strong></h3>
<p>I have always tried to make Tabwave look good. The first version needed lots of fine-tuning and polishing. Over time I got better at understanding UI and wanted to reflect it in Tabwave.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671879712356/f1c2e251-250d-47e9-a3ee-4d910615ddf6.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-drag-and-drop-tasks"><strong>Drag and drop tasks</strong></h3>
<p>This was one of the most requested features. So now you can drag and drop your tasks to mark them as completed. Also, you can sort tasks based on your priority.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671879789623/1f748651-9dfa-46a8-9afa-38460770a17b.png" alt class="image--center mx-auto" /></p>
<p>It also shows the percentage of your finished tasks that will motivate you to get things done.</p>
<h3 id="heading-notes-are-now-editable"><strong>Notes are now editable</strong></h3>
<p>With Tabwave, you can create short notes to map down your ideas. And now you can even edit them.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671879917684/6ff81992-ce78-44f4-adaa-5af49a2271a5.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671879944012/ebb0cbf5-08be-4c75-9ec7-8f8bbd9a2249.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-pomodoro-radial-timer-and-settings"><strong>Pomodoro radial timer and settings</strong></h3>
<p>I love the Pomodoro technique so this is the most improved feature of Tabwave. Now it shows an interactive radial timer to display the progress.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671880073866/dcca8597-0b38-4389-b4ac-7b8d736d4338.png" alt class="image--center mx-auto" /></p>
<p>More settings for your pomodoro sessions</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671880096202/313f7a19-acd1-4351-a549-7f1d7f9e7d82.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-notifications"><strong>Notifications</strong></h3>
<p>Earlier when the session ends, a notification sound and a popup in the background were the only way to notify. But now the pomodoro clock has an in-built notification system. You will get notified about the sessions even if you are not on the chrome browser.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671880167496/71bc8d5a-1b61-4fd4-8f5f-d7b6967cff05.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-block-distractions"><strong>Block distractions</strong></h3>
<p><strong><em>Mindfulness is the basic human ability to be fully present, and aware of where we are and what we're doing.</em></strong></p>
<p>To help you be more mindful, now you can block websites that distract you so you can focus on your work/study. Just add those sites in the mindful tab and switch to mindful mode. Now every time you will visit that site, it will redirect you to the mindful page and remind you to focus.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671880351005/f92809ae-b9ab-4fd4-9e0d-675922c19b08.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-bookmarks"><strong>Bookmarks</strong></h3>
<p>Tabwave has now superpowers to make it a bit easier to access or search bookmarks with one click.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671880496997/552bb379-fb3e-4c02-8b1e-5ffefb80cc8e.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-a-better-dark-mode"><strong>A better dark mode</strong></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671880520066/1b1b64c5-ecf9-414c-839e-39f149116a30.png" alt class="image--center mx-auto" /></p>
<p>Also fixed a lot of bugs. The new Tabwave has a slick design, smooth animations, and cool features to help you be mindful and productive.</p>
<p>👉 <a target="_blank" href="https://tabwave.app">https://tabwave.app</a></p>
<blockquote>
<p>Note: <em>If you had already installed tabwave before, it might have been disabled because of chrome’s new policy. You can go to</em> <strong><em>chrome://extensions/</em></strong> <em>and enable it. or</em> <strong><em>reinstall it</em></strong> <em>to use the new version.</em></p>
</blockquote>
<hr />
<h3 id="heading-you-can-help-me-create-tabwave-better"><strong>You can help me create Tabwave better</strong></h3>
<p>If you have any ideas or feature requests, you can submit them <a target="_blank" href="https://tally.so/r/wA77XW"><strong>here</strong></a> or reach out to me on <a target="_blank" href="https://twitter.com/WankhadeRutik"><strong>twitter</strong></a> I will closely listen to what the users want and try to make Tabwave as good as can.</p>
<p>If you loved this new version, I would really appreciate it if you could <a target="_blank" href="https://chrome.google.com/webstore/detail/tabwave/kilclhheeidneiiiaeggbadgommkdhbc"><strong>write a review</strong></a> on the chrome web store. That would mean the world to me.</p>
]]></content:encoded></item><item><title><![CDATA[A beginner's guide to server-side rendering]]></title><description><![CDATA[The modern web has evolved over the years with new tools and technologies. We are introduced to new approaches to rendering websites and apps. With the rise of frameworks like NextJs and Remix, SSR has gained a lot of popularity in the last few years...]]></description><link>https://blog.rutik.dev/a-beginners-guide-to-server-side-rendering</link><guid isPermaLink="true">https://blog.rutik.dev/a-beginners-guide-to-server-side-rendering</guid><category><![CDATA[SSR]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[Web Development]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Fri, 16 Dec 2022 06:16:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1671171361588/M8Lrl3XtE.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The modern web has evolved over the years with new tools and technologies. We are introduced to new approaches to rendering websites and apps. With the rise of frameworks like NextJs and Remix, SSR has gained a lot of popularity in the last few years. i.e Server-side rendering. In this article, you will learn about what is SSR, how it works, and why you should care about it. So let's dive into it.</p>
<p>But before that let's understand what <strong>rendering</strong> means.</p>
<h3 id="heading-rendering-on-the-web">🎨 Rendering on the Web</h3>
<p>In simple terms, rendering is a process of converting your code into something that users can see or interact with.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1663605459915/tYjpKn6Uo.png" alt="rendering-diagram.png" /></p>
<p>When you go to a website, the browser requests an HTML document from a server. The server returns the required file with all the linked resources. <em>Rendering is the process that combines all those resources to create a user interface in the browser.</em> Under the hood, it involves a lot of steps like parsing, building the DOM tree, CSSOM, Js compilation, painting, etc. You can read about it in detail <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work">here</a>.</p>
<h3 id="heading-client-side-rendering">💻 Client-side rendering</h3>
<p>To understand SSR well, let's have a quick look at Client side rendering first.</p>
<blockquote>
<p>Client-side rendering means rendering pages directly in the browser. All logic, data fetching, templating, and routing are handled on the client rather than the server.</p>
</blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1663608674025/UDP5Penqe.png" alt="csr-111.png" class="image--center mx-auto" /></p>
<p>If you ever used react before, you might have noticed that the HTML file does not have any other content than a root <code>div</code>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671173052823/n2qw2hBwd.png" alt class="image--center mx-auto" /></p>
<p>That's because React does the rendering on the client side. Once the bundled Js file is downloaded, it renders the website in the browser.</p>
<p>But as the application grows, the JavaScript required tends to grow as well resulting in more load time. Although, these can be fixed with techniques like code splitting and lazy loading. SSR solves this problem. Server-side rendering is a tool that can help you load your websites faster.</p>
<h2 id="heading-so-what-is-server-side-rendering">💡So what is Server side rendering?</h2>
<p>SSR is one of the types of <strong>pre-rendering</strong>. Pre-rendering means the HTML is generated in advance, on a server, instead of having it all done by JavaScript on the user's device.</p>
<p>Server-Side Rendering renders the web pages on the server and then sends HTML files to the browser.</p>
<h3 id="heading-how-it-works">🪄 How it works</h3>
<p>When a user visits a website, the server builds the webpage and sends a ready-made HTML file to the browser. All the processes like data fetching and templating are done on the server side before sending the response. The initial request loads the content as well. And the user interface is created.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1663608684274/TbaLFrnLA.png" alt="ssr-111.png" class="image--center mx-auto" /></p>
<p>After that React makes the components interactive (for example, attaching an event handler to a button). This process is also called <strong>hydration</strong>. In this way SSR lets users see the webpage before the JavaScript bundle loads and runs at the user end.</p>
<h2 id="heading-pros-of-ssr">👍 Pros of SSR</h2>
<ul>
<li><p>Since a ready-made HTML is provided to the browser, It makes the initial load of the pages faster.</p>
</li>
<li><p>Server-side rendering is great for SEO. Your content is present before you get it. So search engines can index it and crawl it efficiently.</p>
</li>
<li><p>your site will be ranked higher in the search results if it is rendered on the server side. Google gives preferential search rankings to the sites with the fastest page load speed.</p>
</li>
<li><p>Fast-loading websites improve the user experience. Even if the user is running a slow internet connection or if the javascript is disabled on the browser, the application can be loaded.</p>
</li>
</ul>
<h2 id="heading-cons-of-ssr">👎 Cons of SSR</h2>
<ul>
<li><p>You're generally processing/rebuilding the same application multiple times - once on the client and once on the server. It can be costly and resource-intensive.</p>
</li>
<li><p>With server-side rendering, the browser displays the web page faster, but it still needs time to make it interactive. As a result, the app looks ready for interaction while the code is still being processed in the background. If the user tries to interact with the app during this period, there can be a delay in the browser’s response.</p>
</li>
<li><p>When the number of visitors increases on your site, with each user accessing a new page, it has to send a server request every time. Resulting in higher server costs.</p>
</li>
</ul>
<h2 id="heading-conclusion">🎯 Conclusion</h2>
<p>Overall, server-side rendering has a good impact on SEO and performance. But CSR and SSR are not all black and white. Both have their pros and cons. And there are also hybrid options available that ensure the very first rendering of any page will happen from the server side only for the first time. Then all subsequent page requests will be CSR.</p>
<p>So when it comes to what should I choose, it mostly depends on the use case that fits your project.</p>
<h3 id="heading-further-reading">📖 Further reading</h3>
<ul>
<li><p><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work">https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work</a></p>
</li>
<li><p><a target="_blank" href="https://web.dev/rendering-on-the-web/">https://web.dev/rendering-on-the-web/</a></p>
</li>
<li><p><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Learn/Server-side/First_steps/Introduction">https://developer.mozilla.org/en-US/docs/Learn/Server-side/First_steps/Introduction</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[I built an app to crowdsource  internet's best side project ideas]]></title><description><![CDATA[If you are following me for a while you know I love building side projects. And every time I decided to build one, I didn't know how it will turn out in the end.  But one thing is for sure, it all started with a half-baked idea.
half baked idea? what...]]></description><link>https://blog.rutik.dev/i-built-an-app-to-crowdsource-internets-best-side-project-ideas</link><guid isPermaLink="true">https://blog.rutik.dev/i-built-an-app-to-crowdsource-internets-best-side-project-ideas</guid><category><![CDATA[PlanetScaleHackathon]]></category><category><![CDATA[PlanetScale]]></category><category><![CDATA[side project]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Mon, 01 Aug 2022 05:10:54 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1674727210328/ce61c86e-e00b-4e5e-8a75-ade5ad161cfa.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you are following me for a while you know I love building side projects. And every time I decided to build one, I didn't know how it will turn out in the end.  But one thing is for sure, it all started with a <strong>half-baked idea</strong>.</p>
<p>half baked idea? what's that?
Well, this little conversation with Joe (<em>my imaginary friend who is always hungry</em>) might add some light to it.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659295683677/sk5-jd0aM.png" alt="halfbaked.png" class="image--center mx-auto" /></p>
<p>Like when I thought, what if I could replace my browser's new tab with a productivity app, I built <a target="_blank" href="https://tabwave.app">Tabwave</a>. What if I could reduce the hefty process of designing cover images and make it quick and easy, <a target="_blank" href="https://coverview.vercel.app">Coverview</a> was born. </p>
<p>You see the pattern right?</p>
<h2 id="heading-the-idea-of-half-baked-idea">💡 The idea of half baked idea</h2>
<ul>
<li><p>When makers build products they usually launch them on a product hunt. But what if we could validate the idea before you spend hours building it?</p>
</li>
<li><p>Most of us come up with half-baked ideas but don't have the tools, resources, or time to build them. What if we could just share the ideas with the world and let others make it?</p>
</li>
<li><p>After participating in multiple hackathons, at some point, we are running out of ideas. What if there was a place we could get some ideas from?</p>
</li>
</ul>
<p>And so I decided to build an app where we can share our half-baked ideas and vote for them. it's like bringing the internet's best half-baked ideas into one place.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659320079922/rrNSQbt9K.gif" alt="hero.gif" class="image--center mx-auto" /></p>
<h2 id="heading-the-baking-making-process">🍪 The baking/ making process</h2>
<p>Once I decided on the idea it was time to bake it. Oh sorry, make it. While building the app, I made various decisions on the approach or the tools I used which I will talk about as we move forward.</p>
<h3 id="heading-explain-like-i-am-5">👶 Explain like I am 5</h3>
<p>While writing about the copy on the landing page, I wanted to try something different. So I started writing it like users are talking to me and I am explaining it to them. This gave me an idea of making up Joe (yup, the same one we talked with earlier). So I made it like I am explaining to Joe what's this app about like he is 5.</p>
<h3 id="heading-the-user-interface">🎨 The user interface</h3>
<p>I used <strong>Nextjs</strong> for building and <strong>TailwindCSS</strong> along with <strong>headlessUI</strong> for styling the app.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659326200371/9ViBmBN3r.webp" alt="hero.webp" /></p>
<h3 id="heading-authentication">✅ Authentication</h3>
<p>I tried three different approaches for this one. Let me explain.</p>
<h4 id="heading-1-no-account-needed">1. No account needed</h4>
<p>The app was focusing on crowdsourcing the data, so I thought not to make users log in or signup. Anyone can come up and shoot their ideas. </p>
<p>But there was a problem with this approach. If you give internet options to mess up with your site anonymously, there is a high chance they will. So it might end up with a lot of spam ideas. And I really wanted it to be a genuine source of ideas. Also, making a user profile was on my roadmap so I skipped this.</p>
<h4 id="heading-2-account-needed-only-to-interact">2.  Account needed only to interact</h4>
<p>The second approach was to let everyone see the content and requires login only if they want to post or vote for any idea. </p>
<p>I implemented this approach and added analytics on site to see how it performs. After 6-8 hours of the launch (on Reddit and Producthunt) and 1k+ page views, I realized only 1-2% of the visiting users are interacting with the app. Why bother signing up when you can see the posts right? And that was the problem. In the initial phase, the app needed ideas to be submitted or voted on. The main goal was to crowdsource ideas and not just the views. So I switched to the next approach.</p>
<h4 id="heading-3-need-to-sign-up">3. Need to sign up</h4>
<p>Users will need to signup to see all the posts or vote for them. I compared the data and I saw a good (10-15%) improvement in the interaction. After enough ideas get added on site I can switch back to the previous approach. I was using Nextjs so <strong>next-auth</strong> was an obvious choice for me. I only kept google login to make it quick.</p>
<h3 id="heading-planetscale-and-prisma">🪄 Planetscale and Prisma</h3>
<p><strong>PlanetScale</strong> being the <em>most scalable MySQL platform</em> was my obvious database choice. Tagging along with <strong>Prisma</strong> made it a perfect combination.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659327147405/_GPCOCmsv.png" alt="+sds.png" /></p>
<p>Getting started with PlanetScale was as easy as it could be. The default free developer plan has 5 GB storage,1 billion row reads/mo and 10 million row writes/mo which is pretty great for your hobby projects. Also, I liked the idea of branching &amp; merging like Git at the database level.</p>
<p>It introduced me to Prisma (ORM) (object-relational mapper) which I used to create schema and send queries to the database.</p>
<h2 id="heading-how-does-it-work">👀 How does it work?</h2>
<h4 id="heading-sharing-ideas">Sharing ideas</h4>
<p>Users can share their half-baked ideas. I know it's hard to come up with ideas, so added a few tips on the side.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659349735781/G5hP02YnP.png" alt="brandbird (15).png" /></p>
<h4 id="heading-upvoting-ideas">Upvoting ideas</h4>
<p>I considered two ways to validate the half-baked ideas. If someone builds a product out of this half-baked idea, would you use it? or would you pay for it to use? This way makers can get validated ideas and won't end up building something no one would use.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659329687799/LpLWNXAqe.png" alt="brandbird (13).png" class="image--center mx-auto" /></p>
<h4 id="heading-filter-and-sort-ideas">Filter and sort ideas</h4>
<p>You can sort ideas based on the ✨ latest, 🙋 I would use it and 💸 take my money. Also, You can filter by different categories like social, productivity, health, etc.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659329533062/_UaV0SY6a.png" alt="brandbird (12).png" class="image--center mx-auto" /></p>
<h4 id="heading-user-profile">User Profile</h4>
<p>You can see all the half-baked ideas shared by a user on their profile. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659328924039/K9f_uqNjq.png" alt="brandbird (11).png" class="image--center mx-auto" /></p>
<p>User profiles are public and can be accessed with a link.  So I added a popup when unauthenticated users try to react to the posts.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659333051837/bHU2cES6c.png" alt="brandbird (14).png" class="image--center mx-auto" /></p>
<h2 id="heading-links">🔗 Links</h2>
<ul>
<li>Demo : <a target="_blank" href="https://halfbakedideas.vercel.app">https://halfbakedideas.vercel.app</a></li>
<li>Github: <a target="_blank" href="https://github.com/rutikwankhade/halfbakedideas">https://github.com/rutikwankhade/halfbakedideas</a></li>
</ul>
<p><em>update day 2</em></p>
<h2 id="heading-stats-after-48-hours">📈 Stats after 48 hours</h2>
<p>The simple idea of sharing half-baked ideas got a great response from the internet. I shared it on Reddit, Twitter and launched it on Product hunt. Here's what happened in the next 48 hours.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659428074717/qCI6IY2BH.png" alt="halfbakedideas-vercel-app-‒-Dashboard-‒-Pirsch-Analytics (5).png" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659428939744/UTosFipa0.png" alt="ph launch.png" />
<strong>3.8k unique visitors</strong> , <strong>8k page views</strong> , <strong>800+ sign-ups</strong> and so many creative ideas!</p>
<p><em>update day 4</em></p>
<p>Now, this is getting wild. 200+ half baked ideas and I am amazed by how creative people can get while coming up with ideas.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659591229447/IR93JDRYP.png" alt="halfbakedideas-vercel-app-‒-Dashboard-‒-Pirsch-Analytics (8).png" /></p>
<p>And then this happened!</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1659610355815/sw_s4Teu1Q.jpg" alt="FZT0W14WQAAee-k (1).jpg" /></p>
<h2 id="heading-whats-next">🔮 What's next?</h2>
<p>This was fun, not just the building part but writing about the whole process. It was just a half-baked idea. There is a lot more I can do to make it better. And I am already getting feature requests from the users. for ex. discussions. I want to continue working on it.</p>
<p>What are you waiting for? Go visit <a target="_blank" href="https://halfbakedideas.vercel.app">halfbakedideas.vercel.app</a> and check out cool half-baked ideas shared by the internet. And if you have one, don't forget to share it with the world.</p>
<p>Cheers!</p>
]]></content:encoded></item><item><title><![CDATA[Building a bucket list ideas API with Hasura and GraphQL]]></title><description><![CDATA[Did you know you can create GraphQL APIs within minutes without writing a single line of code? Well, I didn't. Thanks to the Hasura X Hashnode hackathon. Now I know and so you will.
Hi there, In this blog post I will talk about why and how I built a ...]]></description><link>https://blog.rutik.dev/building-a-bucket-list-ideas-api-with-hasura-and-graphql</link><guid isPermaLink="true">https://blog.rutik.dev/building-a-bucket-list-ideas-api-with-hasura-and-graphql</guid><category><![CDATA[Hasura Hackathon]]></category><category><![CDATA[Hasura]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Fri, 01 Apr 2022 06:29:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1648812415238/EsMz0eqP9.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Did you know you can create GraphQL APIs within minutes without writing a single line of code? Well, I didn't. Thanks to the <strong><a target="_blank" href="https://townhall.hashnode.com/hasura-hackathon">Hasura X Hashnode hackathon</a></strong>. Now I know and so you will.</p>
<p>Hi there, In this blog post I will talk about why and how I built a public API for my open-sourced side project with GraphQL and Hasura. </p>
<h2 id="heading-a-little-backstory">🗺️ A little backstory</h2>
<p>When I was in college, I wanted to do lots of stuff outside my studies and college life. I wanted to explore more and try different things out. Things that I didn't even imagine I would ever be able to do. So I started researching and found out about the thing called <strong>bucket list</strong>.</p>
<blockquote>
<p>I loved the idea of the bucket list. It's like a number of experiences or achievements that a person hopes to accomplish during their lifetime.</p>
</blockquote>
<p>So I created my own bucket list which had around 20 things. And I am so glad that I was able to cross a few items from my bucket list. Like Solving a Rubik's cube, meeting my favorite Indian author, or visiting Marine Drive, Mumbai.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1648733995627/PprV7uXC9A.png" alt="bucket-list.png" /></p>
<h2 id="heading-so-whats-the-deal">👀 So what's the deal?</h2>
<p>Okay, we got it Rutik, enough with the story. How is it relative here? </p>
<p>So a few months back I actually built a bucket list app for myself. I was trying out different tech stacks and thought of building <strong><a target="_blank" href="https://bucket.vercel.app">bucket</a></strong>, an app to create and track my bucket lists again. But this time digitally. Now I do realize every other side project I built is somehow a solution for my own real problems.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1648808601392/MS3xz2fOY.png" alt="bucketapp demo.png" /></p>
<p>It was nothing complex. Just a simple todo like app disguised as a bucket list app. It's built with React, TailwindCSS, and Firebase.</p>
<h2 id="heading-the-problem">💡 The problem</h2>
<p> When Hashnode announced the Hasura hackathon, I started brainstorming ideas to build something. And I realized one of the pain points I had in my side project. While creating my own bucket list, I was running out of ideas. And I wished there was an API that gives a bucket list idea. Unfortunately, I couldn't find any good. </p>
<p>So what would a developer like me do? I built one. </p>
<h2 id="heading-hasura-and-graphql">🛠️ Hasura and GraphQL</h2>
<p>So one weekend I started learning about Hasura and GraphQL. I have used GraphQL APIs before but never built one. And I was blown away by the fact that one can build APIs without much prior knowledge of the technology.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1648738228698/d0QAJk11Z.png" alt="Hasura.png" /></p>
<p><a target="_blank" href="https://hasura.io/">Hasura</a> is an open-source project that connects your databases and instantly gives you a production-ready GraphQL API. It really does what it says. While the main idea of <a target="_blank" href="https://graphql.org/">GraphQL</a> is to POST a <code>query</code> to an HTTP endpoint, instead of hitting different HTTP endpoints for different resources.</p>
<p>I loved how It takes no time to get started. You don't have to go through hours of tutorials to build something with Hasura. To be honest, building APIs with Hasura seems like ✨ magic.</p>
<h2 id="heading-building-the-api">🤖 Building the API</h2>
<ul>
<li>After signing up for the Hasura Cloud, created a new project for building API. We can either connect an existing database or create a new one. I created a new Postgres database by connecting with <strong>Heroku</strong>. </li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1648739756972/v1k9OnUMd.png" alt="database.png" /></p>
<ul>
<li>Now the first step was to create a table by adding the required columns. For the bucket list API, I added <code>id</code>, <code>idea</code>, and <code>category</code> columns respectively.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1648740139405/ISUaUXzzq.png" alt="table-craetion.png" /></p>
<ul>
<li>After adding some data to the database manually, we are all set to use the API. Hasura cloud provides an integrated GraphQL playground called GraphiQL where we can run queries and test our API.</li>
</ul>
<p>Here is a simple query that gives bucket list ideas with category creative</p>
<pre><code><span class="hljs-selector-tag">query</span> <span class="hljs-selector-tag">MyQuery</span> {
  <span class="hljs-selector-tag">ideas</span>(<span class="hljs-attribute">where</span>: {<span class="hljs-attribute">category</span>: {<span class="hljs-attribute">_eq</span>: <span class="hljs-string">"creative"</span>}}) {
    <span class="hljs-selector-tag">id</span>,
    <span class="hljs-selector-tag">idea</span>
  }
}
</code></pre><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1648740466987/-1uqSvYO2.png" alt="graphi.png" /></p>
<p>And that's it. Without writing a single line of code, I built the API in no time.</p>
<h2 id="heading-challenges">📍 Challenges</h2>
<ul>
<li><p>Once I built the API, I was able to use it in the GraphiQL playground but it still wasn't accessible to the public. After reading some docs I figured out that using the <code>HASURA_GRAPHQL_UNAUTHORIZED_ROLE</code> env variables and user roles.</p>
</li>
<li><p>Also to test and try out the API one could use the GraphQL playground. But to make things easier and reduce the step of copy-pasting the endpoint and all, I deployed the integrated playground using graphql-playground-react.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1648793705139/MKDI70qZ2.png" alt="api playground.png" /></p>
<p>Demo:  <a target="_blank" href="https://bucketlist-api-playground.vercel.app/">https://bucketlist-api-playground.vercel.app/</a></p>
<p>Code:  <a target="_blank" href="https://github.com/rutikwankhade/bucketlist-api-playground">https://github.com/rutikwankhade/bucketlist-api-playground</a></p>
<h2 id="heading-using-the-api">🚀 Using the API</h2>
<p>Here comes the good part. Now I integrated this bucket list API in my side project that suggests different bucket list ideas based on different categories.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1648741117760/ArPHrjjYw.png" alt="bucket-explore-ideas.png" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1648741141533/bC3UeLaDF.png" alt="list.png" /></p>
<p>You can try it out here <a target="_blank" href="https://bucket.vercel.app/explore-ideas">https://bucket.vercel.app/explore-ideas</a></p>
<h2 id="heading-wrapping-up">✨ Wrapping up</h2>
<p>It was fun implementing this simple application in my side project. I am definitely going to learn more about GraphQL and Hasura after this. This is my submission for the <a target="_blank" href="https://hashnode.com/n/hasurahackathon">Hasura Hackathon</a>. See you next time.</p>
]]></content:encoded></item><item><title><![CDATA[Introducing glimpse, a reader's corner to discover new books]]></title><description><![CDATA[Are you an avid reader? Do you wish to have an online catalog of the books you read and want to read? Do you feel that the readers deserve a better alternative to GoodReads? one with a good user experience? Well, Your wish is granted!
Introducing Gli...]]></description><link>https://blog.rutik.dev/introducing-glimpse-a-readers-corner-to-discover-new-books</link><guid isPermaLink="true">https://blog.rutik.dev/introducing-glimpse-a-readers-corner-to-discover-new-books</guid><category><![CDATA[Netlify]]></category><category><![CDATA[NetlifyHackathon]]></category><category><![CDATA[side project]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Tue, 01 Mar 2022 06:36:18 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1646116490256/kM4tbGevk.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Are you an avid reader? Do you wish to have an online catalog of the books you read and want to read? Do you feel that the readers deserve a better alternative to GoodReads? one with a good user experience? Well, Your wish is granted!</p>
<p>Introducing <strong>Glimpse</strong>, a reader's corner to discover new books.</p>
<h2 id="heading-motivation">🏃 Motivation</h2>
<p>Reading is one of the few things that I enjoy outside work life. I read a lot. I mean when Emilia Clarke once quoted ''<em>My father always told me — Never trust anyone whose TV is bigger than their bookshelf</em>",
I agreed. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646110277176/dTcpJ044o.png" alt="My bookshelf.png" /></p>
<p>Over the years I have read books from the genres of fiction, nonfiction, self-help, and more other stuff that interests me. Those books have inspired and helped me become the person I am today.</p>
<h2 id="heading-problem-statement">💡Problem statement</h2>
<blockquote>
<p>For almost a decade, <em>GoodReads</em> has been the dominant platform for readers to discover and rate books. But many of the internet’s most dedicated readers now wish they could share their enthusiasm for books elsewhere.</p>
</blockquote>
<p>And I wanted to have that online catalog of books, I wanted to talk about the books I read. I once tried GoodReads and never opened it again because of its bad user experience. <em>I mean it's 2022!</em></p>
<p>I know, there have been built alternatives. My goal was not to try to solve the engineering problem but the <strong>user experience</strong> problem. So I was more focused on the execution, rather than the idea. I wanted to build my own version of this side project.</p>
<p>And here it is.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646288650475/lyuFhlgiy.png" alt="glimpseapp.png" /></p>
<p>Live : <a target="_blank" href="https://glimpseapp.netlify.app/">https://glimpseapp.netlify.app/</a></p>
<p>Code : <a target="_blank" href="https://github.com/rutikwankhade/glimpse">Frontend</a> / <a target="_blank" href="https://github.com/rutikwankhade/glimpse-backend">Backend</a></p>
<h2 id="heading-the-process">🎨 The process</h2>
<p>I spent a lot of time exploring how I can build this app before writing the first line of code. I planned the roadmap, tasks, and everything on the notion. This workflow helped me to track my progress.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646112991639/j9jz8EXDt.png" alt="roadmap.png" /></p>
<p>I had to make lots of decisions around the user interface and the overall user experience. Sometimes had to get back to the whiteboard and rethink the whole user flow. But It was exciting and getting better on each iteration.</p>
<h3 id="heading-the-challenges">👾 The challenges</h3>
<ul>
<li><p>The google books API has its limits. It gives 1000 API calls per day for an IP address. Searching every time user types could have ended up with the limit exceeding. So I used the <strong>debouncing</strong> technique to limit API requests.</p>
</li>
<li><p>The book API doesn't always give the right response. sometimes, it does not have the properties requested. So I had to handle it on the client-side.</p>
</li>
<li>To make the user profile more personalized, I used <code>Cloudinary</code> to store the images.</li>
<li>As the app became bigger, it got hard to maintain the state. I have used redux before but it felt like writing too much boilerplate code. But the good thing I learned about <code>redux-toolkit</code> which is a much more clean and better way to manage the state than the old way of using redux.</li>
</ul>
<h3 id="heading-technologies-used">🛠️ Technologies used</h3>
<ul>
<li>Next.js - to build frontend</li>
<li>Redux toolkit - for state management</li>
<li>TailwindCSS - for styling the app</li>
<li>Express and Node.js - for setting up the server</li>
<li>MongoDB - database</li>
<li>headless UI - for built-in components</li>
</ul>
<h3 id="heading-deployment-on-netlify">🚀 Deployment on Netlify</h3>
<p>I hosted almost every app I built on <a target="_blank" href="https://www.netlify.com/"><strong>netlify</strong></a> when I started coding. I was a beginner and netlify had a smooth, beginner-friendly experience of deploying sites. So I focused more on building the app and letting netlify take care of the deployment.</p>
<h2 id="heading-the-final-product">📦 The final product</h2>
<p>oh wait, did I forget to mention why the name glimpse?</p>
<p><strong>glimpse means a quick idea or understanding of what something is like</strong>. 
(or just a fancy word for review 😅)</p>
<p>Here are a few cool features of <a target="_blank" href="https://glimpseapp.netlify.app">Glimpse</a>.</p>
<ul>
<li>Instant search for books from the database of thousands of books. You can either search by book name or the author's name.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646236397937/4TY1K0p0d.png" alt="searchfeature.png" /></p>
<ul>
<li>Find books based on different categories like fiction, nonfiction, business, technology, and more.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646236168516/a5oDGYVh2.png" alt="categories.png" /></p>
<ul>
<li>Share glimpse of the books you read and liked in one click.  Talk about your thoughts, favorite quotes, and favorite things with glimpse.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646234927901/w1uVRFt6Z.png" alt="review.png" /></p>
<ul>
<li><p>Follow other readers and get a glimpse feed based on your following. You might find the next book you want to read right here.
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646120749766/Y4Vyg0EFZ.png" alt="111.png" /></p>
</li>
<li><p>Add books to your collection as currently reading, want to read, and read.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646235737658/DL7qRL3e-.png" alt="save2.png" /></p>
<ul>
<li>Create your own online library and manage your books with ease.
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646121031052/nNEoVeTX4.png" alt="113.png" /></li>
</ul>
<p>I have seen a lot of people having a collection of books they read in their portfolios. This could be one of the use cases for glimpse. Just create your profile and add it to your portfolio.</p>
<p>You can check out my profile <a target="_blank" href="https://glimpseapp.netlify.app/profile/62185ec259dc133d1a0080e3">here</a>.</p>
<h3 id="heading-whats-next">👀 What's next</h3>
<p>I am so happy I could finish this project in time. I was 🤌 this close to giving up on this. Glad that I didn't.  Glimpse has been my passion project for a long time. And this hackathon has pushed me to finally build and ship it. I know there is a lot of room for improvements and features. And I will keep working on it.</p>
<p>This is my submission for the <a target="_blank" href="https://hashnode.com/n/netlifyhackathon">#netlifyhackathon</a></p>
<hr />
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[How I built an app to reflect on your year 2021]]></title><description><![CDATA[Last year I wrote my year-end reflection for 2020. Reflecting on your year is to look back and note down the highs and lows, the things you liked, moments you experienced, and the lessons you learned. And I felt really good after reviewing my year. S...]]></description><link>https://blog.rutik.dev/how-i-built-an-app-to-reflect-on-your-year-2021</link><guid isPermaLink="true">https://blog.rutik.dev/how-i-built-an-app-to-reflect-on-your-year-2021</guid><category><![CDATA[side project]]></category><category><![CDATA[Next.js]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Tue, 28 Dec 2021 03:20:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1679292159030/a848dbb5-50e1-4100-9c64-f6a27e745a96.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last year I wrote my <a target="_blank" href="https://blog.rutikwankhade.dev/2020-a-year-end-reflection">year-end reflection for 2020</a>. Reflecting on your year is to look back and note down the highs and lows, the things you liked, moments you experienced, and the lessons you learned. And I felt really good after reviewing my year. So this time I thought why not create something that will make this process break into small, simple steps.</p>
<p>And so I built <a target="_blank" href="https://myyearinreview.vercel.app/">myyearinreview</a></p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/fTVEq0fJC-o">https://youtu.be/fTVEq0fJC-o</a></div>
<p> </p>
<hr />
<h1 id="heading-how-it-started">How it started</h1>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/WankhadeRutik/status/1473657950338048001?s=20">https://twitter.com/WankhadeRutik/status/1473657950338048001?s=20</a></div>
<p> </p>
<p>It all started last week when I finally decided to learn <strong>Next.js</strong>. It was on my list for a very long time now. So I picked some crash course on Youtube and I got hooked to it. Eventually, I jumped on reading the Next.js docs. I was about to build a demo app or something while learning. But then I thought If I am going to spend time on this, why not spend it on building something cool. <em>A win-win situation right!</em>.</p>
<p>But I had to build it in less than a week because this year is about to end and my idea was focused on year-end reflections.</p>
<hr />
<h2 id="heading-nextjs-supabase">Next.js + Supabase</h2>
<p>I was already blown away by all the built-in features Next.js provides like file-system based routing and server-side rendering.</p>
<p>The next step was to choose a database. I was hearing a lot about Supabase lately and wanted to give it a try. <a target="_blank" href="https://supabase.com/"><strong>Supabase</strong></a> is an open-source Firebase alternative. It provides all the backend services you need to build a product. And I am impressed with how quickly I was able to make the MVP.</p>
<p>Participating in hackathons has helped me get better at picking up new technologies quickly and building stuff.</p>
<ul>
<li><a target="_blank" href="https://supabase.com/docs/guides/with-nextjs">Quickstart: Next.js + Supabase</a></li>
</ul>
<hr />
<p>So this is what I had in mind. The app will have a google login. Once the user logs in, a user profile will be created. The review will have various curated questions, after completing their review, the review page will be public for everyone. All the profiles will be shown on a separate reflections page. Also, users will have an option to choose if they want it to be featured on the reflections page or not. Pretty simple right.</p>
<p>Let's see this in brief but with the tech part now.</p>
<hr />
<h2 id="heading-authentication">Authentication</h2>
<p>To make things easy I enabled Google Auth for my project and just implemented login with google in the app. Check out <a target="_blank" href="https://supabase.com/docs/guides/auth/auth-google">this guide</a> for a better understanding.</p>
<p>After setting it up all I had to do was create these functions and connect them to UI.</p>
<pre><code class="lang-xml">async function signInWithGoogle() {
  const { user, session, error } = await supabase.auth.signIn({
    provider: 'google',
  })
}

async function signout() {
  const { error } = await supabase.auth.signOut()
}
</code></pre>
<hr />
<h2 id="heading-creating-user-profiles">Creating user profiles</h2>
<p>Once the user is signed in, I had to create user profiles. But before that, I used the response data from google OAuth and created a username for the user. This will be used for the review page of that user later.</p>
<p>For creating user profiles, I could do it in two ways</p>
<ol>
<li><p>Upsert the profiles table in the Supabase with data as soon as the user logs in.</p>
</li>
<li><p>Using <code>triggers</code> and <code>functions</code> in Supabase, We can trigger a function to create a profile on user creation in Supabase.</p>
</li>
</ol>
<p>I chose the second one as it will create a user profile automatically once the user is created in Supabase.</p>
<hr />
<h2 id="heading-the-review-form">The review form</h2>
<p>I curated a few good questions from multiple resources to reflect on the year. But If I kept all those questions on a single page, it would have looked like a tedious task to fill it and one might even just leave it. So to make things interesting I decided to make it a <strong>multi-step</strong> form. I broke those questions into small steps.</p>
<p>First I tried a few npm packages to do it, but couldn't style it accordingly, so I ended up building it on my own.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1640633402406/NLAiTqU9p.gif" alt="form demo.gif" /></p>
<p>✨ You see I even added a progress bar at the top so that every answer user writes, takes one step closer to completing their review.</p>
<h2 id="heading-where-the-magic-happens">Where the magic happens</h2>
<p>Once the user submits his review, with some 🪄 CSS magic, it will look something like this.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1640633837930/BSKWJ-PuL.png" alt="review-demo.png" /></p>
<p>This is just one section. There is a lot more. See it by yourself.</p>
<p>Check out my review of 2021 here. <a target="_blank" href="https://myyearinreview.vercel.app/rutikwankhade">https://myyearinreview.vercel.app/rutikwankhade</a></p>
<hr />
<h2 id="heading-dynamic-open-graph-images">Dynamic open graph images</h2>
<p>At this point, if someone shares their review link somewhere on the internet, it won't look like it's their own thing. So to make the URL preview more personalized and clickable I leveraged the power of <strong>Meta tags</strong>. Next.js provides a built-in component <code>Head</code> for the meta tags.</p>
<p>Now using <strong>Cloudinary API</strong>, I made the open graph images for every review page dynamic and appended them in the Meta tags.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1640635862274/BLNBq23LO.png" alt="tweet.png" /></p>
<p>Glad I bookmarked <a class="user-mention" href="https://hashnode.com/@braydoncoyer">Braydon Coyer</a>'s post about the dynamic open graph images. It was really helpful. <em>And yes, I do check my bookmarks. all of them</em>.</p>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>And that's it for today. Try it yourself, create your review for the year 2021 and share it with your friends. Also, <strong>myyearinreview</strong> is live on Producthunt. Check it out.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://www.producthunt.com/posts/my-year-in-review">https://www.producthunt.com/posts/my-year-in-review</a></div>
<p> </p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/WankhadeRutik/status/1475765928142852097?s=20">https://twitter.com/WankhadeRutik/status/1475765928142852097?s=20</a></div>
<p> </p>
<hr />
<h3 id="heading-references">References</h3>
<ul>
<li><p><a target="_blank" href="https://h.daily-dev-tips.com/adding-a-user-profile-to-our-supabase-user">Adding a user profile to our Supabase user</a></p>
</li>
<li><p><a target="_blank" href="https://h.daily-dev-tips.com/supabase-automatically-create-user-profiles-on-sign-up">Supabase automatically create user profiles on sign up</a></p>
</li>
<li><p><a target="_blank" href="https://blog.braydoncoyer.dev/how-to-dynamically-create-open-graph-images-with-cloudinary-and-nextjs">How to Dynamically Create Open Graph Images with Cloudinary and Next.js</a></p>
</li>
</ul>
<hr />
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[Myhal: Celebrate your small wins and embrace failures]]></title><description><![CDATA[👋 Hi everyone, so this is the 4th hackathon I am participating. And I am not surprised to see how much progress I have made in the last six months because of these hackathons.  I can ship products now. I learned how to learn. I achieved some small m...]]></description><link>https://blog.rutik.dev/myhal-celebrate-your-small-wins-and-embrace-failures</link><guid isPermaLink="true">https://blog.rutik.dev/myhal-celebrate-your-small-wins-and-embrace-failures</guid><category><![CDATA[Clerk.dev]]></category><category><![CDATA[The Clerk Hackathon on Hashnode]]></category><category><![CDATA[side project]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Fri, 30 Jul 2021 06:59:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1679291983425/4bb6115c-cbf6-4489-9d38-c2bb7b0c05fd.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>👋 Hi everyone, so this is the 4th hackathon I am participating. And I am not surprised to see how much progress I have made in the last six months because of these hackathons.  I can ship products now. I learned how to learn. I achieved some small milestones, made tons of mistakes, and failed a lot. </p>
<p>And today's project is somewhat related to that. </p>
<p>Introducing <a target="_blank" href="https://myhal.vercel.app/"><strong>myhal</strong></a>, short for <strong><em>my highs and lows</em></strong>. An app to document all the ups and downs of one's journey.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1627590461455/74XUs_-yT.png" alt="frame_generic_light (16).png" /></p>
<h2 id="heading-the-idea">The idea</h2>
<p>I used to keep a list of all the achievements I made. Some days when I feel low or imposter syndrome hit me, it was something that would lift me up. And I felt everyone should keep one. Like the <strong>highlights</strong> of their journey.</p>
<p>But that's not it. There was more of it. Do you know this symbol called <strong>yin-yang</strong>? You have probably seen it somewhere.  </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1627614793804/bpSwbdh3z.png" alt="yinyang.png" /></p>
<p>It comes from Chinese philosophy that represents opposing ideas and forces. For ex. light and dark, day and night, etc.</p>
<blockquote>
<p>In Ancient Chinese philosophy, yin and yang is the idea of dualism, that seemingly opposite or contrary forces may actually be complementary, interconnected, and interdependent in the natural world. </p>
</blockquote>
<p><strong>Yin and yang cannot exist without the other. </strong></p>
<p>And I realized it's not just the highlights, but the <strong>lowlights</strong> are important as well. Highlights cannot exist with lowlights. They both balance each other. And so I came up with myhal.</p>
<h2 id="heading-how-does-it-work">How does it work?</h2>
<ul>
<li>Highlights is the list of small wins that you are proud of throughout your journey. Celebrate them. It can inspire you as well as others too.
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1627592187174/scllO4rXf.png" alt="frame_generic_light (19).png" /></li>
</ul>
<ul>
<li>Lowlights is the list of moments when you failed, learned, and grew up. Embrace them. In the world of social media, where everyone talks about success, be the one who shares their failures. Share your <em>behind-the-scenes</em>. It can help others to give a broader perspective.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1627616173737/YYgD4azEg.png" alt="frame_generic_light (21).png" /></p>
<ul>
<li>With myhal, you can create your own page. Add your highs and lows, add a bio, choose your color theme, and share with everyone.
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1627590749871/CFPBxVkc8.png" alt="frame_generic_light (18).png" /></li>
</ul>
<h2 id="heading-clerkdev">Clerk.dev</h2>
<p>I am very impressed with <a target="_blank" href="https://clerk.dev/"><strong>Clerk.dev</strong></a>. It provides complete user management for your apps. I never imagined it to be that easy and simple to use. Kudos to their dev team for building such an awesome product. You should definitely try it.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1627617286845/GlGyNkaY-.png" alt="frame_generic_light (22).png" /></p>
<p>I set it up with react following their docs. The sign-up, sign-in, dashboard, and all the user management related stuff are managed by Clerk.dev with just a few lines of code. It also has its prebuilt UI elements. </p>
<h2 id="heading-tech-stack">Tech stack</h2>
<ul>
<li><strong>React</strong> for frontend</li>
<li><strong>TailwindCSS</strong> for styling</li>
<li><strong>Clerk.dev</strong> for user management</li>
<li><strong>Firebase</strong> for database</li>
<li><strong>Vercel</strong> for hosting the app</li>
</ul>
<h2 id="heading-challenges-faced">Challenges faced</h2>
<ul>
<li>Using Clerk.dev was a seamless process, though I faced some issues while building my app. Special thanks to the members from their discord server for the help.</li>
<li>I wanted to make the profiles public to everyone but Clerk.dev doesn't allow to access the user information without signing in. So firebase came for the rescue. I saved user's data from the frontend in the database and pulled data from there for public display.</li>
<li>While using Firebase, I faced multiple issues. But with a little googling and trial and error, I fixed them. </li>
</ul>
<h2 id="heading-summing-up">Summing up</h2>
<p>So that's it. I had a great experience building myhal. It's simple and small but I really wanted to make it.  This is my submission for the <a target="_blank" href="https://hashnode.com/n/clerkhackathon">#clerkhackathon</a>. Feedbacks and suggestions are welcome.</p>
<blockquote>
<p><a target="_blank" href="https://github.com/rutikwankhade/myhal"><strong>Github repository</strong></a> / <a target="_blank" href="https://myhal.vercel.app/"><strong>Live</strong></a></p>
</blockquote>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[TheMakersClub: a club of ideas, feedbacks and resources]]></title><description><![CDATA[Bill Gates once quoted "We all need people who will give us feedback. That's how we improve."  A simple thought but worth so much value. Not long ago when I was a beginner, I used to make small apps and post them on the internet. I used to feel it's ...]]></description><link>https://blog.rutik.dev/themakersclub-a-club-of-ideas-feedbacks-and-resources</link><guid isPermaLink="true">https://blog.rutik.dev/themakersclub-a-club-of-ideas-feedbacks-and-resources</guid><category><![CDATA[HarperDB Hackathon]]></category><category><![CDATA[side project]]></category><category><![CDATA[React]]></category><category><![CDATA[#codenewbies]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Wed, 30 Jun 2021 13:55:19 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1650615709469/0gbTziEJO.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Bill Gates once quoted <em>"We all need people who will give us feedback. That's how we improve."</em>  A simple thought but worth so much value. Not long ago when I was a beginner, I used to make small apps and post them on the internet. I used to feel it's the perfect thing I built. But then, once some random person commented and pointed out the flaws in my app. I could have never realized it on my own. It was a new perspective for me. </p>
<p>And that's when it hit me how feedback plays a crucial role in learning stuff. Feedback can help you learn from your mistakes and improve. So where do you get them? </p>
<p>It's communities. And <a target="_blank" href="https://themakersclub.vercel.app/"><strong>themakersclub</strong></a> can be the one where you can showcase what you built, ask for constructive feedback, discuss ideas, and even share resources with everyone. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1624988979193/L00V0w5xU.png" alt="frame_generic_light (3).png" /></p>
<p>In this article, I will be sharing my whole journey of building this project for the hackathon. Let's divide it into a timeline of 4 weeks.</p>
<h2 id="heading-week-1-procrastination">Week 1: Procrastination</h2>
<p>Yup. You read it right. Procrastination. I will be honest. I mean a lot of it. I said I will start tomorrow. I didn't know I was going to regret that decision later. But even though I wasn't doing anything, I was still brainstorming about what should I build? or more like what can I build? ideas, ideas, where are you?</p>
<hr />
<h2 id="heading-week-2-choosing-the-idea">Week 2: Choosing the idea</h2>
<p>I feel this is the hardest part of creating something. And I know a lot of you might agree with this. So I had a bunch of ideas in my mind. I got excited, but then I started discarding them one by one as I spent more time validating those ideas. </p>
<p>Finally, I was left with two ideas, choosing only one was going to be a crucial decision.
The first one was a complex project but a simple idea, and the second one was a simple project with a promising idea.</p>
<p>I couldn't choose. I wish I could make both but the clock was running. I could have built the simple idea without learning anything new. But I chose the complex one. Because the sole purpose of participating in the hackathon was to learn new stuff, challenge me to go beyond, and of course the prizes too.</p>
<p><em>so that's it. the makersclub.</em></p>
<h3 id="heading-the-problem">🐱‍💻 The problem</h3>
<p>I have been part of multiple discord servers. With tons of channels, one that caught my attention was the feedback and review channel. People would just share what they build and ask for feedback. But here is the problem, It was all cluttered. The responses were mixed up in the chats. Even when someone shares a resource, it gets lost forever.</p>
<p><kbd>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1625031032968/vY4XflhV0.gif" alt="discord.gif" />
</kbd></p>
<p>Twitter is a great place, no arguing with that. And it's not that there aren't such platforms for makers. They do exist. But so what? Let's pretend they don't for a while and build one by myself. After all, learning was one of the motives to build it right?</p>
<blockquote>
<p>But you just can't think of an idea and jump directly working on it. The more clear the idea, the faster you can implement it. It's complicated you know. You might keep thinking about it and never build one. Or you can think about every detail of it, so you can build it efficiently.</p>
</blockquote>
<p>So I kept my focus on 3 things. <strong>feedbacks</strong>,<strong> resources</strong>, and <strong>discussions</strong>.</p>
<hr />
<h2 id="heading-week-3-the-challenge">Week 3: The challenge</h2>
<p>I was positive that making UI will be an easy job for me. But for the backend and database, it was a challenge. This was my first full-stack project with the backend. Before last month, I never heard of <strong>harperDB</strong>. I started learning about how things work and made a demo app using HarperDB. There weren't many resources available other than the docs, so it was going to be challenging. But I must say, I really liked harperDB. </p>
<h3 id="heading-foundation">⚙ Foundation</h3>
<p>The first step was to build<em> login/signup</em> functionality. It's easy to add new features once the main skeleton of the app is ready.</p>
<p>I learned about JSON web tokens, hashing passwords, APIs, postman, and redux.</p>
<p>I never used redux. I tried once but got so much confused. I am glad I used it in this project. Finally, I got the gist of what it is and how it actually works. </p>
<h3 id="heading-building-ui">🧩 Building UI</h3>
<p>I took inspiration from dribble and created a basic layout. Having something nice to look at makes it fun to work on. The first time I create something, it doesn't actually look good. The more I try to fit things in different ways the better it gets. Sometimes I surprise myself with the outcome. The UI gets completely changed after multiple iterations. And each time it looks better and better.</p>
<blockquote>
<p>I feel building UI is like solving a puzzle. I really don't know how it will look at the end. I just try to put pieces together and it starts making sense.</p>
</blockquote>
<p>I didn't create a UI design for this. I didn't have enough time and the fact that I don't know how to use Figma properly.</p>
<hr />
<h2 id="heading-week-4-i-did-it">Week 4: I did it.</h2>
<p>Sometimes you can't really estimate how long a certain feature will take time to build. When it was just a week left and Hashnode added that counter on the homepage, damn! Every time I used to come back here, it reminded me I was running out of time. I had to push faster. I focused on making a few but well-developed features than adding just so many features. I really thought I couldn't make it in time. But I did. </p>
<blockquote>
<p>So here it is. <strong><a target="_blank" href="https://themakersclub.vercel.app/">themakersclub</a></strong>, <em>a club of ideas, feedback, and resources.</em></p>
</blockquote>
<ul>
<li>Showcase what you built and get constructive feedback from others. Also, you can give specific feedback like a bug found, UI improvements, feature suggestions, etc to any project.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1625061202856/0G8JnAqXv.png" alt="frame_generic_light (15).png" /></p>
<ul>
<li>Start a discussion thread on any topic and invite people to share their thoughts and ideas. It supports markdown too.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1625054812616/B-71DumRo.png" alt="frame_generic_light (10).png" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1625058318494/qtYoeOpzL.png" alt="frame_generic_light (14).png" /></p>
<ul>
<li>A collection of resources shared by members of the makers club. You can find resources based on categories like design, hackathons, podcasts, etc.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1625028916381/wkyBDbhE5.png" alt="frame_generic_light (9).png" /></p>
<h3 id="heading-technologies-used">🛠 Technologies used</h3>
<p>Well, I got to learn a lot about redux, harperDB, and how backend and APIs work while building this project. The new HERN stack looks like a great combo.</p>
<ul>
<li><code>React</code> for frontend</li>
<li><code>TailwindCSS</code> for styling</li>
<li><code>Nodejs</code> and <code>Express</code> for backend</li>
<li><code>HarperDB</code>  for database</li>
<li><code>Redux</code> for state management</li>
</ul>
<blockquote>
<p>The complete code can be found here. <a target="_blank" href="https://github.com/rutikwankhade/themakersclub"><strong>Frontend</strong></a> / <a target="_blank" href="https://github.com/rutikwankhade/themakersclub-backend"><strong>Backend</strong></a></p>
</blockquote>
<h2 id="heading-so-whats-next">🐱‍🏍 So what's next</h2>
<p>This is just an MVP and I feel can be turned into a really good project. Right now the features are limited but I am looking forward to adding more and make it even better.</p>
<ul>
<li>User profile for every maker which can be used as a portfolio</li>
<li>Signup with Google/Twitter</li>
<li>Like/upvote projects and discussions</li>
<li>and more</li>
</ul>
<h2 id="heading-final-thoughts">💡 Final thoughts</h2>
<p>A lot of code newbies are learning and building stuff that needs feedback. But it's hard to get one in the vast flow of information. So I invite you to join <a target="_blank" href="https://themakersclub.vercel.app/"><strong>themakersclub</strong></a>. Also if you are someone who wants to help others, you are welcomed to be a mentor. I will personally provide feedback every week on the makersclub. so if you are a beginner, you built something, need feedback, hop in. And I will try my best to help. </p>
<p>This is my submission for the <a target="_blank" href="https://hashnode.com/n/harperdbhackathon"><strong>#harperdbhackathon</strong></a>. Give it a try and let me know your thoughts or suggestions. </p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[Don't strive for perfection, strive for progress.]]></title><description><![CDATA[👋 Hi everyone, last week I was invited to be a part of the "Discover One Amazing Creator Everyday" series by Anshu Shandilya. Recently he started a challenge in which he interacts and shares the stories of creators, what they have done and are doing...]]></description><link>https://blog.rutik.dev/dont-strive-for-perfection-strive-for-progress</link><guid isPermaLink="true">https://blog.rutik.dev/dont-strive-for-perfection-strive-for-progress</guid><category><![CDATA[Developer]]></category><category><![CDATA[Learning Journey]]></category><category><![CDATA[General Advice]]></category><category><![CDATA[DevLife]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Fri, 26 Mar 2021 02:52:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1674727306486/e74c334b-bd7b-4d5f-9346-1f0fe673b888.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>👋 Hi everyone, last week I was invited to be a part of the <em>"Discover One Amazing Creator Everyday"</em> series by <strong><a target="_blank" href="https://twitter.com/ashandilya64">Anshu Shandilya</a></strong>. Recently he started a challenge in which he interacts and shares the stories of creators, what they have done and are doing currently.</p>
<p>I had a wonderful time having a conversation with him on Twitter DMs. And I really liked those questions and thought why not share them on my blog too. So this post is all about it.</p>
<p>Let's begin.</p>
<h4 id="heading-what-are-you-currently-doing-workingstudying">👨‍🎓 What are you currently doing (working/studying)?</h4>
<p>I am a final year student of computer engineering at Sinhgad Institute of Technology, Lonavala. And currently doing an internship as a Software Developer Intern at Twimbit.</p>
<h4 id="heading-whats-that-one-thing-you-want-to-achieve-in-2021">🎯 What's that one thing you want to achieve in 2021?</h4>
<p>For me, the one goal for 2021 is to be a full-stack developer. I want to learn how to build products from end to end, utilize my skills and build exciting products. Also, I have lots of good ideas around side projects that I want to work on.</p>
<h4 id="heading-whats-that-one-thing-you-are-most-curious-about">👨‍🚀 What's that one thing you are most curious about?</h4>
<p>It’s everything related to the web. The more I am learning, the more I feel how little I know. And that makes me explore more. </p>
<h4 id="heading-whats-something-you-learnedrealized-recently-that-you-wish-you-learnedrealized-much-earlier">💡 What's something you learned/realized recently that you wish you learned/realized much earlier?</h4>
<p>One thing I recently learned is that one can never be ready. You have to do it anyway. Like I used to keep saying to myself, I don't know enough, once I learn some XYZ stuff, I will be ready for the job. And I kept pushing it. But now even after getting into an internship, I feel the same. Every day I have to learn something new.  It's a continuous process of learning and growing. You can't just wake up and say, yup! I am 100% ready. And this applies to everything. So don't strive for perfection. Strive for progress.</p>
<h4 id="heading-couldnt-agree-more-as-our-society-feed-your-learning-ends-with-the-completion-of-a-degree-and-that-is-totally-wrong-whats-the-one-mistake-you-have-done-and-will-you-advise-others-not-to-repeat-that">🙋‍♂️ Couldn't agree more, as our society feed, your learning ends with the completion of a degree and that is totally wrong. What's the one mistake you have done and will you advise others not to repeat that?</h4>
<p>It would be <em>"choosing the wrong metrics"</em>. Reading one book and implementing it in your daily life would be more impactful than just reading 100+ books. Having few folks who support you is more important than having hundred thousand followers. So choose your values carefully.</p>
<h4 id="heading-why-did-you-choose-to-become-a-creator-how-do-you-see-yourself-differently-than-the-rest">🦸‍♂️ Why did you choose to become a creator? How do you see yourself differently than the rest?</h4>
<p>Because It's fun. It's something that I truly enjoy doing. I follow the mantra of learn-apply-share and try to encourage everyone to do the same. I don't see myself as different from others. I am learning a lot from all the people around me. After all, We all are solving problems and creating stuff in our own ways. I am documenting rather than creating.</p>
<h4 id="heading-which-book-you-are-reading-these-days-which-genre-excites-you-the-most">📖 Which book you are reading these days? Which Genre excites you the most?</h4>
<p>I am currently reading Soft skills by Jhon Sonmez. So far I can say it's a must-read for all the developers and creators. I read both fiction and non-fiction. But reading people's stories and journeys excites me most. Rashmi Bansal's <em>connect the dots</em>, <em>arise awake</em> are a few of my favorites in this genre.</p>
<h4 id="heading-what-do-you-love-to-do-when-not-working-any-hobbies-you-want-to-share">🎨 What do you love to do when not working? Any hobbies you want to share?</h4>
<p>Besides coding, I like </p>
<ul>
<li>reading fiction/non-fiction books, </li>
<li>writing/journaling, doing this since 2015 </li>
<li>illustrating, I am not good though I am learning.</li>
<li>poetry, music, filmmaking. </li>
</ul>
<p>Basically, I enjoy everything artistic.</p>
<h4 id="heading-what-problem-you-are-planning-to-solve-next">🛠 What problem you are planning to solve next?</h4>
<p>It's not a specific problem I am trying to solve right now. But there are few products that I wish should exist, at least for me. So I am planning on building them. And even if they do exist, my goal is to make them better. Most of the projects I built were actually to solve my own problems.</p>
<h4 id="heading-what-would-you-recommend-to-others-who-are-looking-to-start-their-careers-in-the-development-world-how-to-go-about-it">📡 What would you recommend to others who are looking to start their careers in the development world, how to go about it?</h4>
<p>Well, I am in the early days of my career myself. What I know is just a drop, there is a whole ocean in front of me. But after some learning, watching awesome folks, and experiencing myself, all I can say is build, build and build.
Your college degree, your certifications won't help you to get a job, but your skills and ability to build products will. Learn and build. Write blogs, share your story. The more you will put yourself out there, the more you will create good opportunities for yourself. </p>
<p>Take responsibility for your own career. The internet is filled with resources. Learn how to learn. Join a community. Hang out with folks who inspire you and explore as much as you can.</p>
<h4 id="heading-i-have-one-last-question-given-a-big-board-which-line-would-you-like-to-write-there">📺 I have one last question, given a big board, which line would you like to write there?</h4>
<p>There is one quote that I really love. it says making mistakes is better than faking perfections. I would write that.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1616149872785/3XTcwK64A.png" alt="quote.png" /></p>
<h4 id="heading-stuff-that-i-built">🚀 Stuff that I built</h4>
<ul>
<li><h3 id="heading-tabwavehttpstabwavevercelapp"><a target="_blank" href="https://tabwave.vercel.app/">Tabwave</a></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1616596210643/ZuTrYESdu.png" alt="tabwave (8).png" /></p>
</li>
<li><h3 id="heading-coverviewhttpscoverviewnowsh"><a target="_blank" href="https://coverview.now.sh/">CoverView</a></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1616596275719/eTDwuxX-a.png" alt="coverview.png" /></p>
</li>
<li><h3 id="heading-devspacehttpsdevspacevercelapp"><a target="_blank" href="https://devspace.vercel.app/">Devspace</a></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1616596295086/EEYRo8WuM.png" alt="devspace (3).png" /></p>
</li>
</ul>
<h3 id="heading-insightful-blogs-to-check-out">Insightful blogs to check out</h3>
<ul>
<li><a target="_blank" href="https://blog.rutikwankhade.dev/i-launched-my-side-project-on-product-hunt-here-is-what-i-learned">I Launched my side project on Product Hunt, here is what I learned.</a></li>
<li><a target="_blank" href="https://blog.rutikwankhade.dev/when-frontend-devs-meet-free-apis">When frontend devs meet free APIs</a></li>
<li><a target="_blank" href="https://blog.rutikwankhade.dev/dont-just-learn-to-code-learn-to-create">Don't just learn to code, learn to create</a></li>
<li><a target="_blank" href="https://blog.rutikwankhade.dev/github-repositories-every-aspiring-developer-should-check-out">Github repositories every aspiring developer should check out</a></li>
</ul>
<h4 id="heading-shoutout-to-kiwismediahttpskiwismediacom">🚀 Shoutout to <a target="_blank" href="https://kiwismedia.com/">Kiwismedia</a></h4>
<p>Kiwismedia is a Home for multi-skilled creators and makers. Discover individuals sharing their best works.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1616597339536/RnrA6__6t.png" alt="0_eJDVRR8V9XJKKAh6.png" /></p>
<p>I am really grateful to be a part of this. Special thanks to <strong><a target="_blank" href="https://twitter.com/ashandilya64">Anshu Shandilya</a></strong> for all the good questions. I never did something like this before and learned a lot about myself.</p>
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy learning!</p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[Customized CSS: another reason to love Hashnode more]]></title><description><![CDATA[So a few days back I saw Sebastian Gale 's post where he talked about how he used customized CSS to give his blog a new look. But this feature was only available for hashnode ambassadors and I  wasn't one yet. But thanks to Hashnode, I got assigned t...]]></description><link>https://blog.rutik.dev/customized-css-another-reason-to-love-hashnode-more</link><guid isPermaLink="true">https://blog.rutik.dev/customized-css-another-reason-to-love-hashnode-more</guid><category><![CDATA[Hashnode]]></category><category><![CDATA[CSS]]></category><category><![CDATA[General Programming]]></category><category><![CDATA[Developer Blogging]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Mon, 15 Feb 2021 04:09:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1613322360905/lNLVaoVl1.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>So a few days back I saw <a class="user-mention" href="https://hashnode.com/@seblz432">Sebastian Gale</a> 's post where he talked about how he used customized CSS to give his blog a new look. But this feature was only available for hashnode ambassadors and I  wasn't one yet. But thanks to Hashnode, I got assigned the ambassador role on Hashnode last week which means I get to access new cool features. Among all, <strong>Customized CSS</strong> was the one I was most excited about. </p>
<p>First of all Hashnode's UI is so good that I couldn't think of something I could change. But still, I spent some time and made a few little changes. Have a look around <a target="_blank" href="https://blog.rutikwankhade.dev">blog.rutikwankhade.dev</a></p>
<h3 id="1-header-of-the-blog">1. Header of the blog</h3>
<p>I felt there was more space in the header that can be reduced. So I changed it and made it look like a navbar. Again this is my personal preference.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613304500150/Ma6Tkfglv.png" alt="Before-after.png" /></p>
<h3 id="2-centered-everything-in-the-author-area">2. Centered everything in the author area</h3>
<p>In mobile view, the elements in the author area were aligned left. So I made it centered.
If you are changing a layout, be careful. There is a high chance you will mess with its responsiveness.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613325383437/M1AGvz6V7.png" alt="Before-after (5).png" /></p>
<h3 id="3-blog-cards-and-background-texture">3. Blog cards and background texture.</h3>
<p>This wasn't needed as the original UI is super clean but I did it to give it a unique look. While changing colors, don't forget to consider dark mode too.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613305786185/FlZMkTn2o.png" alt="Before-after (3).png" /></p>
<h3 id="4-styled-load-more-button">4. Styled load more button</h3>
<p>Any shade of blue and I am in. I changed the color of the load more button to my favorite color.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613306344690/7OXHkxTgc.png" alt="After.png" /></p>
<h3 id="5-rounded-blog-cover">5. Rounded blog cover</h3>
<p>Added border-radius to the blog cover and some margin to the top. Also, I reduced the font-weight of the title by 100 and reduced its font size on small screens.  </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613307070535/qzZx7T2qw.png" alt="Before-after (4).png" /></p>
<h3 id="6-cool-colors-for-links">6. Cool colors for links.</h3>
<p>This is inspired from <a class="user-mention" href="https://hashnode.com/@iamshadmirza">Mohd Shad Mirza</a>'s blog. I really liked this one.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613308644405/G4S5UccR4.gif" alt="After.gif" /></p>
<h3 id="7-styled-quotes">7. Styled Quotes</h3>
<p>Why not add colors to the quotes, This has made the blog post more intuitive. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613313556738/N336VSimH.png" alt="After (2).png" /></p>
<h3 id="8-a-little-shadow-on-similar-posts">8. A little shadow on similar posts</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613313673909/S0eWh-TKn.png" alt="screenshot - 2021-02-14T201053.911.png" /></p>
<blockquote>
<p>Now, it feels like <strong><em>my own personal blog</em></strong>. I do have a blog I made a long time ago with Gatsby. Setting it up wasn't easy. But now that I have more than I wished with Hashnode. I don't think I need it anymore. </p>
</blockquote>
<p>I was going to share the code. But then I thought why not let you guys be a little creative and try by yourself. After all, it's just a few CSS rules applied to specific classes. By the way, it's only available for <strong>hashnode ambassadors</strong>. So if you are not, you might need to wait till it becomes public for everyone.
Also, if someone from hashnode team is reading this, please let me know if I changed something I shouldn't.</p>
<h4 id="here-are-a-few-customized-blogs-to-check-out">✨ Here are a few customized blogs to check out.</h4>
<ul>
<li>https://blog.sebastiangale.ca/ by <a class="user-mention" href="https://hashnode.com/@seblz432">Sebastian Gale</a></li>
<li>https://lo-victoria.com/ by <a class="user-mention" href="https://hashnode.com/@victoria">Victoria Lo</a></li>
<li>https://catalins.tech/ by <a class="user-mention" href="https://hashnode.com/@Catalinpit">Catalin Pit</a></li>
</ul>
<p>Also if you have tried this feature, drop your blogs below. I would love to check them out.</p>
<hr />
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy learning!</p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[devspace : get top posts from the best developer platforms]]></title><description><![CDATA[After an awesome experience with Hashnode ChristmasHackathon, Hashnode announced a new hackathon in partnership with Vercel. This time it was a 3 week-long hackathon. I wanted to build a full-stack app this time, but I didn't know a thing about how t...]]></description><link>https://blog.rutik.dev/devspace-get-top-posts-from-the-best-developer-platforms</link><guid isPermaLink="true">https://blog.rutik.dev/devspace-get-top-posts-from-the-best-developer-platforms</guid><category><![CDATA[Vercel Hashnode Hackathon]]></category><category><![CDATA[React]]></category><category><![CDATA[APIs]]></category><category><![CDATA[General Programming]]></category><category><![CDATA[Tailwind CSS]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Sun, 07 Feb 2021 14:08:56 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1650615939798/zMuKU312B.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>After an awesome experience with Hashnode <strong><em>ChristmasHackathon</em></strong>, Hashnode announced a new hackathon in partnership with Vercel. This time it was a 3 week-long hackathon. I wanted to build a full-stack app this time, but I didn't know a thing about how the backend works, so I started learning it.</p>
<p>More than 2 weeks passed and I didn't even start working on the project. Everything was new and a bit intimidating and I couldn't build it in time.</p>
<blockquote>
<p>But I still wanted to participate!
So I decided to pivot at the last moment and come up with something else. I was running out of both ideas and time. What should I build? a recipe app? a movie app? Nope. It had to be something that would be useful for me in my life.</p>
</blockquote>
<h3 id="heading-the-idea">💡 The idea</h3>
<p>Did you hear of daily.dev ? It's a new tab extension that curates blogs and news for developers from different platforms. I have used it. But it was too much content for me. I realized I check only 4-5 developer platforms daily. And sometimes I don't stay for long, I just want to peek, see top posts and get back to my work. 
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1612695927859/H0zu8AUAF.gif" alt="joeyy.gif" /></p>
<p>Wait, what if I build something so that I won't need to search and switch tabs for these websites? Well, that sounds like a good idea.</p>
<h3 id="heading-introducing-devspace">🚀 Introducing devspace</h3>
<p>Get top posts from the best developer platforms in one place.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/83dKsOsx4as">https://youtu.be/83dKsOsx4as</a></div>
<p>The app is deployed on Vercel and the code is open-sourced on Github.</p>
<h3 id="heading-demo">Demo</h3>
<p>See live : https://devspace.vercel.app/<br />Github :  https://github.com/rutikwankhade/devspace</p>
<h3 id="heading-uiux">📰 UI/UX</h3>
<p>Even though it was a small app, creating a basic design prototype is always a plus. It helps to move in the right direction. I used
<a target="_blank" href="https://excalidraw.com/">excalidraw</a>. it's a great tool to create quick sketches.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1612699423754/F_u3l4i3t.png" alt="devspace.png" /></p>
<h4 id="heading-layout">Layout</h4>
<p>For the layout, I divided the screen into two parts. One for navigation and another for the main content. I thought of it as an open book.</p>
<h4 id="heading-colors">Colors</h4>
<p>I tried to be consistent with the colors and used colors that complement each other. Also, made it super clean and intuitive.</p>
<h3 id="heading-screenshots">Screenshots</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1612791874769/w8gxy7bT7.png" alt="devspace.png" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1612791901745/ur77edDl2.png" alt="devspace (1).png" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1612791914469/cKQWDclDU.png" alt="devspace (2).png" /></p>
<h3 id="heading-technologies-used">👩‍💻 Technologies used</h3>
<ul>
<li>React </li>
<li>TailwindCSS</li>
<li>APIs - Hashnode, dev, HackerNews, Github, and Product Hunt </li>
<li><a target="_blank" href="https://www.npmjs.com/package/svg-loaders-react">svg-loaders-react</a> for displaying  a loader while the app fetches data </li>
<li><a target="_blank" href="https://www.react-reveal.com/">react-reveal</a>  for smooth animation on scroll</li>
</ul>
<h3 id="heading-challenges-faced">🌧 Challenges faced</h3>
<ul>
<li><p>Implementing the APIs was a bit frustrating. Reading the docs thoroughly helped a lot.
APIs of Hashnode, Dev, and Product Hunt was easy to use and implement. But Github doesn't have any endpoint for getting trending repositories in its official API. Luckily, I found an unofficial API. Thanks to the open-source developer community. </p>
</li>
<li><p>HackerNews API provides an endpoint to get only the ids of top posts. So I had to fetch individual posts with these ids.</p>
</li>
<li><p>Few blog posts didn't have a cover image, so I used <a target="_blank" href="https://picsum.photos/">Lorem Picsum's API</a> to set random images for default.</p>
</li>
</ul>
<h3 id="heading-conclusion">✨ Conclusion</h3>
<p>I built this in a very short period of time and still made it look good and useful, at least for me. That's an achievement! So this is my submission for the <strong>#VercelHashnode</strong> Hackathon. 🙌 Cheers!</p>
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy learning!</p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[I Launched my side project on Product Hunt, here is what I learned.]]></title><description><![CDATA[Every time I used to visit Product Hunt, I would end up discovering a few awesome tools and products that make me say, wow! This is so cool. I want to build something like that. But the thing is I had no idea what to do. But I so wanted to build a pr...]]></description><link>https://blog.rutik.dev/i-launched-my-side-project-on-product-hunt-here-is-what-i-learned</link><guid isPermaLink="true">https://blog.rutik.dev/i-launched-my-side-project-on-product-hunt-here-is-what-i-learned</guid><category><![CDATA[Web Development]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[General Programming]]></category><category><![CDATA[General Advice]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Fri, 29 Jan 2021 04:13:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1611892732608/08Bobz7NU.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every time I used to visit Product Hunt, I would end up discovering a few awesome tools and products that make me say, wow! This is so cool. I want to build something like that. But the thing is I had no idea what to do. But I so wanted to build a product. I wanted to go through the process of building and shipping a product from scratch to end.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/WankhadeRutik/status/1330424757490249734?s=20">https://twitter.com/WankhadeRutik/status/1330424757490249734?s=20</a></div>
<p>In late December, Hashnode announced  #ChristmasHackathon. And I decided to use it as a trigger to push myself to build something. I had few ideas so I started working and I built <strong>Tabwave</strong>. Well, I won't be discussing how and why I built it because I have already talked about it.  Check out  <a target="_blank" href="https://blog.rutikwankhade.dev/how-i-built-my-own-productivity-app">how I built my own productivity app</a> here.</p>
<p>I launched it last week on Product Hunt and it was the <strong><em>#5 Product of the day</em></strong> with 300+ upvotes. Also, it made it to the Product Hunt's <a target="_blank" href="https://www.producthunt.com/newsletter/7914">newsletter</a> too. For me, it was a 🏆 huge milestone.</p>
<p><a href="https://www.producthunt.com/posts/tabwave?utm_source=badge-top-post-badge&amp;utm_medium=badge&amp;utm_souce=badge-tabwave" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=281905&amp;theme=dark&amp;period=daily" alt="Tabwave - Replace your new tab with a mindful productive app | Product Hunt" /></a></p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/6USAo-I5K7Y">https://youtu.be/6USAo-I5K7Y</a></div>
<p>I have learned a lot in these past few days about shipping products. So I am going to share my experience here.</p>
<h4 id="before-launch">🚀 Before launch</h4>
<h3 id="build-in-public">👩‍💻 Build in Public</h3>
<p>Keep sharing about your progress. It can be a tiny feature you added, a problem you faced, or a nasty bug you fixed. Share your wins and failures. Document everything. That will help you build your audience and create excitement among early users. And I feel Twitter is the best place for it.</p>
<p><em>Documenting your journey + Providing value</em> is the sweet spot I follow. Focus on providing as much value as you can.</p>
<h3 id="feedback-is-super-important">✨ Feedback is super important</h3>
<p>Feedback is the best thing that will help you and your product grow. The biggest example is Hashnode itself. See the <a target="_blank" href="https://hashnode.com/feature-requests">Feature Request</a> section of Hashnode. They listen to the community and give them exactly what they want. That's why we love it so much. So whatever you are building, share with the community. Ask for the feedback and make it better and better. </p>
<p>I collected feedback from the comments in my blog, from Reddit, from Twitter, anywhere from I could get people's hands on it. And that was a crucial thing. Not only they helped me find bugs, silly mistakes but suggested potential features.</p>
<h3 id="copywriting-is-a-skill">📰 Copywriting is a skill</h3>
<p>When I heard about copywriting for the first time I literally thought it means copying and writing. 😅 Yeah, I was that dumb. Copywriting is simply writing something in a way that makes the audience curious about it. It's more used in marketing and advertising stuff. </p>
<p>But wait? Why should I care about it. Well, whatever you build, Your goal is to reach more audiences. And in this high paced digital world, it's hard to grab attention in a little span of time. So use your words wisely. Learn how to write an effective copy.</p>
<h3 id="name-and-domain">🌐 Name and domain</h3>
<p>Before I started building Tabwave, I called it sorted. I loved that name a lot. Later I found out it's already taken. So I had to rename it to Tabwave, which is kind of cool too. That was the moment I realized why developers own so many domain names. Because they buy it even before starting to work the side project, which I think is a smart thing to do. </p>
<h3 id="landing-page">👨‍🚀 Landing page</h3>
<p>It's good to have a landing page for your product and a form to collect emails. 
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611594476374/5QoVVDtBW.png" alt="frame_chrome_mac_light (6).png" />
My extension wasn't published so I collected emails to notify the users of its launch. So on the launch day, I had a list of 50+ people I could send mails to who are excited to check out my product.  </p>
<h4 id="launch-day">🚀 Launch day</h4>
<h3 id="product-hunt">🌀 Product Hunt</h3>
<p>Product Hunt is a global platform. Every day, a large number of products get launched by either individual makers or companies. Getting your product noticed isn't that easy. So the main goal is to get your product on the first page. Let's be honest, what was the last time you went on the 2nd page of your google search? rarely right! The same goes for Product Hunt.</p>
<p><em>I prepared everything like the description, screenshots, maker's comment, etc before and previewed using <a target="_blank" href="https://previewhunt.com/">Previewhunt</a>.</em></p>
<h3 id="timing-is-important">⌚ Timing is important</h3>
<p>All we get is 24 hrs. of PST <em>(Pacific Standard Time)</em> to show our product. Every day the list gets refreshed after 24 hours. I had no idea about this, glad I did some research before launch. The sooner you launch, the better. If you launch at around 12 am PST, it will get a longer exposure.</p>
<p>I launched Tabwave around 2 pm IST which is 12:30 am PST. I preferred Friday/Saturday as on weekends there is less competition which increased my chances to get featured.</p>
<p>For the first few hours, Tabwave was in 16th position but then it started getting upvotes and soon I could see it on the first page. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611660991541/oXK88xPUQ.png" alt="Screenshot (491).png" /></p>
<h4 id="after-launch">🚀 After launch</h4>
<h3 id="find-your-audience">👨‍👦‍👦 Find your audience.</h3>
<p>Building and launching is one thing but after that is the real game. i.e. Getting it into the hands of real users. Ask yourself, where does your audience hang out more. Is it Twitter? maybe Reddit? or something else?</p>
<p>I shared Tabwave everywhere I could think of like Twitter, Linkedin, relative Reddit channels, discord servers, communities like Indiehackers, Makerlog, etc.</p>
<blockquote>
<p>But please don't spam. </p>
</blockquote>
<p>If the product is good, people will more likely share it. However, it is suggested to share links to your landing page and not the Product Hunt page.</p>
<h3 id="engage-with-your-users">🙋‍♂️ Engage with your users</h3>
<p>For the next 24 hrs, I was available on all platforms. It was exciting. I was getting a good response. Engaging with the users, their feedbacks, and appreciations was overwhelming.</p>
<h3 id="monitor-the-stats">📈 Monitor the stats</h3>
<p>Wait, did you add analytics to your landing page? If not, you should. It will help you monitor the traffic and other stats. I was going to use google analytics but then I discovered  <a target="_blank" href="https://plausible.io/">Plausible</a>. I felt it's cleaner and much better than google analytics.</p>
<p>Here are the stats of Tabwave after a week.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611813418999/zUgV72gW8.png" alt="Screenshot (493).png" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611892562869/t03njCD1s.png" alt="tabwave (5).png" /></p>
<h3 id="perks">🥳 Perks</h3>
<p>I have made awesome friends on Twitter, 100+ connections on Linkedin. And this week I have been approached by 5-6 folks with job opportunities that I haven't even applied for. </p>
<h3 id="summing-up">Summing up</h3>
<p>That's not everything. It was my first time. Tabwave was just a simple idea. I realized I can do better. There is a lot more to learn. A long way to go. It was a wonderful experience. And I am really excited to unfold what comes next. Everything I mentioned here is from my learning experience.  So give it a go, try different things, and keep growing.</p>
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy learning!</p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[How I built my own productivity app]]></title><description><![CDATA[Before I started learning React, I had a goal. I wanted to build an MVP (minimum viable product) and experience the whole process of turning ideas into products. But I would always find a way to postpone it. But this time with  #christmashackathon, I...]]></description><link>https://blog.rutik.dev/how-i-built-my-own-productivity-app</link><guid isPermaLink="true">https://blog.rutik.dev/how-i-built-my-own-productivity-app</guid><category><![CDATA[Christmas Hackathon]]></category><category><![CDATA[React]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Developer Tools]]></category><category><![CDATA[Productivity]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Fri, 01 Jan 2021 13:52:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1658471053697/8LQHpB75W.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Before I started learning React, I had a goal. I wanted to build an MVP (<em>minimum viable product</em>) and experience the whole process of turning ideas into products. But I would always find a way to postpone it. But this time with  <a target="_blank" href="https://hashnode.com/n/christmashackathon">#christmashackathon</a>, I decided to use the magical powers of coding and push myself to build my own productivity app, the one I wish I had.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1609504825859/4RvGUGCMh.png" alt="tabwave-full.png" /></p>
<h3 id="heading-being-productive">🤹‍♂️ Being productive</h3>
<p>We often try to achieve more in less time. I used to think, the more I work, the more productive I become. But I was wrong. There is a big difference between <em>being busy</em> and <em>being productive</em>. I was always looking for ways to be more productive. I read multiple books, used different tools and techniques. But deep down I felt I need a  simple, minimal productivity tool and the idea of tabwave was born.</p>
<h3 id="heading-the-idea">💡 The idea</h3>
<p>The idea was quite simple. All I wanted was a bunch of productivity tools like a Pomodoro clock, a to-do list, sticky notes altogether. Nothing fancy and complicated. </p>
<p>I wanted to have all these tools somewhere I can see all day. And I thought what's better than a browser's new tab. Also, I never knew how browser extensions were made so this was a learning opportunity for me to explore it closely.</p>
<h3 id="heading-the-design-process">🎨 The design process</h3>
<p>I am no designer, but I feel I have a good taste in design. I looked for inspiration and started visualizing the structure of the design. I spent hours figuring out the layout. I kept improving it little by little as I progressed with its development. It was an iterative process. These are the steps I followed.</p>
<ul>
<li>Divide the whole app into different components.</li>
<li>Create a minimal user interface for a single component.</li>
<li>Work on the functionality of that component.</li>
<li>Improve its UI to give it an aesthetic look.</li>
<li>Repeat</li>
</ul>
<h4 id="heading-technologies-used">Technologies used</h4>
<ul>
<li>React</li>
<li>Tailwindcss</li>
</ul>
<h3 id="heading-the-challenges">🌊The challenges</h3>
<p>The biggest challenge was turning a react app into a chrome extension. The problem comes when react creates multiple chunks of js files in the production build by default. And it violates the CSP (<em>Content Security Policy</em>) of the chrome extension. </p>
<p>I was stuck. I thought I won't be able to fix this. I spent the next few days looking for a way to make it work. Eventually, I tried everything I could find. Creating a  <code>.env</code> file with <code>INLINE_RUNTIME_CHUNK=false</code> worked but it wasn't the best solution. Finally, I found another way by configuring the craco. I am glad <strong>I didn't give up.</strong></p>
<h3 id="heading-the-final-product">📦 The final product</h3>
<p>I am very happy with the final outcome. This is exactly what I wanted to build. Here are a few cool features of <a target="_blank" href="https://tabwave.vercel.app">Tabwave</a>.</p>
<ul>
<li>I wanted it to be a new tab chrome extension without losing the default feature of adding shortcuts in chrome. So you can add shortcuts to your favorite sites.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1609506631381/jiNQug56p.gif" alt="shortcuts-tabwave.gif" /></p>
<ul>
<li>Can I call it a productivity app without a to-do list? No way. Get things done by managing your daily tasks.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1609506772706/5JigTpNiV.gif" alt="taskapp-tabwave.gif" /></p>
<ul>
<li>A Pomodoro clock to increase your productivity. Trust me, I am following the Pomodoro technique and it's awesome. <ul>
<li>Focus for 25 min on your tasks </li>
<li>Take 5 min break.</li>
<li>Repeat</li>
</ul>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1609506866437/DJBuTbLsn.gif" alt="pomodoro-tabwave.gif" /></p>
<ul>
<li>Sticky notes to keep your brainstorming ideas and important stuff.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1609507357034/jYj7wRIy_.gif" alt="notes.gif" /></p>
<ul>
<li>If you keep working all day, you might get tired or bored and might want something different to do. Well, I got you covered. Get a random activity idea in just one click. </li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1609507028333/jyhJQTW7C.gif" alt="activity-tabwave.gif" /></p>
<ul>
<li>Did somebody say dark mode?</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611390056038/x7NsqTwx5.png" alt="frame_chrome_mac_dark (5).png" /></p>
<h3 id="heading-excited-to-try-it">🤩 Excited to try it</h3>
<p>I have deployed its web version at <strong><a target="_blank" href="https://tabwave.now.sh">tabwave.now.sh</a></strong>. So you can try without installing it at all. And if you love it, then only install it. Sounds okay! It's available on both Chrome and Firefox browsers. </p>
<blockquote>
<p>Install Tabwave on <a target="_blank" href="https://chrome.google.com/webstore/detail/tabwave/kilclhheeidneiiiaeggbadgommkdhbc">Chrome</a> or <a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/tabwave/">Firefox</a>.  </p>
</blockquote>
<h3 id="heading-wrapping-up">Wrapping up</h3>
<p>This has been a great experience for me. The excitement of building something I always wanted to build was awesome. I can't explain how joyful I felt after fixing that nasty bug or completing that small feature. It's so satisfying. Sometimes it got frustrating, but eventually, I somehow ended up solving the problem. </p>
<p>It's not just about coding. It's about problem-solving. The more you do it, The better you become. I have always believed in learning by building and I will encourage you to do the same.</p>
<hr />
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy learning!</p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[2020: A year-end reflection]]></title><description><![CDATA[Hey everyone. I hope you all are doing good. This is the time of the year when we all look back and see the flashback of all the things we did throughout the year. 2020 was tough. But I got to say it was the best one I had. So I am going to reflect a...]]></description><link>https://blog.rutik.dev/2020-a-year-end-reflection</link><guid isPermaLink="true">https://blog.rutik.dev/2020-a-year-end-reflection</guid><category><![CDATA[DevLife]]></category><category><![CDATA[learning]]></category><category><![CDATA[Self Improvement ]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Sun, 20 Dec 2020 04:25:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1658470875961/OTZ5Muftt.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey everyone. I hope you all are doing good. This is the time of the year when we all look back and see the flashback of all the things we did throughout the year. 2020 was tough. But I got to say it was the best one I had. So I am going to reflect and share my journey here. </p>
<h3 id="heading-i-started-writing">✍ I started writing</h3>
<p>Writing is the best thing I did this year. I created my blog on hashnode back in 2019 but it wasn't active for months. In 2020 I decided to revive it and started writing again. I am glad I discovered hashnode which I think was a turning point for me.  I always believed in the mantra of learn-apply-share. So I started sharing my learnings, experiences, and documenting my journey. </p>
<p>I had no idea until <a class="user-mention" href="https://hashnode.com/@iamshadmirza">Mohd Shad Mirza</a> introduced me with <em>#TheNextBigWriter</em>. His feedback was crucial and helped me improve my writing a lot. The community has given me so much and I am thankful for it.</p>
<p>This year I wrote 14 blogs which got around 25k+ views </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1608265364758/R4lkrnURc.png" alt="screenshot (75).png" /></p>
<h3 id="heading-the-developer-community">🥑 The developer community</h3>
<p>The more I got involved in the developer communities, the more I was learning new stuff. I became active on Twitter and started following folks who inspired me a lot. I thought Twitter is a waste of time until I realized how powerful and helpful it can be. I learned to use it the right way. I kept sharing and interacting with awesome people. I learned a lot just by watching what they do. </p>
<h3 id="heading-learning-by-building">🛠 Learning by building</h3>
<p>When everyone else I know was running for collecting certificates by doing courses after courses I realized it's not helping me much to learn and grow.  So I started focusing on building stuff by myself. And I learned a lot by creating my projects, fixing bugs, finding solutions, writing bad code, and then trying to improve it. </p>
<p>I built so many projects by applying what I have learned. I Contributed to open source and even built open-source projects. <a target="_blank" href="https://coverview.now.sh/">CoverView</a>, the one I built for fun has even got 100+ stars on GitHub. And last week I won the giveaway of Rs 5000 from Devfolio because of this project. This is the first time I earned money by writing code.  </p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/Devfolioco/status/1338430951982989312?s=20">https://twitter.com/Devfolioco/status/1338430951982989312?s=20</a></div>
<h3 id="heading-skills">👩‍💻 Skills</h3>
<p>I got better at writing code. I learned JavaScript, react, and played with styled-components and TailwindCSS. I started seeing apps and websites from a developer's perspective. <em>I transitioned from a code newbie to an intermediate level.</em> I got better at communicating with people and expressing ideas too. </p>
<h3 id="heading-giving-back">🦄 Giving back</h3>
<p>I am a part of the Developer students club on our campus. So I conducted my first ever live session on youtube this year. </p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/IEp_ZTrNR9M">https://youtu.be/IEp_ZTrNR9M</a></div>
<p> I was nervous and in self-doubt but the end, it was all worth it. I learned a lot and had a great experience. Now I feel maybe I can start a youtube channel someday. </p>
<h3 id="heading-books-read">📖 Books read</h3>
<p>I am an avid reader but I read only a few books this year. Rather than just reading so many books I decided to read just a few and try to apply them in my life. Inner Engineering, Atomic habits, and deep work were a few of them.  </p>
<h3 id="heading-burnout-and-failures">⛈ Burnout and failures</h3>
<p>I had ups and downs. The journey wasn't all about milestones. I have failed. I have failed a lot. And learned from my mistakes. I pushed myself so much and faced burnout. I committed to stuff and failed to complete it.  But I realized the importance of having a balance of everything. I took breaks, started new hobbies, and learned to appreciate other things in life.</p>
<h3 id="heading-finishing-up">⏳ Finishing up</h3>
<p>Apart from these, there are so many little things I learned and experienced. And each one of them has helped me become a better developer, a better person. I am grateful for all the people who encouraged me, mentored me, and gave me feedback to improve. </p>
<blockquote>
<p>I encourage you all to review your year and try to write about it. It helped me understand how far I have come and how far I have to go. </p>
</blockquote>
<p>Well, I even started with my next year's plans. There is a long way to go and I can't wait to explore more.</p>
<hr />
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy learning!</p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[Reflection of Week 4 at FullStack Camp]]></title><description><![CDATA[It's been 4 weeks since I joined the FullStackCamp program, an initiative to help students grow and level up their skills. And I can see the difference in the clarity of my thoughts.
When you are starting your career, having a good mentor helps a lot...]]></description><link>https://blog.rutik.dev/reflection-of-week-4-at-fullstack-camp</link><guid isPermaLink="true">https://blog.rutik.dev/reflection-of-week-4-at-fullstack-camp</guid><category><![CDATA[General Programming]]></category><category><![CDATA[React]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[Tailwind CSS]]></category><category><![CDATA[DevLife]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Sat, 05 Dec 2020 02:57:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1658470712508/FisasnbOt.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It's been 4 weeks since I joined the FullStackCamp program, an initiative to help students grow and level up their skills. And I can see the difference in the clarity of my thoughts.</p>
<p>When you are starting your career, having a good mentor helps a lot. Someone who has gone through the same path you are about to start can make things easy for you. I have always tried to learn from experienced people by asking the right questions. You can learn a lot just by watching them, listening to their stories and experiences.</p>
<h3 id="heading-the-trap-of-failure">🤯 The Trap of failure</h3>
<p>I have failed multiple times in the past because I tried to learn everything all at once. The problem is that we want to achieve more in less time. I want to learn about UI/UX, JavaScript, react, node, data structures, algorithms, aptitude, and a lot of stuff. But we need to understand that we can't learn everything all at once. We have to respect the process. There are no shortcuts. </p>
<p>So what I am doing right now? How I am taking this?. one-word priority. I know what are my priorities. <em>Everything is important but the question is what's more important.</em> The trick is to delay the less important stuff.</p>
<h3 id="heading-this-week-i-learned">📅 This week I learned</h3>
<p>This week I learned about react hooks and worked on a few small projects. Also, I started working on a side project I was thinking of for a long time. Will share about it once it is completed.</p>
<h4 id="heading-absolute-imports">Absolute Imports</h4>
<p>Do you know you can configure your <code>create-react-app</code> application to support importing modules using absolute paths?</p>
<p>Just create a jsconfig.json file like this in the root directory. <a target="_blank" href="https://code.visualstudio.com/docs/languages/jsconfig">jsconfig.json reference</a></p>
<pre><code class="lang-javascript"><span class="hljs-comment">//jsconfig.json</span>
{
  <span class="hljs-string">"compilerOptions"</span>: {
    <span class="hljs-string">"baseUrl"</span>: <span class="hljs-string">"src"</span>
  },
  <span class="hljs-string">"include"</span>: [<span class="hljs-string">"src"</span>]
}
</code></pre>
<p>And now you can get rid of <code>../.../</code> and import modules like</p>
<pre><code class="lang-javascript"><span class="hljs-comment">// import Navbar from '../../components/Navbar';</span>
<span class="hljs-keyword">import</span> Navbar <span class="hljs-keyword">from</span> <span class="hljs-string">'components/Navbar'</span>;
</code></pre>
<h3 id="heading-project-hunt">🎉 Project hunt</h3>
<p>Wait, do you mean product hunt? No. We in the FullStackCamp community have started working on an open-source community project similar to product hunt. Here rather than products we share projects. 😅 So project hunt. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1607104601740/uNh9kGj--.gif" alt="projecthunt.gif" /></p>
<p>I am working on mostly the frontend part with react and tailwindcss. And the good thing is the mentors share valuable feedback on each PR which is helping me learn from my mistakes and get better at writing quality code.</p>
<blockquote>
<p>Learn more about <a target="_blank" href="https://www.notion.so/Frontbench-fdbe59767b1741d6857efa2ce3a06ebc">FullStackCamp</a></p>
</blockquote>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/WankhadeRutik/status/1334082668980527104">https://twitter.com/WankhadeRutik/status/1334082668980527104</a></div>
<hr />
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy learning!</p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[ES6 and the road to react]]></title><description><![CDATA[The thing with JavaScript is that it takes a week to learn the basics but ages to understand it completely. Even though I have worked with JavaScript a lot, I still get stuck and feel uncomfortable sometimes. So this week I decided to dive deep into ...]]></description><link>https://blog.rutik.dev/es6-and-the-road-to-react</link><guid isPermaLink="true">https://blog.rutik.dev/es6-and-the-road-to-react</guid><category><![CDATA[General Programming]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[React]]></category><category><![CDATA[ES6]]></category><category><![CDATA[General Advice]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Wed, 25 Nov 2020 02:49:17 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1658470548900/HeghJKLMe.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The thing with JavaScript is that it takes a week to learn the basics but ages to understand it completely. Even though I have worked with JavaScript a lot, I still get stuck and feel uncomfortable sometimes. So this week I decided to dive deep into it. </p>
<h3 id="heading-i-dont-know-js-yet">📔 I don't know Js yet</h3>
<p>Tutorials are great but they don't provide a deeper understanding of the language. So I picked a book series called <strong>"You don't know Js"</strong> by Kyle Simpson. It focuses on the core mechanisms of the JavaScript language. After going through a few chapters I had to say that I don't know Js yet.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1605794885239/gJ4hCTT1h.png" alt="screenshot (67).png" /></p>
<p>Its first edition is free to read on <a target="_blank" href="https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/README.md">GitHub</a>. And I would highly recommend for anyone who wants to deeply understand JavaScript. Not recommended for complete begineers.</p>
<h3 id="heading-es6-and-react">⚛ ES6 and react</h3>
<p>If you have spent enough time with JavaScript and want to jump straight to learning react, Wait. Have you learned about ES6? Because If you haven't, you might want to change your mind. Let's see why.</p>
<h3 id="heading-what-is-es6-and-why-its-important">🤷‍♂️ What is ES6 and Why it's important?</h3>
<p>ES6 is the 6th version of ECMAScript, (<em>a standardized name for JavaScript</em>) which was released in 2015 with new features and enhancements. And react uses some of its features like classes, modules, destructuring, etc. So if you don't want to scratch your head and wonder what's happening while learning react, Take some time and learn ES6. It will help you understand react better and easily.</p>
<p>I will give you a brief idea about some of its features.</p>
<h3 id="heading-let-and-const">let and const</h3>
<p>Earlier we used <code>var</code> for declaring variables which is function scoped, but ES6 introduced two new ways. i.e. <code>let</code> and <code>const</code> which are block-scoped. Anything inside { } is a block. for ex. for loop, if-else.</p>
<pre><code class="lang-js"><span class="hljs-comment">// value can be changed.</span>
<span class="hljs-keyword">let</span> someVariable = <span class="hljs-number">12</span>; 

<span class="hljs-comment">// read-only, value cannot be changed</span>
<span class="hljs-keyword">const</span> PI = <span class="hljs-number">3.14</span>;
</code></pre>
<h3 id="heading-template-literals">Template literals</h3>
<p>Template literals are another way of creating strings. You can create multiline strings and can embed variables and expression using <code>${expression}</code> syntax.</p>
<pre><code class="lang-js"><span class="hljs-keyword">let</span> age = <span class="hljs-number">20</span>;
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">`Hi, I am Rutik, I am <span class="hljs-subst">${age}</span> years old.`</span>)   
<span class="hljs-comment">// Hi, I am Rutik, I am 20 years old.</span>
</code></pre>
<h3 id="heading-arrow-functions">Arrow functions</h3>
<p>Arrow functions are mainly syntactic sugar for defining function expressions. </p>
<pre><code class="lang-js"><span class="hljs-comment">// Regular function</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">sum</span> (<span class="hljs-params">a,b</span>)</span>{
<span class="hljs-keyword">return</span> a+b;
}

<span class="hljs-comment">//Arrow Function</span>
<span class="hljs-keyword">var</span> sum = <span class="hljs-function">(<span class="hljs-params">a,b</span>) =&gt;</span> { <span class="hljs-keyword">return</span> a+b; }
</code></pre>
<p>The primary use case of arrow functions is for functions that get applied over and over again to items in a list. For example, if you have an array of values that you want to transform using a map, an arrow function is ideal.
But we can't use arrow functions in every situation. There are certain limitations. <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">read more</a></p>
<blockquote>
<p>In arrow functions, the behavior of <code>this</code> is different. Arrow functions do not default <code>this</code> to the window scope, rather they execute in the scope they are created.</p>
</blockquote>
<h3 id="heading-modules">Modules</h3>
<p>A module is nothing but a JavaScript code written in a separate file. Before ES6 we had to use libraries like CommonJS, requireJS, etc to work with modules. But now with ES6, JavaScript has its own built-in modules. The idea is to access a piece of code, only when needed.</p>
<h4 id="heading-import-and-export">Import and export</h4>
<p>If we want something declared in a module to be available somewhere else, we export that module using an export statement. You can export any top-level function, class, var, let, or const.</p>
<pre><code class="lang-js"><span class="hljs-comment">// utils.js</span>
<span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> pi = <span class="hljs-number">3.14</span>;
<span class="hljs-keyword">export</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">add</span>(<span class="hljs-params">x, y</span>)</span>{
    <span class="hljs-keyword">return</span> x + y;
}
</code></pre>
<p>All this exported code will be available where we import it.</p>
<pre><code class="lang-js"><span class="hljs-comment">// app.js</span>
<span class="hljs-keyword">import</span> {pi, add} <span class="hljs-keyword">from</span> utils;
</code></pre>
<p>We will use the same concept while dealing with components in react. </p>
<h3 id="heading-class">Class</h3>
<p>ES6 introduced a new syntax for creating a class.</p>
<pre><code class="lang-js"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Person</span> </span>{ 
  <span class="hljs-keyword">constructor</span>(name, role) {
    <span class="hljs-built_in">this</span>.name = name;
    <span class="hljs-built_in">this</span>.role = role;
  }

   sayHi() {
    <span class="hljs-keyword">return</span> (<span class="hljs-string">'Hi ! I am '</span> + <span class="hljs-built_in">this</span>.name + <span class="hljs-string">', I am a '</span> + <span class="hljs-built_in">this</span>.role);
  }
}

<span class="hljs-keyword">let</span> person1 = <span class="hljs-keyword">new</span> Person(<span class="hljs-string">"Rutik"</span>, <span class="hljs-string">"Frontend developer"</span>);

person1.sayHi(); 
<span class="hljs-comment">// returns "Hi ! I am Rutik, I am a Frontend developer"</span>
</code></pre>
<h3 id="heading-destructuring">Destructuring</h3>
<p> Destructuring, the name itself suggests breaking down a complex structure into small individual parts. We can break down an array or object into individual variables.</p>
<h4 id="heading-array-destructuring">Array Destructuring</h4>
<pre><code class="lang-js"><span class="hljs-keyword">let</span> a, b;
[a, b] = [<span class="hljs-number">10</span>, <span class="hljs-number">20</span>];
<span class="hljs-built_in">console</span>.log(a); <span class="hljs-comment">// 10</span>
<span class="hljs-built_in">console</span>.log(b); <span class="hljs-comment">// 20</span>
</code></pre>
<h4 id="heading-object-destructuring">Object Destructuring</h4>
<pre><code class="lang-js"><span class="hljs-keyword">const</span> student = {
    <span class="hljs-attr">firstname</span>: <span class="hljs-string">'Jhon'</span>,
    <span class="hljs-attr">lastname</span>: <span class="hljs-string">'Doe'</span>
};

<span class="hljs-comment">// Object Destructuring</span>
<span class="hljs-keyword">const</span> { firstname, lastname } = student;

<span class="hljs-built_in">console</span>.log(firstname, lastname); <span class="hljs-comment">// Jhon Doe</span>
</code></pre>
<p>You will use these concepts in useState hook or while sending props to a component in react.</p>
<p>And there are more such features like</p>
<ul>
<li>promises</li>
<li>default function parameters</li>
<li>rest operator</li>
<li>spread operator</li>
<li>and many more.</li>
</ul>
<p>A good grasp of these concepts will help you in the early stages of learning react. Next, I started with react fundamentals and brushed up a few basic concepts like components, props, state, etc. I Will talk about it more in the next week. Till then goodbye.</p>
<hr />
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy learning!</p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[A brief about JavaScript, clean code, and unit testing]]></title><description><![CDATA[👋 Hey everyone. Welcome back. 
It's week 2 of my #12weeks12blogs challenge. And I must say it's not easy to stay motivated all the time. I realized the importance of knowing your next move. Discipline is hard. So I spent an entire day thinking, plan...]]></description><link>https://blog.rutik.dev/a-brief-about-javascript-clean-code-and-unit-testing</link><guid isPermaLink="true">https://blog.rutik.dev/a-brief-about-javascript-clean-code-and-unit-testing</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[General Programming]]></category><category><![CDATA[DevLife]]></category><category><![CDATA[clean code]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Mon, 16 Nov 2020 03:39:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1674726958422/69547a76-ae39-4a39-a8f5-3efba7362774.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p> 👋 Hey everyone. Welcome back. </p>
<p>It's <strong>week 2</strong> of my <em>#12weeks12blogs</em> challenge. And I must say it's not easy to stay motivated all the time. I realized the importance of knowing your next move. Discipline is hard. So I spent an entire day thinking, planning, and digging my bookmarks of resources, to create an <em>ultimate plan</em>  based on my goals.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1605497465017/pAC6PWFjM.png" alt="master plan.png" /></p>
<h2 id="heading-back-to-basics">🐣 Back to basics</h2>
<p>It's weird. The same topics when you revisit after a long time, you understand a lot differently. You get a new perspective and lots of <em>' Oh, so this is how it works'</em> moments.</p>
<p>This week I revisited DOM and it's basic concepts like</p>
<ul>
<li>Accessing dom elements</li>
<li>Traversing the dom and making changes to it.</li>
<li>Handling different events in JavaScript</li>
</ul>
<p>And made a simple app that counts characters, words, and estimates reading time while typing. It was super easy and fun. You can see it live <a target="_blank" href="https://counterbox.now.sh">here</a>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1605438918775/V496VBR8E.gif" alt="counterbox.gif" /></p>
<p>One good thing I observed was how I was coming up with better solutions every time. It's a big win. And that brings me to the importance of writing clean code. </p>
<h2 id="heading-why-clean-code">🤷‍♂️  Why clean code?</h2>
<blockquote>
<p>"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." - Martin Fowler</p>
</blockquote>
<p>Even the bad code works well. Then why should I care about writing clean code? It's simple. Clean code is easy to understand, change, and maintain. If you want to be a <strong>good programmer</strong>, clean code is important. I went through the code I wrote a year ago and now I know. When I first heard about clean code, I thought it's just indenting the code well. But it's way more than that. Here are a few things I learned about clean code.</p>
<ul>
<li>Use meaningful names for variables, functions, classes, etc. Robin Wieruch has explained it really well in <a target="_blank" href="https://www.robinwieruch.de/javascript-naming-conventions">this</a> blog.</li>
<li>Make your Functions do one thing</li>
<li>Write comments only when needed. Good code mostly documents itself.</li>
<li>Don't repeat yourself.</li>
</ul>
<p>It will take some time and practice for me to write clean code. It's an iterative process of learning and improving. <em>Clean Code by Robert Martin</em> is next on my reading list. But for now, this repo is enough to get started.</p>
<p><a target="_blank" href="https://github.com/ryanmcdermott/clean-code-javascript"><img src="https://github-readme-stats.vercel.app/api/pin/?username=ryanmcdermott&amp;repo=clean-code-javascript" alt="ReadMe Card" /></a></p>
<h2 id="heading-unit-testing-in-javascript">✅ Unit testing in JavaScript</h2>
<p>Testing is simply checking if our code is working right or not. And unit testing is a technique where we divide our code into small isolated units and then write tests to check if the unit works as expected.</p>
<p>I explored <a target="_blank" href="https://jestjs.io">Jest</a>, a popular JavaScript testing framework, and wrote my first unit test. The jest docs are pretty good. And this <a target="_blank" href="https://www.youtube.com/playlist?list=PL0zVEGEvSaeF_zoW9o66wa_UCNE3a7BEr">series on the unit testing</a> by fun fun function is too good. Testing is an important aspect of software development and I will definitely dive deep into it in the nearby future.</p>
<p>So far it's been a great start for me, and I am very excited to learn more in the upcoming weeks. </p>
<p><strong>Thread of the week:</strong></p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/RandallKanna/status/1325666898084679680">https://twitter.com/RandallKanna/status/1325666898084679680</a></div>
<hr />
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy Learning!  </p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item><item><title><![CDATA[Week 1: Documenting the learning process]]></title><description><![CDATA[I looked at my GitHub contribution-graph Today, it's almost a year now since I started my coding journey. What a coincidence!

I was a complete beginner. I knew nothing. The communities played a big part in helping me figure out what to learn. Throug...]]></description><link>https://blog.rutik.dev/week-1-documenting-the-learning-process</link><guid isPermaLink="true">https://blog.rutik.dev/week-1-documenting-the-learning-process</guid><category><![CDATA[General Programming]]></category><category><![CDATA[DevLife]]></category><category><![CDATA[learning]]></category><category><![CDATA[Web Development]]></category><dc:creator><![CDATA[Rutik Wankhade]]></dc:creator><pubDate>Mon, 09 Nov 2020 02:38:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1658468392588/cZceXJe04.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I looked at my GitHub contribution-graph Today, it's almost a year now since I started my coding journey. What a coincidence!</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1604847563099/yD7OO4apN.png" alt="github graph -rutik-wankhade.png" /></p>
<p>I was a complete beginner. I knew nothing. The communities played a big part in helping me figure out what to learn. Throughout the year I kept learning and pushing the code. To be honest those green dots were so addictive that I used to try so hard to maintain the streak. Now I know how harmful it can be. 
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1604848382323/N0TMHnhd3.png" alt="rutik-wankhade-github-graph-2020.png" />
I know. It's not the best way to measure someone's work. But looking back, I can see my progress, what mistakes I did and the lessons I learned.
Though I don't care much about the stats anymore. </p>
<h2 id="heading-a-fresh-start">A fresh start</h2>
<p>I am more into the process now. And the best way to track my progress is to document the process. I know some tech, made a few projects too but now <strong>it's time to start afresh</strong>. </p>
<h4 id="heading-so-whats-the-motivation">So what's the motivation?</h4>
<ul>
<li>For a long time I felt like I am not utilizing my full potential. I believe I can do a lot more and that pushed me to make a move.</li>
<li>I finished reading <strong>"Deep Work"</strong> by Cal Newport. And I want to implement it and make a difference in my professional life.</li>
<li>Recently I have become a part of a mentorship program called <strong>FullStackCamp</strong> by <a target="_blank" href="https://twitter.com/HQdeepak">Deepak Kumar</a> which will help me learn and apply more.</li>
<li>I will be graduating in 2021 and I want to be ready to face the real world.   </li>
</ul>
<h2 id="heading-the-challenge">The challenge</h2>
<p>So I am taking <em>the challenge of writing a blog every week for the next 12 weeks</em>. I will write about the things I learned throughout the week, the resources I used, the ups and downs, and the whole process of learning. I will document everything. </p>
<p>I know committing to something is super easy. Execution is what makes the difference. I am well aware of all the challenges I have to face and the sacrifices I have to make. It won't be easy. But I will give my best.</p>
<h2 id="heading-the-first-week">📅 The first week</h2>
<p>The first week was all about brushing up on my fundamental skills.</p>
<ul>
<li>I read about HTML and CSS and got to know some new stuff that I didn't know earlier. </li>
<li>Created a simple portfolio site and practiced on the Freecodecamp's curriculum.</li>
<li>Learned git concepts in deep and started using emojis in my git commit messages. It's cool you know. You can follow <a target="_blank" href="https://gitmoji.carloscuesta.me/">Gitmoji's</a> guide or you can follow this simple guide <a target="_blank" href="https://github.com/ahmadawais/Emoji-Log/">emoji-log</a> for commit messages.</li>
</ul>
<p>Also, I love watching talks, whether it's a ted talk or some other tech conference I enjoy watching them. So to make this journey more interesting I will be sharing my favorite talk every week here. Maybe an insightful Twitter thread too and many more.</p>
<p>So this is exciting and fun. Let's see how it goes. `</p>
<p><strong>Talk of the week:</strong>
<a target="_blank" href="https://youtu.be/9vJRopau0g0">The Super Mario Effect - Tricking Your Brain into Learning More | Mark Rober</a></p>
<hr />
<p>I keep writing about the things I learned and applied. So you can connect with me on <a target="_blank" href="https://twitter.com/WankhadeRutik">Twitter</a>, <a target="_blank" href="https://github.com/rutikwankhade">Github</a>  or <a target="_blank" href="https://www.linkedin.com/in/rutik-wankhade">Linkedin</a>. Also, subscribe to my newsletter and stay up-to-date with my latest blog posts.</p>
<p>⚡ Happy Learning!  </p>
<div class="hn-embed-widget" id="substack"></div>]]></content:encoded></item></channel></rss>