<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: MC Naveen</title>
    <description>The latest articles on DEV Community by MC Naveen (@mcnaveen).</description>
    <link>https://dev.to/mcnaveen</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F212003%2F1bba1947-dcee-4b74-ae48-1110b592b558.png</url>
      <title>DEV Community: MC Naveen</title>
      <link>https://dev.to/mcnaveen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mcnaveen"/>
    <language>en</language>
    <item>
      <title>5 Critical Mistakes Indie Developers Make When Gathering User Feedback</title>
      <dc:creator>MC Naveen</dc:creator>
      <pubDate>Mon, 09 Feb 2026 06:30:51 +0000</pubDate>
      <link>https://dev.to/mcnaveen/5-critical-mistakes-indie-developers-make-when-gathering-user-feedback-2053</link>
      <guid>https://dev.to/mcnaveen/5-critical-mistakes-indie-developers-make-when-gathering-user-feedback-2053</guid>
      <description>&lt;p&gt;👋 Hey Dev.to community!&lt;/p&gt;

&lt;p&gt;As an indie hacker or solo developer building your SaaS or side project, you've probably poured countless hours into coding, debugging, and launching. But what happens next?&lt;/p&gt;

&lt;p&gt;Users come, they try it, and.. often disappear without a trace. No rants, no requests. just radio silence.&lt;/p&gt;

&lt;p&gt;You hop on Reddit's r/indiehackers or r/SaaS, or even X, asking "How do I get real feedback from quiet users?" The advice pours in. surveys, emails, calls. You try them, but end up with fluffy responses like "it's okay" or "add more stuff."&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The real issue? It's not your users, it's your feedback strategy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After digging through tons of threads on Reddit and X, I've pinpointed the top 5 mistakes that sabotage growth, waste time, and lead to unnecessary features. Fix these, and feedback becomes your secret weapon for building what users actually want&lt;/p&gt;

&lt;p&gt;Let's break them down.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mistake 1: Delaying Feedback Until After Launch ("Build It and They Will Complain")
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Pitfall
&lt;/h3&gt;

&lt;p&gt;You hide away for months, coding in isolation. no beta users, no early chats, no validation. Launch hits, you promote on Product Hunt or Hacker News, and users arrive.&lt;/p&gt;

&lt;p&gt;Then, a comment: "Neat, but I already use [rival tool] for this, and it's better."&lt;/p&gt;

&lt;p&gt;Oof. You've just reinvented the wheel, but worse.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why It Hurts
&lt;/h3&gt;

&lt;p&gt;Early input is low-cost; building blindly is pricey. Devs often postpone because "it needs to be polished" or "people won't get the idea from a mockup."&lt;/p&gt;

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

&lt;p&gt;But as developer &lt;a href="https://x.com/housecor/status/1679831830919274496" rel="noopener noreferrer"&gt;Cory House shared on X&lt;/a&gt;: "Feedback from non-users reveals why they wouldn't touch your product. that's pure gold."&lt;/p&gt;

&lt;p&gt;A Reddit thread on r/indiehackers echoes this: Founders wasting months on unwanted tools, wishing they'd checked demand first.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Fix It: Validate Early
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Spin up a quick landing page (try Carrd or a simple HTML setup).&lt;/li&gt;
&lt;li&gt;Reach out to 20 potential users via Reddit, X, or LinkedIn DMs.&lt;/li&gt;
&lt;li&gt;Request a short chat: "I'm working on [tool] for [problem]. Mind sharing how you handle it now?"&lt;/li&gt;
&lt;li&gt;Probe for real pain: "What bugs you about your current setup? Would you pay for a fix?"&lt;/li&gt;
&lt;li&gt;Only build if most show interest and willingness to pay.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Real win: A dev interviewed 30 peers pre-code, pivoted from deployment to monitoring based on complaints, and hit $10K MRR fast.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Mistake 2: Not Truly Listening (Or Defending Your Choices)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Pitfall
&lt;/h3&gt;

&lt;p&gt;A user says: "Onboarding feels off."&lt;/p&gt;

&lt;p&gt;You think: "What? I perfected that!" And respond: "Did you see the hints?"&lt;/p&gt;

&lt;p&gt;Congrats, you've shut them down.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why It Hurts
&lt;/h3&gt;

&lt;p&gt;Defensiveness blocks insights.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Why It Hurts
&lt;/h3&gt;

&lt;p&gt;Defensiveness blocks insights.&lt;/p&gt;

&lt;p&gt;As indie dev &lt;a href="https://x.com/javilopen/status/1733935475432313066" rel="noopener noreferrer"&gt;Javi Lopez tweeted&lt;/a&gt;: "Listen, question, thank. Never debate."&lt;/p&gt;

&lt;p&gt;Users might say "needs dark mode" but mean "UI strains my eyes at night." Dismissing or arguing misses the core issue.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A &lt;a href="https://www.reddit.com/r/indiehackers/comments/1pmk8ug/how_do_you_know_when_user_feedback_is_actually/" rel="noopener noreferrer"&gt;r/indiehackers post&lt;/a&gt; asks how to spot "misleading" feedback.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  How to Fix It: Be the Empathetic Listener
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Respond gratefully: "Appreciate the input, tell me more about the confusion."&lt;/li&gt;
&lt;li&gt;Use the 5 Whys: Keep asking why to uncover roots. &lt;/li&gt;
&lt;li&gt;Always thank, even for tough feedback. &lt;/li&gt;
&lt;li&gt;Evaluate privately later.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example: A user called pricing "pricey." Asking "What did you expect?" revealed hidden annual only options. Added monthly, problem solved.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Pro tip from &lt;a href="https://x.com/joulee/status/1969117097512091699" rel="noopener noreferrer"&gt;Julie Zhuo&lt;/a&gt;: Ask "What were you doing? What did you expect? How to improve?"&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Mistake 3: Making Feedback Hard or Unrewarding
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Pitfall
&lt;/h3&gt;

&lt;p&gt;You slap a "Feedback" link to a form and... crickets. Maybe one response, from yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why It Hurts
&lt;/h3&gt;

&lt;p&gt;Users are swamped. Your app isn't their priority. If it takes effort (switching tabs, long forms), they'll skip it. &lt;a href="https://www.reddit.com/r/SaaS/comments/1c3u29w/indie_hackers_how_do_you_collect_user_feedback/" rel="noopener noreferrer"&gt;A r/SaaS thread&lt;/a&gt; tells more about low email responses from 200 users.&lt;/p&gt;

&lt;p&gt;Solution? Rewards and ease.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Fix It: Simplify and Sweeten
&lt;/h3&gt;

&lt;p&gt;In-app tools: Use widgets for instant input with auto-screenshots (e.g., similar to &lt;em&gt;&lt;a href="https://feedbackjar.com/?ref=dev.to"&gt;FeedbackJar&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Incentives: Offer discounts, beta perks, or swag for responses.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Timing: Ask post-success (e.g., after a task) or at churn.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/_saberamani/status/2019108462349738452" rel="noopener noreferrer"&gt;Saber Amani on X got 50+ pre-launch responses&lt;/a&gt; via polls and DMs. Another founder boosted conversions 18% with post-purchase questions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mistake 4: Missing Patterns in Feedback
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Pitfall
&lt;/h3&gt;

&lt;p&gt;Feedback piles up: integrations, UI tweaks, imports.&lt;/p&gt;

&lt;p&gt;You freeze or chase one loud voice, building for nobody.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why It Hurts
&lt;/h3&gt;

&lt;p&gt;Without spotting trends, it's chaos. &lt;a href="https://www.reddit.com/r/SideProject/comments/1c3u663/indie_hackers_how_do_you_collect_user_feedback/" rel="noopener noreferrer"&gt;r/indiehackers discusses&lt;/a&gt; distinguishing opinions from needs, patterns are key. Varied wording hides common issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Fix It: Organize and Score
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Tag items: Bug, Feature, UX, etc.&lt;/li&gt;
&lt;li&gt;"Rule of 5": Act on 5+ mentions.&lt;/li&gt;
&lt;li&gt;ICE score: Impact × Confidence × Ease.&lt;/li&gt;
&lt;li&gt;Ignore outliers unless widespread.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example: Built a feature for one big client, flopped.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Lesson: Check user impact. &lt;a href="https://feedbackjar.com/ref=dev.to"&gt;Do this easily with our feedback tool&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Mistake 5: No Feedback Follow-Up
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Pitfall
&lt;/h3&gt;

&lt;p&gt;You act on input but don't update the user. They feel ignored and bail.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why It Hurts
&lt;/h3&gt;

&lt;p&gt;One-way feedback erodes trust. Dave G on X calls broken loops the top reason for wrong builds. A r/indiehackers playbook stresses updating users.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  How to Fix It: Always Circle Back
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Acknowledge fast.&lt;/li&gt;
&lt;li&gt;Notify on launches: Emails, in-app alerts.&lt;/li&gt;
&lt;li&gt;Explain nos politely.&lt;/li&gt;
&lt;li&gt;Public roadmap for transparency.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A founder cut churn 15% with "You Asked, We Built" updates.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Bonus: Poor Questions Yield Poor Answers&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Skip "Do you like it?" for "What frustrated you? What would you replace us with?"&lt;/p&gt;




&lt;h3&gt;
  
  
  Your Action Plan
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pre-launch: Interviews and pages.&lt;/li&gt;
&lt;li&gt;Ease: In-app, rewards.&lt;/li&gt;
&lt;li&gt;Listen: No debates.&lt;/li&gt;
&lt;li&gt;Patterns: Tag and prioritize.&lt;/li&gt;
&lt;li&gt;Loop: Notify always.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb24unr24ef04jhe0bpvh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb24unr24ef04jhe0bpvh.png" alt="Collect user feedback in 30 seconds" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://feedbackjar.com/ref=dev.to"&gt;Collect User feedback in 30 seconds with Feedbackjar&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As solo devs, feedback is your edge, act fast on direct insights. Treat it as fuel, not a task.&lt;/p&gt;

&lt;p&gt;What feedback mistakes have you made? Share in the comments!&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>feedback</category>
      <category>saas</category>
      <category>userfeedback</category>
    </item>
    <item>
      <title>Deploy Express API with Docker</title>
      <dc:creator>MC Naveen</dc:creator>
      <pubDate>Thu, 07 Jul 2022 05:49:51 +0000</pubDate>
      <link>https://dev.to/mcnaveen/deploy-express-api-with-docker-5b64</link>
      <guid>https://dev.to/mcnaveen/deploy-express-api-with-docker-5b64</guid>
      <description>&lt;p&gt;Docker is a cross-platform virtualization technology that provides OS-level virtualization to run applications on the cloud. It enables developers to ship their apps as containers and avoid system conflicts.&lt;/p&gt;

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

&lt;p&gt;Docker containers can be published via DockerHub or can be distributed locally using zip files. As of writing this article, DockerHub hosts more than one million public docker containers and images.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up our Express API
&lt;/h2&gt;

&lt;p&gt;Our Express API is pretty simple and contains only one GET route which says hello message.&lt;/p&gt;

&lt;p&gt;This is what my &lt;code&gt;index.js&lt;/code&gt; file looks like.&lt;/p&gt;

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

&lt;p&gt;Now, create a new file called Dockerfile and paste the below code inside it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM node:16

# Create app directory
WORKDIR /usr/src/app

# Copy package.json
COPY package*.json ./

# Install dependencies
RUN yarn install

# Copy all files
COPY . .

# Expose port 3000
EXPOSE 3000

# Run app
CMD [ "node", "index.js" ]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Breakdown of the Above file contents.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FROM Node:16 will pull the Node v16 image from the DockerHub&lt;/li&gt;
&lt;li&gt;WORKDIR /usr/src/app — Here is where our app lives inside the container&lt;/li&gt;
&lt;li&gt;COPY package*.json ./ — Copy the package.json from local dir to docker image.&lt;/li&gt;
&lt;li&gt;RUN yarn install — This will install all the dependencies.&lt;/li&gt;
&lt;li&gt;COPY . . — This will copy all the project files into the Docker image.&lt;/li&gt;
&lt;li&gt;EXPOSE 3000 — This will allocate a docker container to use port 3000&lt;/li&gt;
&lt;li&gt;CMD [ “node”, “index.js”] — This will start the Node JS app.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Dockerignore file:
&lt;/h2&gt;

&lt;p&gt;Now create a .dockerignore file and add the below content inside it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node_modules
yarn*.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Similar to &lt;code&gt;.gitignore&lt;/code&gt; this will ignore the below-mentioned files when building the docker image.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Docker Image:
&lt;/h2&gt;

&lt;p&gt;Once the above process is done, We have to build our project as a docker image to use it.&lt;/p&gt;

&lt;p&gt;Docker image can be built using a single line of command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build . -t="timeless-hello-world"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Running the Docker Image:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d -p 3000:3000 --name my-app timeless-hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Breakdown of the above command:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;-d will detach the terminal after the successful run. Otherwise, the server will stop if we close the terminal.&lt;/li&gt;
&lt;li&gt;-p 3000:3000 is the port we want our application to run.&lt;/li&gt;
&lt;li&gt;--name my-app is the name of the container.&lt;/li&gt;
&lt;li&gt;Finally, timeless-hello-world is the docker image we built in the above step.&lt;/li&gt;
&lt;li&gt;Once you press the enter key. You’ll be prompted with the container ID.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We can also verify whether the container is running using the docker ps command.&lt;/p&gt;

&lt;p&gt;If you open &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt; in the browser, You’ll get an API response like this.&lt;/p&gt;

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

&lt;p&gt;That’s it for this article. Hope this will be helpful to deploy your Express API using docker.&lt;/p&gt;

&lt;p&gt;Feel free to comment your thoughts and let me know if you face any difficulty.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Blazing fast comment system with Sveltejs and Supabase</title>
      <dc:creator>MC Naveen</dc:creator>
      <pubDate>Sun, 17 Apr 2022 03:22:11 +0000</pubDate>
      <link>https://dev.to/mcnaveen/i-made-a-blazing-fast-comment-system-for-jamstack-sites-a8l</link>
      <guid>https://dev.to/mcnaveen/i-made-a-blazing-fast-comment-system-for-jamstack-sites-a8l</guid>
      <description>&lt;p&gt;Hey There,&lt;/p&gt;

&lt;p&gt;MC.Naveen here. Developer of SupaComments. A simple open-source comment system for JamStack websites.&lt;/p&gt;

&lt;p&gt;Built with Sveltejs and Supabase&lt;/p&gt;

&lt;p&gt;For a long time, I wanted to build my own comment system. Finally had an opportunity when I found Supabase.&lt;/p&gt;

&lt;p&gt;This doesn't have a lot of features at the moment. But I'm happy to improve based on your suggestions.&lt;/p&gt;

&lt;p&gt;Feel free to check the &lt;a href="https://supacomments.vercel.app/?ref=dev-to"&gt;demo&lt;/a&gt;&lt;br&gt;
You can find the &lt;a href="https://github.com/mcnaveen/SupaComments"&gt;source code here&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Supacomments is the #3rd Product of the day in ProductHunt&lt;br&gt;
&lt;a href="https://www.producthunt.com/posts/supacomments?utm_source=badge-top-post-badge&amp;amp;utm_medium=badge&amp;amp;utm_souce=badge-supacomments"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RmV5_AUo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg%3Fpost_id%3D341628%26theme%3Ddark%26period%3Ddaily" alt="SupaComments - A blazing fast comment system for your JamStack sites | Product Hunt" width="250" height="54"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're a developer, Feel free to contribute.&lt;br&gt;
Thank you.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>jamstack</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Displaying numbers as k,M values in Reactjs</title>
      <dc:creator>MC Naveen</dc:creator>
      <pubDate>Thu, 03 Mar 2022 05:34:22 +0000</pubDate>
      <link>https://dev.to/mcnaveen/displaying-numbers-as-km-values-in-reactjs-283d</link>
      <guid>https://dev.to/mcnaveen/displaying-numbers-as-km-values-in-reactjs-283d</guid>
      <description>&lt;p&gt;SI Prefixs are everywhere. Facebook Likes, Twitter Reweets YouTube Views etc. See the example below to understand what I mean.&lt;/p&gt;

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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1000 Views&lt;/td&gt;
&lt;td&gt;1k Views&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;25000 Likes&lt;/td&gt;
&lt;td&gt;25K Likes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;30000 Retweets&lt;/td&gt;
&lt;td&gt;30k Retweets&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In this post we will see how we can convert the numbers to shortern numbers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎉 Make sure to bookmark this for later&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We are going to use React for this example, But this works on all nodejs projects&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a react app
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-react-app numbers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wait until the project gets created.&lt;/p&gt;

&lt;h3&gt;
  
  
  cd into the directory
&lt;/h3&gt;



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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Install the required dependency
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn add numify

or

npm &lt;span class="nb"&gt;install &lt;/span&gt;numify &lt;span class="nt"&gt;--save&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Now in the &lt;code&gt;App.js&lt;/code&gt; file paste the below code.
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./styles.css&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;numify&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;numify&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setNumber&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Change the Number as per your choice&lt;/span&gt;
    &lt;span class="nx"&gt;setNumber&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;numify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2700000000&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;App&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;2700000000&lt;/span&gt; &lt;span class="nx"&gt;will&lt;/span&gt; &lt;span class="nx"&gt;be&lt;/span&gt; &lt;span class="nx"&gt;rendered&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Then, Run the Project using the command
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the project is started, You'll see this in browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7YgmQCOW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/08r0bt902syek78m8mol.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7YgmQCOW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/08r0bt902syek78m8mol.png" alt="Output" width="382" height="193"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you find this useful, Please drop a heart and leave your comments.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎉 Make sure to bookmark this for later&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to Generate License Key with Node.js</title>
      <dc:creator>MC Naveen</dc:creator>
      <pubDate>Tue, 01 Mar 2022 17:30:20 +0000</pubDate>
      <link>https://dev.to/mcnaveen/generating-license-key-in-nodejs-2ie8</link>
      <guid>https://dev.to/mcnaveen/generating-license-key-in-nodejs-2ie8</guid>
      <description>&lt;p&gt;This post will help you to generate License keys with Node.js&lt;/p&gt;

&lt;p&gt;I'll walk you through step by step process&lt;/p&gt;

&lt;p&gt;Create a directory&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir license-key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cd into the Directory&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd license-key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Initiate Yarn&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn init -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install the required dependency&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn add @mcnaveen/license-gen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a new file called &lt;code&gt;index.js&lt;/code&gt; and paste the below code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;licenseGen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@mcnaveen/license-gen&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;licenseGen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now Save the File&lt;br&gt;
Then Run &lt;code&gt;node index.js&lt;/code&gt;&lt;br&gt;
You'll get the license key in console like below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TPL5-IAQV-TUCR-8N7A-AQBW-EFSQ-HLK7-BND6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can alter the license key as per your need.&lt;/p&gt;

&lt;p&gt;If you want more characters, change the value from &lt;code&gt;32&lt;/code&gt; to something else.&lt;/p&gt;

&lt;p&gt;Or if you need pair of 8 values with the same 32 characters modify the code like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;licenseGen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@mcnaveen/license-gen&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;licenseGen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you'll get the output like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BONP7PMW-2T4CTB58-9EOJT7CU-Q72TVKGL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;This module as supports ES6 imports&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you like this post leave a heart, or Bookmark it for later.&lt;/p&gt;

&lt;p&gt;Please comment your thoughts&lt;/p&gt;




&lt;p&gt;Links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Module Link: &lt;a href="https://www.npmjs.com/package/@mcnaveen/license-gen"&gt;https://www.npmjs.com/package/@mcnaveen/license-gen&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Example Repo (ES6): &lt;a href="https://github.com/mcnaveen/license-gen-example"&gt;https://github.com/mcnaveen/license-gen-example&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>licensekey</category>
      <category>javascript</category>
      <category>node</category>
      <category>express</category>
    </item>
    <item>
      <title>ShowDev: I made an Random Words API with Pronunciation</title>
      <dc:creator>MC Naveen</dc:creator>
      <pubDate>Fri, 15 Oct 2021 17:03:34 +0000</pubDate>
      <link>https://dev.to/mcnaveen/showdev-i-made-an-random-words-api-with-pronunciation-3lam</link>
      <guid>https://dev.to/mcnaveen/showdev-i-made-an-random-words-api-with-pronunciation-3lam</guid>
      <description>&lt;p&gt;Hi All, &lt;/p&gt;

&lt;p&gt;I created a simple API which returns Random English Word along with the Definition and Pronunciation.&lt;/p&gt;

&lt;p&gt;Pronunciation is generated on the fly with NLP.&lt;/p&gt;

&lt;p&gt;Stack used&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NodeJs&lt;/li&gt;
&lt;li&gt;Express&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Demo: &lt;a href="https://random-words-api.vercel.app/word"&gt;https://random-words-api.vercel.app/word&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;RapidAPI: &lt;a href="https://rapidapi.com/mcnaveen/api/random-words-with-pronunciation/"&gt;https://rapidapi.com/mcnaveen/api/random-words-with-pronunciation/&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/mcnaveen"&gt;
        mcnaveen
      &lt;/a&gt; / &lt;a href="https://github.com/mcnaveen/Random-Words-API"&gt;
        Random-Words-API
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🦄 Get Random Words (with pronunciation) for Free using this API
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Random Words API&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://github.com/mcnaveen/Random-Words-API#contributors-"&gt;&lt;img src="https://camo.githubusercontent.com/717335dcbf36940a0e98608501b9bbb3e12511e9ce572b67997da98bc5f3180f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f616c6c5f636f6e7472696275746f72732d322d6f72616e67652e7376673f7374796c653d666c61742d737175617265" alt="All Contributors"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/mcnaveen/Random-Words-API/workflows/build-test/badge.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LeA877B5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/mcnaveen/Random-Words-API/workflows/build-test/badge.svg" alt="build-test"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;🦄 Get Random Words (with pronunciation) for Free using this API&lt;/p&gt;
&lt;h2&gt;
🚀 API&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Free API - &lt;code&gt;https://random-words-api.vercel.app/word&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dutch Random Words - &lt;code&gt;https://random-words-api.vercel.app/word/dutch&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PWA Demo - &lt;a href="https://words.sanweb.info/" rel="nofollow"&gt;Check Here&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
🎛 Route Options&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://random-words-api.vercel.app/word&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;- /noun
- /sentence
- /question
- /adjective
- /idiom
- /verb
- /letter
- /paragraph
- /vocabulary
- /1-word-quotes
- /2-word-quotes
- /3-word-quotes
- /affirmation&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
🌐 Sample API Response&lt;/h2&gt;
&lt;div class="highlight highlight-source-json notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;[
  {
    &lt;span class="pl-ent"&gt;"word"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Exactor&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;,
    &lt;span class="pl-ent"&gt;"definition"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;One who exacts; extortioner; claimer of rights  &lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;,
    &lt;span class="pl-ent"&gt;"pronunciation"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Eksaktor&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;
  }
]&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
🌐 Sample Dutch Response&lt;/h2&gt;
&lt;div class="highlight highlight-source-json notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;[
  {
    &lt;span class="pl-ent"&gt;"word"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Perfect&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;,
    &lt;span class="pl-ent"&gt;"definition"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Perfect&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;,
    &lt;span class="pl-ent"&gt;"pronunciation"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Perfekt&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;
  }
]&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
💡 Learn New word&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://t.me/learnwordoftheday" rel="nofollow"&gt;Join Telegram Channel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://words.sanweb.info/" rel="nofollow"&gt;Learn Online&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
✨ Installation (Development)&lt;/h2&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Clone the Repo&lt;/span&gt;
git clone https://github.com/mcnaveen/Random-Words-API random-words
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Cd into Directory&lt;/span&gt;
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; random-words

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Install Dependencies&lt;/span&gt;
yarn install

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/mcnaveen/Random-Words-API"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;If you found it useful. Please give a star.&lt;/p&gt;

&lt;p&gt;Thank you.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>node</category>
      <category>express</category>
    </item>
    <item>
      <title>No More Zero Days - Achieve Great things</title>
      <dc:creator>MC Naveen</dc:creator>
      <pubDate>Sat, 24 Jul 2021 17:44:55 +0000</pubDate>
      <link>https://dev.to/mcnaveen/no-more-zero-days-achieve-great-things-5a93</link>
      <guid>https://dev.to/mcnaveen/no-more-zero-days-achieve-great-things-5a93</guid>
      <description>&lt;p&gt;⚠️ This Post is not related to Zero Day Vulnerability. It's about staying on track and productivity.&lt;/p&gt;

&lt;p&gt;I Know, lot of you might start working on a project. In the Beginning your energy levels will be so higher. There will be some kind of fire inside you.&lt;/p&gt;

&lt;p&gt;But when the day passes, you'll slowly start losing interest on that thing and immediately start working on something else. &lt;/p&gt;

&lt;p&gt;At the end, There will be no positive result for your time spent.&lt;/p&gt;

&lt;p&gt;Here is where no more zero days comes in. Let me explain this.&lt;/p&gt;

&lt;p&gt;It means, if you didn't even made a small progress on that project it'll be counted as zero day.&lt;/p&gt;

&lt;p&gt;Our goal should be doing something on that project which can improve piece by piece daily.&lt;/p&gt;

&lt;p&gt;Make progress every single day never stop doing it.&lt;/p&gt;

&lt;p&gt;I read about this somewhere on Reddit and found it useful. So I shared it. I don't have link to the original post.&lt;/p&gt;

&lt;p&gt;Edit: I found it.&lt;br&gt;
&lt;a href="https://www.reddit.com/r/getdisciplined/comments/1q96b5/i_just_dont_care_about_myself/cdah4af"&gt;https://www.reddit.com/r/getdisciplined/comments/1q96b5/i_just_dont_care_about_myself/cdah4af&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I made an Free API to get random words and Generate pronunciation on the go</title>
      <dc:creator>MC Naveen</dc:creator>
      <pubDate>Sun, 20 Dec 2020 08:16:30 +0000</pubDate>
      <link>https://dev.to/mcnaveen/i-made-an-free-api-to-get-random-words-with-pronunciation-127o</link>
      <guid>https://dev.to/mcnaveen/i-made-an-free-api-to-get-random-words-with-pronunciation-127o</guid>
      <description>&lt;h3&gt;
  
  
  The Story
&lt;/h3&gt;

&lt;p&gt;From long time I want to learn a new word everyday. But I'm not fond of reading or going through the dictionary every single day. I wanted to do something technical.&lt;/p&gt;

&lt;p&gt;So I created this API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;NodeJS with Cheerio, Express&lt;/li&gt;
&lt;li&gt;Compromise-pronounce for generating pronunciation&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/mcnaveen" rel="noopener noreferrer"&gt;
        mcnaveen
      &lt;/a&gt; / &lt;a href="https://github.com/mcnaveen/Random-Words-API" rel="noopener noreferrer"&gt;
        Random-Words-API
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🦄 Get Random Words (with pronunciation) for Free using this API
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Random Words API&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/mcnaveen/Random-Words-API#contributors-" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/09c18239acba6a4deff40dadebe79d14cf57a606068dab9152701c9166542e81/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f616c6c5f636f6e7472696275746f72732d332d6f72616e67652e7376673f7374796c653d666c61742d737175617265" alt="All Contributors"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/mcnaveen/Random-Words-API/workflows/build-test/badge.svg"&gt;&lt;img src="https://github.com/mcnaveen/Random-Words-API/workflows/build-test/badge.svg" alt="build-test"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;🦄 Get Random Words (with pronunciation) for Free using this API&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌍 Languages&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;English&lt;/li&gt;
&lt;li&gt;Dutch&lt;/li&gt;
&lt;li&gt;Spanish&lt;/li&gt;
&lt;li&gt;French&lt;/li&gt;
&lt;li&gt;Chinese&lt;/li&gt;
&lt;li&gt;Japanese&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 API&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;English Random Words - &lt;code&gt;https://random-words-api.vercel.app/word&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dutch Random Words - &lt;code&gt;https://random-words-api.vercel.app/word/dutch&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Spanish Random Words - &lt;code&gt;https://random-words-api.vercel.app/word/spanish&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;French Random Words - &lt;code&gt;https://random-words-api.vercel.app/word/french&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chinese Random Words - &lt;code&gt;https://random-words-api.vercel.app/word/chinese&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Japanese Random Words - &lt;code&gt;https://random-words-api.vercel.app/word/japanese&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Turkish Random Words - &lt;code&gt;https://random-words-api.vercel.app/word/turkish&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PWA Demo - &lt;a href="https://words.sanweb.info/" rel="nofollow noopener noreferrer"&gt;Check Here&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎛 Route Options (English Only)&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://random-words-api.vercel.app/word/english&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;- /noun
- /sentence
- /question
- /adjective
- /idiom
- /verb
- /letter
- /paragraph
- /vocabulary
- /1-word-quotes
- /2-word-quotes
- /3-word-quotes
- /affirmation
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌐 Sample API Response&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;API: &lt;code&gt;https://random-words-api.vercel.app/word/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Method: &lt;code&gt;GET&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight highlight-source-json notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;[
  {
    &lt;span class="pl-ent"&gt;"word"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Exactor&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;,
    &lt;span class="pl-ent"&gt;"definition"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;One who exacts; extortioner; claimer of rights  &lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;,
    &lt;span class="pl-ent"&gt;"pronunciation"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Eksaktor&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;
  }
]&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌐 Sample Dutch Response&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;API: &lt;code&gt;https://random-words-api.vercel.app/word/dutch&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Method: &lt;code&gt;GET&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight highlight-source-json notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;[
  {
    &lt;span class="pl-ent"&gt;"word"&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Perfect&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;
    &lt;span class="pl-ent"&gt;"definition"&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/mcnaveen/Random-Words-API" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;It fetches the word from the web and generate pronunciation on the go.&lt;/p&gt;

&lt;p&gt;Feel free to use it. PRs are welcome.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a class="mentioned-user" href="https://dev.to/mskian"&gt;@mskian&lt;/a&gt; for Progressive Web App.&lt;br&gt;
&lt;a href="https://wordsonrandom.netlify.app/" rel="noopener noreferrer"&gt;https://wordsonrandom.netlify.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>randomwords</category>
      <category>api</category>
      <category>randomwordsapi</category>
    </item>
    <item>
      <title>Why I Love Docker as a Newbie 🐋</title>
      <dc:creator>MC Naveen</dc:creator>
      <pubDate>Thu, 05 Dec 2019 15:16:52 +0000</pubDate>
      <link>https://dev.to/mcnaveen/why-i-love-docker-as-a-newbie-4m8i</link>
      <guid>https://dev.to/mcnaveen/why-i-love-docker-as-a-newbie-4m8i</guid>
      <description>&lt;p&gt;Hola, Hope you guys are doing great. 💖&lt;/p&gt;

&lt;h4&gt;
  
  
  Why I love docker and Why you should switch to Docker.
&lt;/h4&gt;

&lt;h5&gt;
  
  
  What is Docker?
&lt;/h5&gt;

&lt;p&gt;Docker is a Platform as a Service, Which lets you to use OS level virtualization to Deliver software in Packages called containers.&lt;/p&gt;

&lt;p&gt;Best thing about Docker is, Each container is Isolated. Means, One container won't mess up with another one.&lt;/p&gt;

&lt;h5&gt;
  
  
  My Story
&lt;/h5&gt;

&lt;p&gt;I'm a Big fan of Open-Source and I love to try running new Open Source stuff either in Raspberry Pi or Laptop.&lt;/p&gt;

&lt;p&gt;One thing I hate running in the Current system is dependencies issue. Yes, Installing one package will broke another existing dependency package.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Using Ubuntu in my Laptop and Raspbian in Pi&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yes, It's painful, I have faced this issue many times. Luckily, All the Stuff I picking have Docker Container.&lt;/p&gt;

&lt;p&gt;But I keep ignore. Yesterday I planned to give Docker a try in my Pi.&lt;/p&gt;

&lt;p&gt;Trust me. It solves Dependencies issue. And Very low CPU usage as compared to Native Script.&lt;/p&gt;

&lt;h5&gt;
  
  
  How it's Possible with Docker?
&lt;/h5&gt;

&lt;p&gt;Docker container is a standard unit of software that packs up code and all  dependencies, so the application runs quickly and reliably without messing with other container. Also, Docker uses the Original Kernel of Main Operating System to fulfil the system level needs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Most of the Codes/Stuff now supports Docker. They are delivering Docker container which contains everything to run out of the Box.&lt;/p&gt;

&lt;p&gt;I'll leave all the Links to get started with Docker&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Installing Docker: &lt;a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04"&gt;https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find Docker Container: &lt;a href="https://hub.docker.com/"&gt;https://hub.docker.com/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all for this Post :) &lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
