<?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: Siddharth Verma</title>
    <description>The latest articles on DEV Community by Siddharth Verma (@4r7ur).</description>
    <link>https://dev.to/4r7ur</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%2F928916%2F16734a17-5b90-4fcf-9c6c-2e555f47d9a2.jpg</url>
      <title>DEV Community: Siddharth Verma</title>
      <link>https://dev.to/4r7ur</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/4r7ur"/>
    <language>en</language>
    <item>
      <title>Unleash the Potential of T3 Stack</title>
      <dc:creator>Siddharth Verma</dc:creator>
      <pubDate>Thu, 08 Jun 2023 06:00:24 +0000</pubDate>
      <link>https://dev.to/4r7ur/unleash-the-potential-of-t3-stack-m4k</link>
      <guid>https://dev.to/4r7ur/unleash-the-potential-of-t3-stack-m4k</guid>
      <description>&lt;p&gt;In today's tech-driven world, it's essential for developers to build applications that are scalable, robust, and future-proof. That's where utilizing the right stack comes into play. So, let me introduce you to a game-changer in this regard - the T3 Stack! This powerful toolset harnesses cutting-edge technology to provide unparalleled versatility and efficiency in your development process. In this article, I will take you on an insightful journey to understand what precisely the &lt;a href="https://create.t3.gg/" rel="noopener noreferrer"&gt;T3 Stack&lt;/a&gt; is and how leveraging it could transform your application development.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the T3 Stack?
&lt;/h2&gt;

&lt;p&gt;The T3 Stack (short for TypeScript, Next.js, tRPC, Tailwind.css and Prisma) represents an advanced technology stack designed specifically for developing modern web applications with high performance and ultimately superior user experience. Combining these technologies empowers developers with a streamlined workflow while ensuring adherence to best practices.&lt;/p&gt;

&lt;p&gt;This influential toolkit has been gaining popularity due to its dynamic components that integrate seamlessly into any project -- allowing developers unmatched flexibility when working on various projects ranging from e-commerce platforms to intricate data visualization tools.&lt;/p&gt;

&lt;p&gt;To further comprehend why the T3 Stack has become an industry favorite, let us delve deep into each critical component that makes up this impressive technological marvel!&lt;/p&gt;

&lt;h2&gt;
  
  
  Components of the T3 Stack
&lt;/h2&gt;

&lt;p&gt;The T3 stack consists of several modern web development technologies that work together to provide a seamless and efficient environment for developers. Let's explore each component in detail.&lt;/p&gt;

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

&lt;p&gt;TypeScript, the first component of the T3 stack, is an open-source programming language developed by Microsoft. It can be considered a superset of JavaScript since it adds static types to the script for easier code analysis and safer refactoring. Developers appreciate TypeScript because it leads to fewer runtime errors, self-documenting code, autocompletion in most modern editors, and an overall improved developer experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Next.js
&lt;/h3&gt;

&lt;p&gt;Next.js is a popular framework built on top of React that simplifies server-rendered applications without sacrificing performance or flexibility. As part of the T3 tech stack, Next.js enables incremental static generation and server-side rendering while offering many built-in features such as automatic code splitting, image optimization, real-time feedback during development, and easy integration with third-party APIs.&lt;/p&gt;

&lt;p&gt;With its combination of convenience and performance improvements over traditional React applications, Next.js has become one of the essential components in project t3.&lt;/p&gt;

&lt;h3&gt;
  
  
  tRPC
&lt;/h3&gt;

&lt;p&gt;tRPC is another vital element in the T3 stack that handles remote data fetching and communication between the client application (such as a browser) and backend APIs. In contrast to RESTful APIs or GraphQL, tRPC uses procedure calls via HTTP endpoints generated from your TypeScript interfaces - removing boilerplate code such as routing configuration or manual type mappings.&lt;/p&gt;

&lt;p&gt;By using this approach, tRPC significantly reduces complexity within a create-t3-app implementation while maintaining strong typing end-to-end. This results in both better documentation and fewer runtime errors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tailwind CSS
&lt;/h3&gt;

&lt;p&gt;Tailwind CSS plays an important role in styling components within a T3 tech stack application. It's essentially a utility-first CSS framework used to build customizable user interfaces more efficiently than traditional CSS approaches like BEM or SMACSS.&lt;/p&gt;

&lt;p&gt;One significant advantage of Tailwind CSS is its ability to compose new utilities on-the-fly without the need for writing separate custom stylesheets. This responsiveness allows developers to iterate faster when building and modifying user interfaces, leading to a more streamlined workflow.&lt;/p&gt;

&lt;p&gt;Tailwind CSS also offers built-in support for popular frameworks, such as Next.js. Its flexible design system can be integrated quickly within project T3 applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prisma
&lt;/h3&gt;

&lt;p&gt;Prisma completes the T3 stack by providing an easy-to-use data access layer for your backend APIs. It allows developers to use strongly-typed API calls that automatically map database tables to TypeScript types in their application.&lt;/p&gt;

&lt;p&gt;Given its features like auto-generated CRUD operations, atomic batch operations and optimistic concurrency control, Prisma eliminates the majority of boilerplate code required when connecting an application's frontend with server-side data stores.&lt;/p&gt;

&lt;p&gt;In conclusion, combining TypeScript, Next.js, tRPC, Tailwind CSS and Prisma creates a powerful T3 tech stack that enables agile development workflows and simplifies complex applications - unleashing their full potential in modern web development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a T3 stack application with create-t3-app
&lt;/h2&gt;

&lt;p&gt;Creating an application using the T3 tech stack is made seamless with the powerful command-line tool, create-t3-app. This section provides detailed guidance on the pre-requisites and steps for setting up your web development environment by employing this CLI tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pre-requisites
&lt;/h3&gt;

&lt;p&gt;Before diving into the process of creating a T3 stack application, it's essential to ensure that your development environment meets all the required prerequisites. By doing so, you'll mitigate potential compatibility issues or errors during project setup. Here are the imperative prerequisites:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Node.js: As a crucial component of both Next.js and tRPC ecosystems, Node.js runtime must be installed (version 12.x or later). You can download it from their &lt;a href="https://nodejs.org/en/" rel="noopener noreferrer"&gt;official website&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; NPM/Yarn: Both of these dependency management tools facilitate package installation and maintenance for your project. While NPM comes bundled with Node.js installations by default, you can also opt for Yarn as an alternative.&lt;/li&gt;
&lt;li&gt; Git: Version control plays an essential role in modern web development workflows. Git is one such version control system that allows smooth collaboration and easy tracking of changes in your codebase.&lt;/li&gt;
&lt;li&gt; Code Editor: A suitable code editor like Visual Studio Code (VSCode) or similar editors is recommended for efficiently writing code following organized structure incorporating syntax highlighting capabilities.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With these prerequisites met, we are ready to proceed to developing a T3 tech stack application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps
&lt;/h3&gt;

&lt;p&gt;Once your development environment is set up correctly, follow these steps to leverage create-t3-app for building a new project:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Install create-t3-app&lt;/strong&gt;: Initiate by installing create-t3-app globally via npm/yarn running either npm install -g create-t3-app or yarn global add create-t3-app.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Generate new app&lt;/strong&gt;: Utilize newly installed create-t3-app to scaffold a brand-new T3 stack application by executing the command create-t3-app my-project, replacing "my-project" with your desired project name.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Navigate to the project&lt;/strong&gt;: Move into the created project directory using cd my-project.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Install dependencies&lt;/strong&gt;: Install all necessary dependencies for your new T3 tech stack-powered app through npm install or yarn.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Launch development server&lt;/strong&gt;: Lastly, initiate your local development server provided by Next.js via running npm run dev or yarn dev. By doing so, you can view your newly created T3 stack application in action at &lt;a href="http://localhost:3000/" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With these steps completed, you have successfully programmed a T3 stack app employing create-t3-app CLI tool enabling efficient TypeScript/Next.js/tRPC/Tailwind.css/Prisma integration . Make sure to explore the generated codebase to familiarize yourself with how various components interact and contribute towards seamless web development experience using the powerful T3 tech stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of Using Create-T3-App
&lt;/h2&gt;

&lt;p&gt;Utilizing the create-t3-app tool offers several notable benefits for developers looking to harness the T3 stack. This section will explore how create-t3-app simplifies the development process, streamlines efficiency, and helps establish solid coding foundations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Streamlined Development Process
&lt;/h3&gt;

&lt;p&gt;Create-t3-app provides a scaffolded template for developers to build upon, eliminating repetitive setup routines when starting a new project. This approach allows you to save precious time by removing unnecessary bottlenecks during initialization. Moreover, it ensures consistency between projects designed with the T3 tech stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Practices and Conventions
&lt;/h3&gt;

&lt;p&gt;Leveraging create-t3-app ensures that all required dependencies are installed correctly and adheres to community best practices and conventions within your T3 stack project. Doing so promotes cleaner code structures, streamlined processes, and an overall better experience for collaborating developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enhanced Efficiency through Bundled Technologies
&lt;/h3&gt;

&lt;p&gt;Create-t3-app bundles TypeScript, Next.js, tRPC, Tailwind CSS, and Prisma -- all essential components of the T3 stack -- into a single package. This bundling enhances developer efficiency by automating the integration of these technologies in a seamless fashion. As a result, programmers can focus on building functional applications instead of wrestling with configuration issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  Simplified Application Structure
&lt;/h3&gt;

&lt;p&gt;Through engineer-friendly presets offered by creating t3 app, managing resources across various frameworks becomes much more accessible. By incorporating file-based routing provided by Next.js or simplifying server-side logic using tRPC, creative teams can concentrate solely on developing impressive results while leaving structural complexities at bay.&lt;/p&gt;

&lt;h3&gt;
  
  
  Increased Code Maintainability
&lt;/h3&gt;

&lt;p&gt;By adopting create-t3-app within your team's workflow processes ensure cohesive compliance with established practices centered around scalability, modularity, and maintainability. Implementing these wide-ranging standards makes it substantially easier for team members overseeing future expansion plans or remediations any encountered challenges connected to previous phases of deployment.&lt;/p&gt;

&lt;p&gt;In summary, using create-t3-app proves to be a powerful and beneficial ally for developers seeking to harness the full potential of the T3 tech stack. By offering a streamlined development process, adherence to industry best practices, bundled technologies for efficiency, simplified application structure, and enhanced code maintainability, this tool acts as an invaluable resource in any developer's arsenal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Similarities between create-t3-app and create-react-app
&lt;/h2&gt;

&lt;p&gt;As you dive deeper into the world of T3 stack, it's essential to understand its similarities with another popular tool, create-react-app. Both of these libraries are designed to kickstart your web development projects in a matter of minutes. Let's explore some key similarities between create-t3-app and create-react-app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rapid Environment Setup
&lt;/h3&gt;

&lt;p&gt;One common ground between both tools is their focus on rapid environment setup for developers. By using either create-t3-app or create-react-app, developers can quickly scaffold a new project without manual configuration. Thus, they save time and effort.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zero Configuration
&lt;/h3&gt;

&lt;p&gt;Both t3 stack and create-react-app adhere to the zero-configuration philosophy. This means that after executing the respective commands (npx create-t3-stack appName or npx create-react-app appName), you get a fully-configured environment with pre-installed dependencies and built-in project structure --- leaving no need for tweaks or adjustments in most cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Webpack Integration
&lt;/h3&gt;

&lt;p&gt;Webpack is utilized as the core bundler by both t3 stack and create-react-app. It offers an abundance of features such as hot-reloading during development, code-splitting for efficient delivery, optimization techniques for production builds, and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Babel Integration
&lt;/h3&gt;

&lt;p&gt;Babel plays a significant role in both stacks. It allows developers to write modern JavaScript (ES6+) code while ensuring browser compatibility through automated transpilation down to ES5 syntax. In essence, Babel ensures that your cutting-edge JavaScript code runs seamlessly across different browsers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Extensibility
&lt;/h3&gt;

&lt;p&gt;Another similarity lies in their extensibility. While created with sensible default settings out-of-the-box, both tools allow developers to customize configurations if needed --- making room for tailoring specific requirements that curated settings might not cover.&lt;/p&gt;

&lt;p&gt;To sum up, although there are inherent differences due to varying tech stacks (T3 stack featuring TypeScript, Next.js, tRPC, Tailwind.css, and Prisma), both create-t3-app and create-react-app bring considerable benefits in terms of rapid project setup, zero-configuration philosophy, Webpack and Babel integrations, as well as extensibility. As a developer or a team working on web applications, choosing between these options will ultimately depend on your project requirements and familiarity with the constituent technologies that t3 stack and create-react-app embrace.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drawbacks of using create-t3-app
&lt;/h2&gt;

&lt;p&gt;As impressive and efficient as the T3 tech stack may appear, it is not devoid of drawbacks. The use of create-t3-app comes with certain limitations that might deter some developers from choosing this option for their projects. In this section, we will discuss a few notable challenges associated with using create-t3-app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Limited Customizability
&lt;/h3&gt;

&lt;p&gt;While the pre-configured setup provided by create-t3-app can save time and effort, many developers may want to customize the stack according to their unique project requirements. Unfortunately, create-t3-app does not offer extensive customization options as one might desire. This limitation can make it challenging for developers who prefer building complex applications tailored to specific needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Smaller Community &amp;amp; Ecosystem
&lt;/h3&gt;

&lt;p&gt;Compared to other popular tech stacks like MERN or MEAN, the T-content writer Stack has a smaller ecosystem and community support. It might be more difficult to find comprehensive resources, guides, or libraries built specifically for components within the T3 Stack. Additionally, if you encounter any issues when working on your project t3 application, you may need to rely heavily on official documentation rather than crowd-sourced solutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learning Curve
&lt;/h3&gt;

&lt;p&gt;Though create-t3-app aims to streamline app development, several components within the T3 Stack have a steep learning curve. For instance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; TypeScript: Developers accustomed to JavaScript must learn new syntax rules and typing concepts.&lt;/li&gt;
&lt;li&gt; Next.js: Understanding its server-side rendering and middleware implementations could be challenging.&lt;/li&gt;
&lt;li&gt; Tailwind.css: If familiar with traditional CSS frameworks like Bootstrap or Materialize, mastering utility-first classes takes practice.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The necessity to gain proficiency in these individual technologies can prolong initial setup and development time for less experienced developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Not Suitable for All Project Types
&lt;/h3&gt;

&lt;p&gt;It is important to note that while powerful capabilities are offered by utilizing the T-content writer Stack approach, this doesn't mean it is suitable for every project. When working on small projects or when there is no need for advanced functionalities offered by the T3 Stack components, it might not be practical to use create-t3-app as your starting point.&lt;/p&gt;

&lt;p&gt;In conclusion, while create-t3-app unquestionably streamlines and accelerates the development process, one cannot overlook its drawbacks. Developers must consider their specific project requirements, available resources, and personal preferences before deciding to adopt the T3 tech stack using this tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for using the T3 Stack
&lt;/h2&gt;

&lt;p&gt;To fully unleash the potential of the T3 tech stack, adopting best practices is crucial. By adhering to these guidelines, you can optimize your project's efficiency and performance while maintaining code quality and scalability. Let's explore several recommended standards when utilizing the T3 Stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  Maintain a Consistent Coding Style
&lt;/h3&gt;

&lt;p&gt;One of the most essential best practices while working with any tech stack is to maintain consistent coding style across your project. This includes following standardized naming conventions, file structure organization, and applying indentation correctly. Adhering to such uniformity results in readable, maintainable code that your team members can effortlessly work on together.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stay Up-to-Date with Updates
&lt;/h3&gt;

&lt;p&gt;Project T3 involves multiple components like TypeScript, Next.js, tRPC, Tailwind CSS, and Prisma. Since these technologies are evolving rapidly, it's essential to stay up-to-date with their latest improvements. Regular updates enable you to take advantage of new features or security patches when available. Always assess your dependencies periodically and update them accordingly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Leverage TypeScript's Power
&lt;/h3&gt;

&lt;p&gt;Since TypeScript forms an integral part of the T3 stack foundation, making full use of its power should be a priority. By embracing strong typing and interfaces offered by TypeScript:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Code consistency improves&lt;/li&gt;
&lt;li&gt; Possible runtime errors are detected early during development&lt;/li&gt;
&lt;li&gt; Integration with IDEs becomes smoother&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Additionally, invest time in learning advanced TypeScript techniques to further enhance your development experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Optimize Performance with Next.js
&lt;/h3&gt;

&lt;p&gt;The inclusion of Next.js in the T3 Tech Stack offers numerous optimization opportunities like server-side rendering (SSR), static site generation (SSG), image optimization, and built-in automated code splitting to improve web application performance drastically. By taking advantage of these features whenever feasible&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The T3 tech stack has emerged as a powerful and efficient combination of tools for developing modern web applications. By leveraging the strengths of TypeScript, Next.js, tRPC, Tailwind CSS, and Prisma, it paves the way for an improved development experience that caters to the ever-growing needs of today's developers.&lt;/p&gt;

&lt;p&gt;Using the create-t3-app tool simplifies the process of setting up a new project with this innovative stack. It allows developers to harness its full potential without having to worry about configuring individual components manually. However, it is crucial to be aware of certain drawbacks when using create-t3-app so you can make informed decisions in your projects.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Zero Downtime Deployment Strategy for a React Dashboard with NGINX</title>
      <dc:creator>Siddharth Verma</dc:creator>
      <pubDate>Mon, 24 Apr 2023 09:44:58 +0000</pubDate>
      <link>https://dev.to/4r7ur/zero-downtime-deployment-strategy-for-a-react-dashboard-with-nginx-1i17</link>
      <guid>https://dev.to/4r7ur/zero-downtime-deployment-strategy-for-a-react-dashboard-with-nginx-1i17</guid>
      <description>&lt;p&gt;In this blog, we'll discuss a zero-downtime deployment strategy for a React Dashboard using NGINX. With this approach, you'll be able to make seamless updates to your application without any downtime, ensuring a smooth user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;Here's how the zero-downtime deployment strategy works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;NGINX points to a folder that is a symlink, which we'll call the "deployment" folder.&lt;/li&gt;
&lt;li&gt;When deploying a new instance, a new folder is created with the timestamp as its name.&lt;/li&gt;
&lt;li&gt;The symlink is switched to point to the new folder.&lt;/li&gt;
&lt;li&gt;This allows users to easily switch between deployments and roll back to previous versions if necessary.&lt;/li&gt;
&lt;li&gt;Older folders are deleted after five deployments.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's dive into each step in more detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Set Up NGINX Configuration
&lt;/h2&gt;

&lt;p&gt;First, let's configure NGINX to point to our symlinked "deployment" folder. Create an NGINX configuration file named &lt;code&gt;nginx.conf&lt;/code&gt; and add the following content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;http&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;yourdomain.com&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="n"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="n"&gt;/path/to/your/deployment/folder&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="kn"&gt;try_files&lt;/span&gt; &lt;span class="nv"&gt;$uri&lt;/span&gt; &lt;span class="n"&gt;/index.html&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="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;yourdomain.com&lt;/code&gt; with your actual domain name and &lt;code&gt;/path/to/your/deployment/folder&lt;/code&gt; with the path to your symlinked "deployment" folder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create a New Folder with a Timestamp
&lt;/h2&gt;

&lt;p&gt;When deploying a new instance, create a new folder with the current timestamp as its name. You can do this using a simple bash script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;timestamp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%Y%m%d%H%M%S&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; /path/to/your/instances/folder/&lt;span class="nv"&gt;$timestamp&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;/path/to/your/instances/folder&lt;/code&gt; with the actual path to your instances folder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Switch the Symlink to the New Folder
&lt;/h2&gt;

&lt;p&gt;After creating the new folder with the timestamp, switch the symlink to point to it. You can do this using the &lt;code&gt;ln&lt;/code&gt; command in your bash script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;timestamp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%Y%m%d%H%M%S&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; /path/to/your/instances/folder/&lt;span class="nv"&gt;$timestamp&lt;/span&gt;
&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-sfn&lt;/span&gt; /path/to/your/instances/folder/&lt;span class="nv"&gt;$timestamp&lt;/span&gt; /path/to/your/deployment/folder
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 4: Deploy the React Dashboard
&lt;/h2&gt;

&lt;p&gt;Now, deploy the React Dashboard to the newly created timestamp folder. You can use any build tool or process you prefer, such as Webpack or Create React App. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;timestamp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%Y%m%d%H%M%S&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; /path/to/your/instances/folder/&lt;span class="nv"&gt;$timestamp&lt;/span&gt;
&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-sfn&lt;/span&gt; /path/to/your/instances/folder/&lt;span class="nv"&gt;$timestamp&lt;/span&gt; /path/to/your/deployment/folder

&lt;span class="nb"&gt;cd&lt;/span&gt; /path/to/your/react/dashboard
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run build
&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; build/&lt;span class="k"&gt;*&lt;/span&gt; /path/to/your/instances/folder/&lt;span class="nv"&gt;$timestamp&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 5: Delete Older Folders
&lt;/h2&gt;

&lt;p&gt;To prevent clutter, delete older folders after five deployments. You can do this using the &lt;code&gt;find&lt;/code&gt; command in your bash script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;timestamp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%Y%m%d%H%M%S&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; /path/to/your/instances/folder/&lt;span class="nv"&gt;$timestamp&lt;/span&gt;
&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-sfn&lt;/span&gt; /path/to/your/instances/folder/&lt;span class="nv"&gt;$timestamp&lt;/span&gt; /path/to/your/deployment/folder

&lt;span class="nb"&gt;cd&lt;/span&gt; /path/to/your/react/dashboard
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run build
&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; build/&lt;span class="k"&gt;*&lt;/span&gt; /path/to/your/instances/folder/&lt;span class="nv"&gt;$timestamp&lt;/span&gt;

find /path/to/your/instances/folder &lt;span class="nt"&gt;-mindepth&lt;/span&gt; 1 &lt;span class="nt"&gt;-maxdepth&lt;/span&gt; 1 &lt;span class="nt"&gt;-type&lt;/span&gt; d | &lt;span class="nb"&gt;sort&lt;/span&gt; | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="nt"&gt;-5&lt;/span&gt; | xargs &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This script will delete all folders except the five most recent ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;By following these steps, you can achieve a zero-downtime deployment strategy for your React Dashboard with NGINX. This approach ensures that your users will always have access to the latest version of your application without any interruptions. Additionally, it allows for seamless rollbacks and easy management of multiple deployments.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>react</category>
    </item>
    <item>
      <title>5 AI Trends For The Next 5 Years</title>
      <dc:creator>Siddharth Verma</dc:creator>
      <pubDate>Thu, 22 Dec 2022 14:44:22 +0000</pubDate>
      <link>https://dev.to/4r7ur/5-ai-trends-for-the-next-5-years-3f74</link>
      <guid>https://dev.to/4r7ur/5-ai-trends-for-the-next-5-years-3f74</guid>
      <description>&lt;p&gt;AI is rapidly evolving, I had many opportunities to work with some of the leading AI researchers and according to them, AI is going to change the world in the next 5 years. Here are the top 5 AI trends for the next 5 years that you should know as a developer.&lt;br&gt;
&lt;strong&gt;PS - Not another chat-GPT article 😅&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Rise of Federated Learning
&lt;/h2&gt;

&lt;p&gt;Federated learning is a machine learning approach that allows multiple devices, such as smartphones or another internet of things (IoT) devices, to collaborate and learn a shared model without the need to share raw data. In this approach, each device trains a local model based on its own data, and then the local models are aggregated to produce a global model.&lt;br&gt;
With the increase in the computational power of these devices and dedicated onboard AI processors, I believe that we will see a rise in the use of federated learning. This will be a game-changer for the privacy of the users and will also help in the development of AI models for edge devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Emergence Of Explainable AI
&lt;/h2&gt;

&lt;p&gt;Explainable AI (XAI) refers to artificial intelligence systems that can provide explanations for their decisions, predictions, or actions in a way that is understandable to humans. The goal of XAI is to create AI systems that can be trusted and understood by people, which can be particularly important in situations where the consequences of AI decisions have significant impacts on people's lives, such as in healthcare, finance, and law.&lt;br&gt;
XAI will become a very important aspect of AI. It will help in the development of trust in AI systems and will also help in the development of AI systems that are more transparent and understandable.&lt;/p&gt;

&lt;h2&gt;
  
  
  HiveMind/Decentralized AI
&lt;/h2&gt;

&lt;p&gt;HiveMind AI is an artificial intelligence system that is designed to work in a decentralized manner, using a network of interconnected devices or computers to process and analyze data. This could involve the use of techniques such as federated learning, which allows multiple devices to collaborate and learn a shared model without the need to share raw data.&lt;br&gt;
With the rise of 5G and the increase of Electric Vehicles, I believe this technology is inevitable. This will make AI systems more robust and will also help in the development of AI systems that can work in a decentralized manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  More Robust Multilingual AI
&lt;/h2&gt;

&lt;p&gt;Multilingual AI refers to artificial intelligence systems that are able to process and understand multiple languages. This can be particularly useful in situations where there is a need to interact with people who speak different languages, or in scenarios where data is available in multiple languages.&lt;br&gt;
This means more people who don't speak English will have access to Modern AI. This will reduce the language barrier and will also lead to more AI acceptance. We can already see the rise of this technology in Generative AI Models like GPT-3, Facebook's No Language Left Behind, and HuggingFace's Big Science.&lt;/p&gt;

&lt;h2&gt;
  
  
  First Quantum AI
&lt;/h2&gt;

&lt;p&gt;Ok, this is a bit of a stretch but I believe at least in a lab setting, we will see the first steps toward Quantum AI. Although, Quantum computers are still in the early stages of development, they have the potential to solve certain types of problems much faster than classical computers. This means that quantum computers can solve problems that would take classical computers millions of years to solve in a matter of seconds.&lt;br&gt;
An AI powered by a Quantum Computer will be the next step in the evolution of AI. This will not only be a game changer for AI but will also be a game changer for the world of Physics and Mathematics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The future of AI looks very promising. We can already observe the rise of some of these technologies. I believe that the next 5 years will be very exciting. What a wonderful time to be alive! 🤩.&lt;br&gt;
I hope you enjoyed this article. If you love AI as much as I do, feel free to connect with me on &lt;a href="https://www.linkedin.com/in/4r7ur/" rel="noopener noreferrer"&gt;LinkedIn &lt;/a&gt;or Say Hi to me on my &lt;a href="https://sid.black/" rel="noopener noreferrer"&gt;Personal Website(Siddharth Verma)&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>My First Step Towards Passive Income | The MVP Challenge💵</title>
      <dc:creator>Siddharth Verma</dc:creator>
      <pubDate>Tue, 22 Nov 2022 16:38:16 +0000</pubDate>
      <link>https://dev.to/4r7ur/my-first-step-towards-passive-income-the-mvp-challenge-54fe</link>
      <guid>https://dev.to/4r7ur/my-first-step-towards-passive-income-the-mvp-challenge-54fe</guid>
      <description>&lt;p&gt;Today, I took a day off from freelancing and challenged myself to build something in a day that could potentially generate some income.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;Over the years I had to build a lot of scripts for myself that I use. A lot of people to whom I showed them have shown interest in using them. So the approach was pretty simple to convert them to tools and APIs that other people can use.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Execution
&lt;/h2&gt;

&lt;p&gt;Time was of the essence hence I took the fastest way. I still wanted a good experience for the users So I used a bunch of tools.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I went through the scripts I have and decided to move forward with a #seo Page Audit Python Script that I have developed in the past. The reason I went with this is that it has a pretty wide use case with relatively less competition.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I restructured the code to a lambda function behind an API gateway and deployed it using &lt;a href="https://www.serverless.com" rel="noopener noreferrer"&gt;serverless&lt;/a&gt;. Serverless is just amazing, it streamlines the whole process and makes the deployment and management pretty scale. So in a few lines of YAML code, my API had dev and prod mode and was on the cloud.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Made a &lt;a href="https://rapidapi.com" rel="noopener noreferrer"&gt;RapidAPI&lt;/a&gt; account. Took me around an hour to set it up(The documentation is pretty confusing) which includes creating limits, testing, and documentation for my API. RapidAPI takes care of Authentication, Documentation, Rate Limits, and specially Monetization(It took a single click to connect my PayPal).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did the final testing via a different account to ensure limits are correctly enforced and everything is working correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Made a quick website using &lt;a href="https://docusaurus.io" rel="noopener noreferrer"&gt;Docusaurus&lt;/a&gt; and documented the features. This tool is so amazing you can create a website for documentation very quickly. It's a self-hosted open-sourced (courtesy of Meta) platform built in react that can generate static HTML pages using Markdown language.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Created a Git repository pushed the code and connected the repository with &lt;a href="https://vercel.com" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt; and my website is live(from creation to hosting) in under 2 Hours. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I already had a domain api.ind.in (pretty cool name right 😎). Changed its domain servers to Cloudflare and pointed it to Vercel. This process took minutes. A single click enabled a catch-all system for emails for my domain which are forwarded to my personal email address. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Made a contact us form using &lt;a href="https://tally.so" rel="noopener noreferrer"&gt;tally&lt;/a&gt; and linked it to the website. Where people can request new APIs or get in touch with me. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Linked my website to my RapidApi profile, the documentation page to my API and enabled Search Console for the website.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wrote an article about it 🤓. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Final Product
&lt;/h2&gt;

&lt;p&gt;The whole process took me less than 10 hours. Below are the links to the final products. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://rapidapi.com/organization/api-ind" rel="noopener noreferrer"&gt;Rapid API Page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://api.ind.in/" rel="noopener noreferrer"&gt;Documentation Website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you know the right tools you can be 10X productive. Checkout my picks for &lt;a href="https://sid.black/tools/best-tools-for-saas" rel="noopener noreferrer"&gt;best tools for startups&lt;/a&gt;.&lt;br&gt;
Feel free to subscribe if you like such content. If you have any questions feel free to comment.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>A Developer's Content Writing System. Idea 👉Publish</title>
      <dc:creator>Siddharth Verma</dc:creator>
      <pubDate>Sun, 23 Oct 2022 11:12:27 +0000</pubDate>
      <link>https://dev.to/4r7ur/a-developers-content-writing-system-idea-publish-126e</link>
      <guid>https://dev.to/4r7ur/a-developers-content-writing-system-idea-publish-126e</guid>
      <description>&lt;p&gt;Let's be honest. We developers are busy fixing bugs, writing code, and making sure our applications are running smoothly. We don't have time to write content all the time and it takes a lot of time to create quality content. Here is the system that I use to ideate, manage and create content quickly and efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting The Idea&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The problem with getting an idea is never there when you want it 😒. I have my &lt;strong&gt;second brain system&lt;/strong&gt; for capturing and curating ideas. The core idea behind this approach is to capture ideas as they come as frictionlessly as possible and then curate them later. Here are the tools that I use to capture ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft Todo&lt;/strong&gt; - It's a &lt;a href="https://todo.microsoft.com/" rel="noopener noreferrer"&gt;to-do&lt;/a&gt; app in which you can create multiple lists and folders. I have a list called &lt;strong&gt;Blog Ideas&lt;/strong&gt;. An idea can come at any time and this app offers an android widget that is pinned to my second screen and can be easily accessed by my laptop using windows + W.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pocket Automation&lt;/strong&gt; - When I come across an article that inspires me to write, I save it to Pocket via the browser extension with a tag called &lt;strong&gt;To Write&lt;/strong&gt;. I have an &lt;a href="https://ifttt.com/" rel="noopener noreferrer"&gt;IFTTT&lt;/a&gt; recipe that automatically adds the article to my &lt;strong&gt;Blog Ideas&lt;/strong&gt; list in Microsoft Todo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can imagine the &lt;strong&gt;Blog Ideas&lt;/strong&gt; list in Microsoft Todo is a mess.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Curating The Idea&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The next step is to curate the ideas. Whenever I feel like writing, I open my Todo List and go through the ideas. I pick the ones that I feel about writing and move them to Notion and ignore the others. Then I mark all the ideas as done. &lt;em&gt;This is important to clear your list in one sitting.&lt;/em&gt; My base notion template in broken down into 3 sections and each idea is a page separated by a divider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Draft&lt;/strong&gt; - This is where I add the ideas that I am currently adding a content outline to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backlog&lt;/strong&gt; - This is where I add the ideas that I want to write about(Yeah I am a Jira nerd).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Done&lt;/strong&gt; - The ideas which are published go here.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This page is shared with my content intern and a few friends who work with me. This way I can get feedback on the ideas and also get help in writing. They sometimes add references to the ideas which I can use in my writing or curate the outline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Each idea. I use the following template for the pages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Title&lt;/strong&gt; - The title of the article&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outline&lt;/strong&gt; - This is a list of sections that I want to write.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;References&lt;/strong&gt; - This is a list of links either curated by me or my friends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Topics&lt;/strong&gt; - I use this to broaden the scope of the article and make sure I cover the topic in depth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stats&lt;/strong&gt; - Word count, outbound link count, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Here is the secret sauce 🤫
&lt;/h3&gt;

&lt;p&gt;I have a python script that takes an idea does research, adds references based on a scoring system, writes the outline, and topics to write about with their SERP competition and some stats. My initial draft of Notion is created by this script. It uses a SERP API, some NLP and &lt;a href="https://sid.black/blogs/gpt3-crash-course" rel="noopener noreferrer"&gt;GPT3&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Writing The Article&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Non-developers will be shocked by this. I use VSCode to write my articles in markdown. It's a homely feeling, I know all the shortcuts and It has a dark mode 😎. &lt;strong&gt;But the main reason is&lt;/strong&gt; I use &lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;GitHub Copilot&lt;/a&gt; and when you write in markdown in VSCode it suggests writing prompts. So sometimes it's like I am writing with a ghostwriter. Not only the suggestions are relevant but are formatted in markdown. &lt;strong&gt;Trust me, it's a game-changer&lt;/strong&gt;. I can write an article in 1-2 hours. If you are on windows like me you can add emojis by this shortcut (windows + .[dot]).&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Editing The Article&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I use Google Docs to edit my articles(You can create a new doc by typing doc.new in your browser). I use a &lt;a href="https://markdowntohtml.com/" rel="noopener noreferrer"&gt;markdown-to-HTML&lt;/a&gt; converter to convert the markdown to HTML and then copy and paste it into Google Docs. All of these docs are in a shared folder which is subdivided into folders based on the month. &lt;strong&gt;Here is why I use Google Docs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I use the Grammarly Chrome extension which now works very well with Google Docs. It catches all my typos and grammatical errors and I can fix them in one go by clicking on the suggestions.&lt;/li&gt;
&lt;li&gt;I can easily share the document with my editor and get feedback in form of comments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;This gonna blow your mind&lt;/strong&gt; when you select a word/phrase in Google Docs to hyperlink(ctrl + k). It automatically suggests the most relevant pages by understanding the context from the web and other docs. So it's super easy to add links to the article. If the link is to a Google Doc, I can copy the published link from the notion. It's linking and interlinking at its best. You can even search the web in that input.&lt;/li&gt;
&lt;li&gt;It also has a lot of other nice features like word count(ctrl+shift+c), quick access to a thesaurus, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Publishing The Article&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Not much to say here. I either copy-paste the HTML, convert the &lt;a href="https://word2md.com/" rel="noopener noreferrer"&gt;doc to markdown&lt;/a&gt;, or if the article have to go on my website. I have a script that converts the markdown to JSON which is then published to my website using &lt;a href="https://www.sanity.io/" rel="noopener noreferrer"&gt;sanity.io&lt;/a&gt;(How everything is handled from here is a blog post for another day).&lt;/p&gt;

&lt;p&gt;Then I move the notion page to the &lt;strong&gt;Done&lt;/strong&gt; section.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Following this process I can ideate, write, edit and publish an article in 1-2 days. I have a lot of ideas in my backlog and I am working on them.&lt;/p&gt;

&lt;p&gt;I hope this helps you in your content writing journey. If you have any questions or improvements, feel free to drop a comment. &lt;a href="https://subscribe.sid.black/" rel="noopener noreferrer"&gt;Subscribe to my newsletter here&lt;/a&gt; to get notified when I publish something cool.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>ai</category>
    </item>
    <item>
      <title>Host Your SAAS Completely Serverless and Free</title>
      <dc:creator>Siddharth Verma</dc:creator>
      <pubDate>Sat, 22 Oct 2022 16:45:00 +0000</pubDate>
      <link>https://dev.to/4r7ur/host-your-saas-completely-serverless-and-free-2b1j</link>
      <guid>https://dev.to/4r7ur/host-your-saas-completely-serverless-and-free-2b1j</guid>
      <description>&lt;p&gt;SAAS architecture is inherently complex and designing one on a tight budget can be extremely difficult. When you are starting as a founder your focus should be on acquiring users, getting feedback, and building a great product. This is where a serverless architecture comes in, it handles all the underline complexity of managing servers through an abstract interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer ⚠️&lt;/strong&gt; - This article doesn't convey that you will be able to host your SAAS for free forever. A lot of these tools have Free tier and credits for Startups. That can be used to host your SAAS app for a year or so, or until you receive traction.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the benefits of hosting your SAAS on a serverless architecture?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Most serverless platforms have generous limits and have pay as you go, model. So your cost is directly proportional to your usage. If you price your product correctly you don't need to worry about the infrastructure pricing at all.&lt;/li&gt;
&lt;li&gt;Serverless scales really and the underlying complex infrastructure is abstracted. This way when your SAAS takes off you do not need to about scaling your infrastructure on worry about the platform going down.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What things to consider before using a serverless architecture?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You have tonnes of users and a big team. Although, If you are following a microservice-based architecture some of your services can be hosted on these platforms but at that stage, it makes more sense to look into Bare Metal Servers, you will be able to reduce your cost drastically(That's a topic for another day).&lt;/li&gt;
&lt;li&gt;Your SAAS uses very long-running processes like web crawling. Most serverless platforms have a hard timeout limit. This only means your backend for this service. The rest of your application can still be serverless.&lt;/li&gt;
&lt;li&gt;Your SAAS uses really huge Machine Learning models. The most popular platforms have a memory limit(AWS has 10Gb). &lt;strong&gt;Bonus:&lt;/strong&gt; If you are planning to use such a model. You might want to look into GPT3. Here is a &lt;a href="https://sid.black/blogs/gpt3-crash-course" rel="noopener noreferrer"&gt;crash course to get started with GPT3&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tools to consider for your Serverless architecture
&lt;/h2&gt;

&lt;p&gt;There are a lot of tools in the market. Here are my personal picks, Which I have personally used and should cover a majority of use cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Website and Web Application Hosting
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;Netilify&lt;/a&gt; and &lt;a href="https://vercel.com/" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt; are best suited for web hosting. I personally use Vercel but Netilify is equally good. They both have CDN built in, generous limits(paid plans starting at 20$), image optimization, Continuous Integration and Continuous Deployment.&lt;/p&gt;

&lt;p&gt;You might want to consider using Cloudflare as A DNS management service as it offers DDOS protection, loads of optimizations and a free inbox for your @domain emails. If you don't want to buy Gsuite or similar services.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend and Crons Hosting
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/lambda/" rel="noopener noreferrer"&gt;AWS Lambda&lt;/a&gt; is my go-to choice when it comes to backend hosting. You can configure your domain or subdomain in &lt;a href="https://aws.amazon.com/route53/" rel="noopener noreferrer"&gt;Route 53&lt;/a&gt; and &lt;a href="https://aws.amazon.com/api-gateway/" rel="noopener noreferrer"&gt;API Gateway&lt;/a&gt; to interface with your functions via REST API. I highly recommend using &lt;a href="https://www.serverless.com/" rel="noopener noreferrer"&gt;Serverless&lt;/a&gt; for deploying your code. It abstracts all the complexity and you can deploy all the complex cloud configurations using a simple YAML file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Databases
&lt;/h3&gt;

&lt;p&gt;Depending on your use case you should consider one of the following.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://firebase.google.com/products/firestore" rel="noopener noreferrer"&gt;Firestore&lt;/a&gt; - If you need a real-time database and need 2-way communication between your frontend and backend.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aws.amazon.com/dynamodb/" rel="noopener noreferrer"&gt;AWS DynamoDB&lt;/a&gt; - If your SAAS requires basic CRUD operation and you are planning to use a No SQL Database. This DB scales very well horizontally.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://planetscale.com/" rel="noopener noreferrer"&gt;PlanetScale&lt;/a&gt; - If you are planning to use a SQL database.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.mongodb.com/" rel="noopener noreferrer"&gt;MongoDB&lt;/a&gt; - If your SAAS requires Advance No SQL queries, Aggregations and etc. MongoDB Atlas has a serverless option and you can get free credits by applying to the &lt;a href="https://www.mongodb.com/startups" rel="noopener noreferrer"&gt;MongoDB Startup program&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Authentication
&lt;/h3&gt;

&lt;p&gt;For Authentication trust me to go with &lt;a href="https://firebase.google.com/" rel="noopener noreferrer"&gt;Firebase&lt;/a&gt;. It's super easy to implement and has tonnes of Authentication options including auth by phone numbers. The limits are amazing and are perfect if you are in the initial stages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Monitoring And Logging
&lt;/h3&gt;

&lt;p&gt;In a serverless environment, it's super important to keep track of your errors, logs and usage. These are the must-haves for any serverless application.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://sentry.io/" rel="noopener noreferrer"&gt;Sentry&lt;/a&gt; - Monitor all your errors in a single place using this. This tool converts errors into issues so you can prioritize the important issue.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://newrelic.com/" rel="noopener noreferrer"&gt;New Relic&lt;/a&gt; - Extremely powerful with a very generous limit. Help you analyze all your logs in a single place. This comes in extremely handy when your whole application is distributed. It integrates very well with all the services mentioned above.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Choosing a serverless architecture will save you a lot of time and a lot of headaches. Launching a SAAS product requires juggling multiple things. This architecture just takes the infrastructure off your plate until you can afford a dedicated DevOps person. It takes some work but you can incrementally move your application to a dedicated server.&lt;/p&gt;

&lt;p&gt;I personally feel using the right tools can 10x your productivity. Like what you read? Check out my &lt;a href="https://sid.black/tools/best-tools-for-saas" rel="noopener noreferrer"&gt;top list of must have SAAS Tools&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy Building 😊&lt;/p&gt;

</description>
      <category>saas</category>
      <category>serverless</category>
      <category>webdev</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
