<?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>Forem: Bharath</title>
    <description>The latest articles on Forem by Bharath (@kbharath).</description>
    <link>https://forem.com/kbharath</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%2F3477066%2F3526566f-d9e9-4f9e-a1b4-e8d852a429eb.png</url>
      <title>Forem: Bharath</title>
      <link>https://forem.com/kbharath</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kbharath"/>
    <language>en</language>
    <item>
      <title>To Level Up Your React Workflow: 3 Essential VS Code Basic Extensions Every Web Developer Needs to Use</title>
      <dc:creator>Bharath</dc:creator>
      <pubDate>Fri, 15 May 2026 10:50:12 +0000</pubDate>
      <link>https://forem.com/kbharath/to-level-up-your-react-workflow-3-essential-vs-code-extensions-every-developer-needs-5838</link>
      <guid>https://forem.com/kbharath/to-level-up-your-react-workflow-3-essential-vs-code-extensions-every-developer-needs-5838</guid>
      <description>&lt;p&gt;If you are a React developer, your productivity is heavily influenced by your tools. While VS Code is powerful out of the box, the right extensions can transform it from a simple text editor into a high-performance IDE tailored for modern web development.&lt;/p&gt;

&lt;p&gt;To take your coding experience to the next level, here are three "must-have" VS Code extensions that will save you hours of debugging and boilerplate typing.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Tailwind CSS IntelliSense 🎨
&lt;/h2&gt;

&lt;p&gt;Tailwind CSS has become the industry standard for styling modern React applications. However, remembering every single utility class can be a challenge.&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%2F4yl5lvrp51pgd3q79axd.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%2F4yl5lvrp51pgd3q79axd.png" alt="Tailwind CSS" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why you need it:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Suggestions:&lt;/strong&gt; As you start typing a class name, it provides a dropdown of available Tailwind utilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Color Previews:&lt;/strong&gt; No more guessing what &lt;code&gt;bg-t&lt;/code&gt; looks like. A small color swatch appears right in your gutter or next to the code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faster Coding:&lt;/strong&gt; It reduces the need to constantly flip back and forth between your code and the Tailwind documentation.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. ES7+ React/Redux/React-Native Snippets ⚡
&lt;/h2&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%2Ft4dj260rmen617y00qg4.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%2Ft4dj260rmen617y00qg4.png" alt="ES7+ React/Redux/React-Native Snippets" width="800" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stop writing &lt;code&gt;export default function...&lt;/code&gt; manually every single time you create a new file. This extension is a massive time-saver for repetitive React patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Power Move:&lt;/strong&gt;&lt;br&gt;
After installing this, you can simply type a short command like &lt;code&gt;rafce&lt;/code&gt; (React Arrow Function Component Export) and hit &lt;strong&gt;Enter&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; It instantly generates a full, boilerplate-ready React component with imports and exports included. Whether you are working on hooks, Redux, or React Native, these snippets make your development cycle significantly faster.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. ESLint 🔍
&lt;/h2&gt;

&lt;p&gt;Writing code is easy; maintaining clean, bug-free code is the hard part. ESLint is your first line of defense against "silly" mistakes that break your build.&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%2F8wmi21cel9db48rdmk35.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%2F8wmi21cel9db48rdmk35.png" alt="ESLint" width="800" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why you need it:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Error Detection:&lt;/strong&gt; It highlights potential bugs and syntax errors in real-time with red underlines before you even save the file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clean Code Standards:&lt;/strong&gt; It enforces consistent coding styles across your project, ensuring your code remains professional and readable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Fixing:&lt;/strong&gt; Many common linting errors can be fixed automatically on save, keeping your focus on logic rather than formatting.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts 💡
&lt;/h2&gt;

&lt;p&gt;By integrating &lt;strong&gt;Tailwind CSS IntelliSense&lt;/strong&gt;, &lt;strong&gt;ES7+ Snippets&lt;/strong&gt;, and &lt;strong&gt;ESLint&lt;/strong&gt; into your VS Code setup, you aren't just coding—you're coding smarter. These tools eliminate friction, reduce errors, and allow you to focus on building amazing user experiences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s your favorite VS Code extension for React? Let me know in the comments below! 👇&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Gist of SSL/mTLS</title>
      <dc:creator>Bharath</dc:creator>
      <pubDate>Tue, 16 Dec 2025 12:33:31 +0000</pubDate>
      <link>https://forem.com/kbharath/gist-of-sslmtls-1bdk</link>
      <guid>https://forem.com/kbharath/gist-of-sslmtls-1bdk</guid>
      <description>&lt;p&gt;Objective of writing down this post is to just recollect the concept overview of mTLS and to easy in explaining to any new intern in order to enable for kafka or other system. &lt;/p&gt;

&lt;h2&gt;
  
  
  Secure Sockets Layer (SSL)
&lt;/h2&gt;

&lt;p&gt;SSL is a protocol that is used to protect communication between clients and servers over the Internet.&lt;br&gt;
SSL provides such features as server authentication, client authentication, and data encryption. Authentication confirms the identity of a server or client. Encryption converts data into an unreadable form before the data is sent.&lt;br&gt;
The scheme of a URL that uses SSL is https. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://dev.to/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The latest version of SSL is called Transport Layer Security (TLS). The Internet Engineering Task Force (IETF) maintains the TLS standard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is TLS?&lt;/strong&gt;&lt;br&gt;
Transport Layer Security (TLS) is an encryption protocol in wide use on the Internet. TLS, which was formerly called SSL, authenticates the server in a client-server connection and encrypts communications between client and server so that external parties cannot spy on the communications.&lt;/p&gt;

&lt;p&gt;Normally in TLS, the server has a TLS certificate and a public/private key pair, while the client does not.&lt;/p&gt;

&lt;p&gt;There are 3 important things to understand about how TLS works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Public key and private key&lt;br&gt;
To perform authentication, TSL uses a technique called public-key cryptography.&lt;br&gt;
Public-key cryptography is based on the concept of a key pair, which consists of a public key and a private key. Data that has been encrypted with a public key can be decrypted only with the corresponding private key. Conversely, data that has been encrypted with a private key can be decrypted only with the corresponding public key.&lt;br&gt;
The owner of the key pair makes the public key available to anyone, but keeps the private key secret.&lt;br&gt;
we can use two tools for generation of this key pair&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;em&gt;Keytool&lt;/em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The keytool program is a security tool included in the bin directory of the JavaTM SDK.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;em&gt;OpenSSL&lt;/em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The OpenSSL Project is an effort to develop an open-source toolkit that implements the SSL and TLS protocols, as well as a cryptographic library.The toolkit includes the openssl command-line tool, which enables you to use various functions of the cryptographic library.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TLS certificate&lt;br&gt;
A TLS certificate is a data file that contains important information for verifying a server's or device's identity, including the public key, a statement of who issued the certificate (TLS certificates are issued by a certificate authority), and the certificate's expiration date.&lt;br&gt;
You can obtain a certificate from a Certificate Authority (CA) such as VeriSign. Alternately, you can create a self-signed certificate, in which the owner and the issuer are the same.&lt;br&gt;
An organization that issues certificates can establish a hierarchy of CAs. The root CA has a self-signed certificate. Each subordinate CA has a certificate that is signed by the next highest CA in the hierarchy. A certificate chain is the certificate of a particular CA, plus the certificates of any higher CAs up through the root CA.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TLS handshake&lt;br&gt;
A TLS handhsake process works like below&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Client connects to server&lt;/li&gt;
&lt;li&gt;Server presents its TLS certificate&lt;/li&gt;
&lt;li&gt;Client verifies the server's certificate&lt;/li&gt;
&lt;li&gt;Client and server exchange information over encrypted TLS connection&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;/ol&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%2Fsbjmd0hv53anuhe8qc31.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%2Fsbjmd0hv53anuhe8qc31.png" alt="TLS flow" width="800" height="253"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Mutual TLS (mTLS)
&lt;/h2&gt;

&lt;p&gt;Mutual TLS or mTLS for short, is a method for mutual authentication. mTLS ensures that the parties at each end of a network connection are who they claim to be by verifying that they both have the correct private key. The information within their respective TLS certificates provides additional verification.&lt;/p&gt;

&lt;p&gt;mTLS is often used in a Zero Trust security framework to verify users, devices, and servers within an organization.&lt;/p&gt;

&lt;p&gt;Zero Trust means that no user, device, or network traffic is trusted by default, an approach that helps eliminate many security vulnerabilities.&lt;/p&gt;

&lt;p&gt;In mTLS, both the client and server have a certificate, and both sides authenticate using their public/private key pair.&lt;/p&gt;

&lt;p&gt;The mTLS handhsake process works like below&lt;br&gt;
    1. Client connects to server&lt;br&gt;
    2. Server presents its TLS certificate&lt;br&gt;
    3. Client verifies the server's certificate&lt;br&gt;
    4. Client presents its TLS certificate&lt;br&gt;
    5. Server verifies the client's certificate&lt;br&gt;
    6. Server grants access&lt;br&gt;
    7. Client and server exchange information over encrypted TLS connection&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%2Fctsc9o31a145kouo3pzv.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%2Fctsc9o31a145kouo3pzv.png" alt="mTLS flow" width="800" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why use mTLS when we already use TLS?
&lt;/h3&gt;

&lt;p&gt;TLS is one-way authentication in which the client verifies the server's identity only which provide protection like ensure not spoofed websites, keep private data secure and encrypted as it crosses the various networks that comprise the Internet and to make sure that data is not altered in transit&lt;/p&gt;

&lt;p&gt;where as mTLS helps ensure that traffic is secure and trusted in both directions between a client and server. mTLS provides additional protection by preventing various kinds of attacks like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On-path attacks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spoofing attacks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Credential stuffing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brute force attacks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Phishing attacks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Malicious API requests&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to Setup mTLS
&lt;/h2&gt;

&lt;p&gt;A setup a mTLS we need to follow  couple of below steps&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate a private key (RSA or EC)&lt;/li&gt;
&lt;li&gt;Generate CSR → send to CA.&lt;/li&gt;
&lt;li&gt;Get it signed by a CA (or create a self‑signed cert for tests) CA issues CRT/CER → your certificate.&lt;/li&gt;
&lt;li&gt;Assemble the certificate chain (server cert + intermediate(s) + root).&lt;/li&gt;
&lt;li&gt;Store private key + cert chain into a PKCS#12 or JKS Keystore.&lt;/li&gt;
&lt;li&gt;Convert formats if needed (PEM ↔ PKCS12 ↔ JKS).&lt;/li&gt;
&lt;li&gt;Truststore holds CA certs to validate incoming connections.&lt;/li&gt;
&lt;li&gt;Verify with OpenSSL and keytool.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  KeyStores
&lt;/h3&gt;

&lt;p&gt;keystore stores private key entries, certificates with public keys, or just secret keys that we may use for various cryptographic purposes. It stores each by an alias for ease of lookup.&lt;/p&gt;

&lt;p&gt;Generally speaking, keystores hold keys that our application owns, which we can use to prove the integrity of a message and the authenticity of the sender, say by signing payloads.&lt;/p&gt;

&lt;p&gt;Usually, we’ll use a keystore when we’re a server and want to use HTTPS. During an SSL handshake, the server looks up the private key from the keystore, and presents its corresponding public key and certificate to the client.&lt;/p&gt;

&lt;h3&gt;
  
  
  TrustStores
&lt;/h3&gt;

&lt;p&gt;A truststore is the opposite. While a keystore typically holds onto certificates that identify us, a truststore holds onto certificates that identify others.&lt;/p&gt;

&lt;p&gt;In Java, we use it to trust the third party we’re about to communicate with.&lt;/p&gt;

&lt;p&gt;Take our earlier example. If a client talks to a Java-based server over HTTPS, the server will look up the associated key from its keystore and present the public key and certificate to the client.&lt;/p&gt;

&lt;p&gt;We, the client, then look up the associated certificate in our truststore. If the certificate or Certificate Authorities presented by the external server isn’t in our truststore, we’ll get an SSLHandshakeException, and the connection won’t be set up successfully.&lt;br&gt;
Java has bundled a truststore called cacerts. For Java versions before 9, it resides in the $JAVA_HOME/jre/lib/security directory, and for Java versions after 8, it’s in $JAVA_HOME/lib/security. It contains default, trusted Certificate Authorities.&lt;/p&gt;

&lt;h2&gt;
  
  
  CSR (Certificate Signing Request)
&lt;/h2&gt;

&lt;p&gt;A CSR (.csr, .req) is a Certificate Signing Request is a file that you create and send to Certificate Authority (CA) when you want an SSL/TLS certificate from a CA. It’s like an application form for a certificate.&lt;br&gt;
What it contains: Your public key + details like domain name, organization.&lt;/p&gt;

&lt;h2&gt;
  
  
  CER / CRT (Certificate)
&lt;/h2&gt;

&lt;p&gt;A file that holds the actual certificate issued by a CA after verifying your CSR.&lt;br&gt;
CER vs CRT: Both are certificate files, just different extensions (often .cer or .crt).&lt;br&gt;
What it Contains: Your public key + metadata + CA signature.&lt;/p&gt;

&lt;h2&gt;
  
  
  PEM
&lt;/h2&gt;

&lt;p&gt;A text-based file format (Base64 encoded) for certificates and keys.&lt;br&gt;
What it contains:  Often used to store CSR, CRT, private key or both.&lt;/p&gt;

&lt;h2&gt;
  
  
  PKCS12 (.p12 or .pfx)
&lt;/h2&gt;

&lt;p&gt;A bundle format that can include certificate + private key + chain in one file. Easy to transport and import into systems/applications.&lt;br&gt;
You create this after you have your certificate and private key.&lt;/p&gt;

&lt;p&gt;How to generate&lt;br&gt;
Will cover the detailed steps to generate the using keytool and openssl in  another follow up post. &lt;em&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Content in this post is extracted from different sources of internet.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ssl</category>
      <category>mtls</category>
      <category>openssl</category>
    </item>
  </channel>
</rss>
