<?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: Ankesh Sharma</title>
    <description>The latest articles on DEV Community by Ankesh Sharma (@iamankeshsharma).</description>
    <link>https://dev.to/iamankeshsharma</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%2F3504246%2F74c0ceb3-d769-4227-8e33-a4130e95eb9e.png</url>
      <title>DEV Community: Ankesh Sharma</title>
      <link>https://dev.to/iamankeshsharma</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamankeshsharma"/>
    <language>en</language>
    <item>
      <title>ESLint Flat Config (v9) Setup for TypeScript: A Clean, Scalable Guide</title>
      <dc:creator>Ankesh Sharma</dc:creator>
      <pubDate>Sat, 02 May 2026 18:00:35 +0000</pubDate>
      <link>https://dev.to/iamankeshsharma/eslint-flat-config-v9-setup-for-typescript-a-clean-scalable-guide-8n</link>
      <guid>https://dev.to/iamankeshsharma/eslint-flat-config-v9-setup-for-typescript-a-clean-scalable-guide-8n</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;With the release of &lt;strong&gt;ESLint v9&lt;/strong&gt;, flat config is now the standard.&lt;/p&gt;

&lt;p&gt;But most TypeScript projects are still using outdated &lt;code&gt;.eslintrc&lt;/code&gt; setups.&lt;/p&gt;

&lt;p&gt;If you're searching for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESLint flat config TypeScript setup&lt;/li&gt;
&lt;li&gt;ESLint v9 configuration guide&lt;/li&gt;
&lt;li&gt;modern ESLint config example&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This guide shows a &lt;strong&gt;clean, scalable approach&lt;/strong&gt; that works in real projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why ESLint flat config matters
&lt;/h2&gt;

&lt;p&gt;Flat config isn’t just a syntax change.&lt;/p&gt;

&lt;p&gt;It solves real problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;simpler configuration structure&lt;/li&gt;
&lt;li&gt;better performance&lt;/li&gt;
&lt;li&gt;easier composition across projects&lt;/li&gt;
&lt;li&gt;future-proof with ESLint v9+&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're still using &lt;code&gt;.eslintrc&lt;/code&gt;, you're working against the direction ESLint is moving.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where to put the config
&lt;/h2&gt;

&lt;p&gt;Create this file at the root of your project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;eslint.config.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ESLint automatically detects this in v9.&lt;/p&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; eslint @iamankeshsharma/eslint-config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Basic TypeScript setup (flat config)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// eslint.config.js&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;config&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;@iamankeshsharma/eslint-config&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="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TypeScript support&lt;/li&gt;
&lt;li&gt;import sorting&lt;/li&gt;
&lt;li&gt;modern JavaScript best practices&lt;/li&gt;
&lt;li&gt;Prettier compatibility&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project structure example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;your-project/
├── src/
├── eslint.config.js
├── package.json
└── tsconfig.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What this setup handles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  TypeScript support
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;proper parsing&lt;/li&gt;
&lt;li&gt;type-aware linting&lt;/li&gt;
&lt;li&gt;consistent patterns&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Code quality
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;catches subtle bugs early&lt;/li&gt;
&lt;li&gt;prevents unsafe patterns&lt;/li&gt;
&lt;li&gt;enforces modern syntax&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Import organization
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;consistent ordering&lt;/li&gt;
&lt;li&gt;cleaner diffs&lt;/li&gt;
&lt;li&gt;better readability&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Customization
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// eslint.config.js&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;config&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;@iamankeshsharma/eslint-config&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="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;no-console&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;warn&lt;/span&gt;&lt;span class="dl"&gt;"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Running ESLint
&lt;/h2&gt;

&lt;p&gt;Add script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"lint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"eslint ."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;






&lt;h2&gt;
  
  
  Common mistakes with flat config
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;mixing &lt;code&gt;.eslintrc&lt;/code&gt; with &lt;code&gt;eslint.config.js&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;not placing config at project root&lt;/li&gt;
&lt;li&gt;manually combining plugins incorrectly&lt;/li&gt;
&lt;li&gt;ignoring TypeScript-specific rules&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why this scales better
&lt;/h2&gt;

&lt;p&gt;In multi-project environments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one shared config&lt;/li&gt;
&lt;li&gt;consistent rules everywhere&lt;/li&gt;
&lt;li&gt;faster onboarding&lt;/li&gt;
&lt;li&gt;fewer PR discussions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used across multiple projects to standardize code quality and reduce PR noise.&lt;/p&gt;




&lt;h2&gt;
  
  
  The key idea
&lt;/h2&gt;

&lt;p&gt;Flat config makes ESLint composable.&lt;/p&gt;

&lt;p&gt;That means you can treat linting as:&lt;/p&gt;

&lt;p&gt;A system — not a per-project setup.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you're setting up ESLint for TypeScript with flat config:&lt;/p&gt;

&lt;p&gt;Check it here:&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/@iamankeshsharma/eslint-config" rel="noopener noreferrer"&gt;@iamankeshsharma/eslint-config&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/iamankeshsharma/best-eslint-config-for-nextjs-typescript-tailwind-setup-guide-mho"&gt;EsLint Config for Next.js&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;The biggest benefit of modern ESLint setups isn’t stricter rules.&lt;/p&gt;

&lt;p&gt;It’s removing inconsistency before it spreads.&lt;/p&gt;

</description>
      <category>eslint</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Best ESLint Config for Next.js (TypeScript + Tailwind Setup Guide)</title>
      <dc:creator>Ankesh Sharma</dc:creator>
      <pubDate>Thu, 30 Apr 2026 09:23:30 +0000</pubDate>
      <link>https://dev.to/iamankeshsharma/best-eslint-config-for-nextjs-typescript-tailwind-setup-guide-mho</link>
      <guid>https://dev.to/iamankeshsharma/best-eslint-config-for-nextjs-typescript-tailwind-setup-guide-mho</guid>
      <description>&lt;p&gt;If you're using &lt;strong&gt;Next.js with TypeScript and Tailwind CSS&lt;/strong&gt;, setting up ESLint correctly is harder than it should be.&lt;/p&gt;

&lt;p&gt;Most guides either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;cover only basics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ignore Tailwind&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;or don’t scale for real projects&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This guide gives you a &lt;strong&gt;complete, scalable ESLint setup for Next.js&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What we want from ESLint in Next.js
&lt;/h2&gt;

&lt;p&gt;A good setup should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;support TypeScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;enforce React hooks rules&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;align with Next.js best practices&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;handle Tailwind CSS properly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;scale across projects&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; eslint@^9 @eslint/js typescript-eslint eslint-plugin-react eslint-plugin-react-hooks @next/eslint-plugin-next eslint-plugin-tailwindcss prettier prettier-plugin-tailwindcss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Minimal setup
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;createNextConfig&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;@iamankeshsharma/eslint-config/next&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="nf"&gt;createNextConfig&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why this works better
&lt;/h2&gt;

&lt;p&gt;Instead of manually combining multiple configs, this approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;standardizes rules&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;reduces setup complexity&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;avoids config conflicts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;works with ESLint v9 flat config&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Tailwind support
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tailwindcss/classnames-order&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;warn&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tailwindcss/no-contradicting-classname&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;error&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This improves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;readability&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;consistency&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;maintainability&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Common mistakes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;mixing old &lt;code&gt;.eslintrc&lt;/code&gt; with flat config&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ignoring Tailwind linting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;disabling rules instead of fixing structure&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final setup
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;createNextConfig&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;@iamankeshsharma/eslint-config/next&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="nf"&gt;createNextConfig&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you want a production-ready setup:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/@iamankeshsharma/eslint-config" rel="noopener noreferrer"&gt;@iamankeshsharma/eslint-config&lt;/a&gt;&lt;/p&gt;

</description>
      <category>eslint</category>
      <category>typescript</category>
      <category>nextjs</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Created a PRD for My Task Tracker Project (Focused on OSS Devs)</title>
      <dc:creator>Ankesh Sharma</dc:creator>
      <pubDate>Thu, 19 Mar 2026 11:39:18 +0000</pubDate>
      <link>https://dev.to/iamankeshsharma/created-a-prd-for-my-task-tracker-project-focused-on-oss-devs-1489</link>
      <guid>https://dev.to/iamankeshsharma/created-a-prd-for-my-task-tracker-project-focused-on-oss-devs-1489</guid>
      <description>&lt;p&gt;Hey devs,&lt;/p&gt;

&lt;p&gt;I’ve been working on a Task Tracker / Project Management Tool, and this time I started with a PRD before coding to get more clarity.&lt;/p&gt;

&lt;p&gt;What this project is about&lt;br&gt;
It’s a tool designed for individual developers and OSS contributors who struggle to track:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Issues&lt;/li&gt;
&lt;li&gt;Pull Requests&lt;/li&gt;
&lt;li&gt;Todos across multiple repos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All in one place.&lt;/p&gt;

&lt;p&gt;Problem I’m trying to solve&lt;br&gt;
Right now, there are very limited options that centralize OSS work (PRs, issues, tasks) into a single dashboard. Most tools are either too heavy or not focused on individual workflows.&lt;/p&gt;

&lt;p&gt;Core idea&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub-based authentication&lt;/li&gt;
&lt;li&gt;Fetch PRs, issues, and tasks across repos&lt;/li&gt;
&lt;li&gt;Unified dashboard for tracking everything&lt;/li&gt;
&lt;li&gt;Individual mode + Team mode&lt;/li&gt;
&lt;li&gt;Email reminders for deadlines (must-have)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project Board (Kanban + Table view)&lt;/li&gt;
&lt;li&gt;Custom columns (todo, in-progress, done, etc.)&lt;/li&gt;
&lt;li&gt;Task detail panel with markdown support&lt;/li&gt;
&lt;li&gt;Timeline view (like git history of work)&lt;/li&gt;
&lt;li&gt;GitHub issue-based tracking&lt;/li&gt;
&lt;li&gt;Email notifications/reminders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tech Stack&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend: React + Tailwind (Vercel)&lt;/li&gt;
&lt;li&gt;Backend: Node.js + Express (Render)&lt;/li&gt;
&lt;li&gt;Auth: Firebase + GitHub OAuth&lt;/li&gt;
&lt;li&gt;DB: MongoDB Atlas&lt;/li&gt;
&lt;li&gt;Email: SendGrid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Goals&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple UI, better-than-average UX&lt;/li&gt;
&lt;li&gt;Centralized task visibility&lt;/li&gt;
&lt;li&gt;Build something useful (and actually used)&lt;/li&gt;
&lt;li&gt;Learn while building&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Known Risks&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Email limitations (especially Gmail domain restrictions)&lt;/li&gt;
&lt;li&gt;Dependency on SendGrid free tier&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ve shared the full PRD here:&lt;br&gt;
&lt;a href="https://github.com/iamankeshsharma/Task-Tracker/blob/doc/docs/PRD.md" rel="noopener noreferrer"&gt;iamankeshsharma/Task-Tracker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would really appreciate your feedback on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feature scope (too much / too little?)&lt;/li&gt;
&lt;li&gt;Missing use cases&lt;/li&gt;
&lt;li&gt;UX flow improvements&lt;/li&gt;
&lt;li&gt;OSS-specific needs I might’ve missed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s build something useful for developers, not just another tool.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>productdesign</category>
    </item>
    <item>
      <title>Stop Repeating ESLint &amp; Prettier Setup in Every Project</title>
      <dc:creator>Ankesh Sharma</dc:creator>
      <pubDate>Wed, 11 Mar 2026 16:50:25 +0000</pubDate>
      <link>https://dev.to/iamankeshsharma/stop-repeating-eslint-prettier-setup-in-every-project-4e9o</link>
      <guid>https://dev.to/iamankeshsharma/stop-repeating-eslint-prettier-setup-in-every-project-4e9o</guid>
      <description>&lt;p&gt;While starting new projects, I noticed I was repeatedly doing the same setup — configuring &lt;strong&gt;ESLint&lt;/strong&gt; and &lt;strong&gt;Prettier&lt;/strong&gt; every single time.&lt;/p&gt;

&lt;p&gt;It didn’t make much sense.&lt;/p&gt;

&lt;p&gt;Setting up linters and formatters repeatedly across projects is not only &lt;strong&gt;time-consuming&lt;/strong&gt; but also &lt;strong&gt;inefficient&lt;/strong&gt;. Most projects share the same base rules anyway.&lt;/p&gt;

&lt;p&gt;So I created a &lt;strong&gt;shared configuration package&lt;/strong&gt; that I can reuse across projects.&lt;/p&gt;

&lt;p&gt;With this setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You install the package&lt;/li&gt;
&lt;li&gt;Extend the configuration&lt;/li&gt;
&lt;li&gt;Add &lt;strong&gt;project-specific rules on top if needed&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that’s it. The whole setup takes just &lt;strong&gt;a couple of minutes&lt;/strong&gt; instead of repeating the same configuration again and again.&lt;/p&gt;

&lt;p&gt;This helps keep:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code style consistent&lt;/li&gt;
&lt;li&gt;Setup time minimal&lt;/li&gt;
&lt;li&gt;Configurations centralized and easier to maintain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ve open-sourced the configuration so others can use it or suggest improvements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/iamankeshsharma/eslint-config" rel="noopener noreferrer"&gt;https://github.com/iamankeshsharma/eslint-config&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NPM Package:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/@iamankeshsharma/eslint-config" rel="noopener noreferrer"&gt;@iamankeshsharma/eslint-config&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you check it out, I’d really appreciate feedback on how it can be improved.&lt;/p&gt;

&lt;p&gt;Always open to suggestions 🚀&lt;/p&gt;

</description>
      <category>eslint</category>
      <category>codequality</category>
      <category>webdev</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>How should we remember syntax?</title>
      <dc:creator>Ankesh Sharma</dc:creator>
      <pubDate>Sat, 07 Mar 2026 14:21:08 +0000</pubDate>
      <link>https://dev.to/iamankeshsharma/how-should-we-remember-syntax-4i8j</link>
      <guid>https://dev.to/iamankeshsharma/how-should-we-remember-syntax-4i8j</guid>
      <description>&lt;p&gt;I have droped a short text on this here: &lt;a href="https://www.linkedin.com/posts/devankesh_i-was-looking-for-an-ide-that-doesnt-provide-share-7436031901963812867-7xwd?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAADDQ_lwBJuc45M9zvJaz9B0y9y4e2Tjlhik" rel="noopener noreferrer"&gt;https://www.linkedin.com/posts/devankesh_i-was-looking-for-an-ide-that-doesnt-provide-share-7436031901963812867-7xwd?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAADDQ_lwBJuc45M9zvJaz9B0y9y4e2Tjlhik&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>vscode</category>
      <category>programming</category>
    </item>
    <item>
      <title>Developed my first portfolio.</title>
      <dc:creator>Ankesh Sharma</dc:creator>
      <pubDate>Sat, 31 Jan 2026 12:53:18 +0000</pubDate>
      <link>https://dev.to/iamankeshsharma/developed-my-first-portfolio-214g</link>
      <guid>https://dev.to/iamankeshsharma/developed-my-first-portfolio-214g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;I'm a web developer, Developed this to express my technical proficiency in developing websites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://urban-octo-train-549547826722.us-central1.run.app"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Used react, python flask.&lt;br&gt;
Used antigravity for most of the base setup and bug resolution.&lt;br&gt;
other things are written by me.&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%2F345ni6v66xv3rj5b2r9j.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%2F345ni6v66xv3rj5b2r9j.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Design for portfolio is complete.</title>
      <dc:creator>Ankesh Sharma</dc:creator>
      <pubDate>Wed, 21 Jan 2026 07:02:25 +0000</pubDate>
      <link>https://dev.to/iamankeshsharma/design-for-portfolio-is-complete-3og</link>
      <guid>https://dev.to/iamankeshsharma/design-for-portfolio-is-complete-3og</guid>
      <description>&lt;p&gt;Just completed design of portfolio little late but yeh now it complete.&lt;br&gt;
Will start implementing.&lt;br&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%2Fafk9z95qkhgbbeqlra51.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%2Fafk9z95qkhgbbeqlra51.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>career</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Starting Collecting Initial Inspiration for Portfolio</title>
      <dc:creator>Ankesh Sharma</dc:creator>
      <pubDate>Sat, 03 Jan 2026 06:34:13 +0000</pubDate>
      <link>https://dev.to/iamankeshsharma/starting-collecting-initial-inspiration-for-portfolio-14mk</link>
      <guid>https://dev.to/iamankeshsharma/starting-collecting-initial-inspiration-for-portfolio-14mk</guid>
      <description>&lt;p&gt;Collecting Inspirations for Portfolio to join New Year, New You Portfolio Challenge&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>newportfoliochallenge</category>
      <category>react</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
