<?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: Sarthak Chhabra</title>
    <description>The latest articles on DEV Community by Sarthak Chhabra (@sarthak_chhabra_123).</description>
    <link>https://dev.to/sarthak_chhabra_123</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%2F2872754%2F5610f4cc-877c-4ffb-a859-760b4bcc08af.jpeg</url>
      <title>DEV Community: Sarthak Chhabra</title>
      <link>https://dev.to/sarthak_chhabra_123</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sarthak_chhabra_123"/>
    <language>en</language>
    <item>
      <title>Top 11 GitHub Repos for Internal Tool Developers</title>
      <dc:creator>Sarthak Chhabra</dc:creator>
      <pubDate>Mon, 07 Jul 2025 11:45:00 +0000</pubDate>
      <link>https://dev.to/dronahq/top-11-github-repos-for-internal-tool-developers-2p25</link>
      <guid>https://dev.to/dronahq/top-11-github-repos-for-internal-tool-developers-2p25</guid>
      <description>&lt;p&gt;When it comes to building internal tools, speed, scalability, and ease of integration matter more than ever. Open-source internal tool platforms can save you weeks or even months of development work, whether you're a startup founder seeking to manage customer data quickly or a backend developer trying to empower your operations staff.&lt;/p&gt;

&lt;p&gt;The top 11 GitHub repositories that help developers build internal tools faster are listed here. Each has benefits, unique features, and different appeal depending on your goal and workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Refine
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://refine.dev" rel="noopener noreferrer"&gt;Refine&lt;/a&gt; is a React-based framework for building data-intensive applications, such as admin panels, dashboards, and internal business applications. Unlike traditional low-code tools, Refine provides you with full control over your stack, with extensibility built in. Also, it provides you with 150+ component libraries and 50+ connector options.&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%2Fz74sbvorif94arcxtmo7.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%2Fz74sbvorif94arcxtmo7.png" alt="Refine Example" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Full control using familiar React, TypeScript, and Ant Design components&lt;/li&gt;
&lt;li&gt;Integrates with backend frameworks and identity providers like Firebase and Keycloak&lt;/li&gt;
&lt;li&gt;Perfect for dev teams that prefer code-first approaches&lt;/li&gt;
&lt;li&gt;Excellent performance for complex, data-heavy apps&lt;/li&gt;
&lt;li&gt;Open and extensible with adapter-based architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not beginner-friendly: assumes React/TypeScript knowledge&lt;/li&gt;
&lt;li&gt;UI building requires more manual effort than drag-and-drop platforms&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;31.4k&lt;/td&gt;
    &lt;td&gt;2.1k&lt;/td&gt;
    &lt;td&gt;24&lt;/td&gt;
    &lt;td&gt;2&lt;/td&gt;
    &lt;td&gt;258&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/refinedev/refine" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; | &lt;a href="https://refine.dev/docs" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt; | License - MIT&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Appsmith
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.appsmith.com" rel="noopener noreferrer"&gt;Appsmith&lt;/a&gt; is a well-established open-source low-code platform that helps developers and product teams build internal tools quickly with drag-and-drop widgets and seamless data integration. There are developer-friendly and production-ready platforms out there.&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%2Fqg0we9uae2gxa6t4kubx.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%2Fqg0we9uae2gxa6t4kubx.png" alt="appsmith" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Comes with a powerful widget library for building dashboards, CRUD UIs, and admin panels&lt;/li&gt;
&lt;li&gt;Supports Git sync, version control, RBAC, audit logs, and other enterprise needs&lt;/li&gt;
&lt;li&gt;Easy integration with REST APIs, GraphQL, PostgreSQL, MongoDB, and more&lt;/li&gt;
&lt;li&gt;Great documentation and active community support&lt;/li&gt;
&lt;li&gt;Offers self-hosting and cloud options&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The initial load time for the builder can be a bit slow on lower-end machines.&lt;/li&gt;
&lt;li&gt;Complex workflows may require understanding Appsmith-specific scripting syntax (JavaScript)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzqka50w316rnfb9j5h6g.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%2Fzqka50w316rnfb9j5h6g.png" alt="appsmith" width="800" height="175"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;37.3k&lt;/td&gt;
    &lt;td&gt;4.1k&lt;/td&gt;
    &lt;td&gt;3.7k&lt;/td&gt;
    &lt;td&gt;108&lt;/td&gt;
    &lt;td&gt;315&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/appsmithorg/appsmith" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; | &lt;a href="https://docs.appsmith.com" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt; | License - Apache-2.0&lt;/p&gt;

&lt;h2&gt;
  
  
  3. N8N
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://n8n.io/" rel="noopener noreferrer"&gt;N8N&lt;/a&gt; is a powerful open-source low-code platform designed for workflow automation. Its drag-and-drop interface allows developers and teams to integrate APIs, SaaS tools, and databases with minimal code. Unlike rigid automation platforms, n8n gives you full control over your logic and data flow, making it ideal for internal operations teams.&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%2F5zozh6rkism781q1cd1y.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%2F5zozh6rkism781q1cd1y.png" alt="n8n" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Visual workflow builder to automate repetitive tasks across apps and APIs&lt;/li&gt;
&lt;li&gt;Native integrations with over 400+ services like Slack, Airtable, Stripe, Google Sheets&lt;/li&gt;
&lt;li&gt;Self-hosting support for full data control and privacy&lt;/li&gt;
&lt;li&gt;Conditional logic, loops, and error handling to build complex automation&lt;/li&gt;
&lt;li&gt;CLI tools, environment variables, and webhooks for dev workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI can feel less polished for beginners&lt;/li&gt;
&lt;li&gt;Initial setup for self-hosting may require technical experience&lt;/li&gt;
&lt;li&gt;Some advanced workflows still require JavaScript knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;42.7k&lt;/td&gt;
    &lt;td&gt;4.9k&lt;/td&gt;
    &lt;td&gt;752&lt;/td&gt;
    &lt;td&gt;98&lt;/td&gt;
    &lt;td&gt;328&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://github.com/n8n-io/n8n" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; | &lt;a href="http://docs.n8n.io" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  4. ToolJet
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.tooljet.com" rel="noopener noreferrer"&gt;ToolJet&lt;/a&gt; is another popular low-code builder focused on internal tool creation. It’s known for its modern UI, automation capabilities, and growing AI features, making it an excellent choice for rapidly building and deploying business apps with smart functionalities.&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%2Fjho16g5i72kbmq7903fa.jpeg" 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%2Fjho16g5i72kbmq7903fa.jpeg" alt="Itooljet" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Drag-and-drop editor with a modern feel&lt;/li&gt;
&lt;li&gt;Supports workflow automation and real-time collaboration&lt;/li&gt;
&lt;li&gt;Easy connection to APIs and databases like MySQL, MongoDB, and Airtable&lt;/li&gt;
&lt;li&gt;Self-hosting is supported, making it a good fit for privacy-conscious orgs&lt;/li&gt;
&lt;li&gt;Frequent updates and feature enhancements from the community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fewer third-party templates and widgets compared to Appsmith&lt;/li&gt;
&lt;li&gt;Performance may lag with very large datasets or deeply nested UI components&lt;/li&gt;
&lt;li&gt;AI features are still evolving and may not match the depth of dedicated AI dev tools&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;35.9k&lt;/td&gt;
    &lt;td&gt;3.5k&lt;/td&gt;
    &lt;td&gt;757&lt;/td&gt;
    &lt;td&gt;179&lt;/td&gt;
    &lt;td&gt;541&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/ToolJet/ToolJet" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; | &lt;a href="https://docs.tooljet.com" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt; | License - AGPL-3.0&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Noco DB
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://nocodb.com/" rel="noopener noreferrer"&gt;NocoDB&lt;/a&gt; is an open-source Airtable alternative that instantly turns any SQL database into a spreadsheet-style interface perfect for fast  CRUD dashboards and lightweight internal apps.&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%2F0sfe8f8ociivkv1jfl3n.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%2F0sfe8f8ociivkv1jfl3n.png" alt="NacoDB" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Grid, Kanban, Gallery &amp;amp; Calendar views&lt;/li&gt;
&lt;li&gt;Auto-generated REST and GraphQL APIs&lt;/li&gt;
&lt;li&gt;Role-based permissions and audit logs&lt;/li&gt;
&lt;li&gt;Self-hosted (Docker, Helm) or cloud SaaS options&lt;/li&gt;
&lt;li&gt;Import/export CSV, Excel; webhook &amp;amp; Zapier hooks&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Slower on multi-million-row tables&lt;/li&gt;
&lt;li&gt;Advanced formulas/roll-ups are still limited&lt;/li&gt;
&lt;li&gt;Some enterprise features (SSO, audit) feel beta-level&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;55.5k&lt;/td&gt;
    &lt;td&gt;4k&lt;/td&gt;
    &lt;td&gt;668&lt;/td&gt;
    &lt;td&gt;46&lt;/td&gt;
    &lt;td&gt;21&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/nocodb/nocodb" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; | License - AGPL-3.0&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Budibase
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://budibase.com" rel="noopener noreferrer"&gt;Budibase&lt;/a&gt; markets itself as a low-code platform for building internal tools in minutes. It’s ideal for teams needing quick CRUD apps or approval flows without diving deep into code. Its standout feature is the built-in database, which makes it great for simple apps.&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%2Fs46k1vabj3q3n9srh3mj.jpg" 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%2Fs46k1vabj3q3n9srh3mj.jpg" alt="budibase" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;All-in-one app builder with its own built-in database&lt;/li&gt;
&lt;li&gt;Offers automation workflows and email triggers&lt;/li&gt;
&lt;li&gt;Clean UI for building basic tools like inventory systems, HR apps, etc.&lt;/li&gt;
&lt;li&gt;Can be self-hosted or deployed to Budibase Cloud&lt;/li&gt;
&lt;li&gt;Supports CSV uploads and external data sources like CouchDB, MySQL, and REST APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Advanced use cases often require workarounds.&lt;/li&gt;
&lt;li&gt;The UI editor isn’t as smooth as ToolJet or Appsmith in more complex layouts.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;24.8k&lt;/td&gt;
    &lt;td&gt;1.8k&lt;/td&gt;
    &lt;td&gt;431&lt;/td&gt;
    &lt;td&gt;14&lt;/td&gt;
    &lt;td&gt;98&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/node-red/node-red" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; | Documentation | License - GPLv3&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Node-RED
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://nodered.org/" rel="noopener noreferrer"&gt;Node-RED&lt;/a&gt; is a low-code, flow-based development tool famous in IoT circles, but equally handy for wiring together APIs and internal automations with a browser drag-and-drop UI.&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%2Fy2a8o0rcke86sr6frs9e.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%2Fy2a8o0rcke86sr6frs9e.png" alt="Node-RED" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Visual “wiring” of nodes for HTTP, MQTT, SQL, etc.&lt;/li&gt;
&lt;li&gt;Runs anywhere Node.js runs—from Raspberry Pi to Kubernetes&lt;/li&gt;
&lt;li&gt;3000+ community nodes for third-party services&lt;/li&gt;
&lt;li&gt;Built-in debug panel and deploy-in-place editing&lt;/li&gt;
&lt;li&gt;Strong community under the OpenJS Foundation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmiwg494vv0fb5gtgyss.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%2Fjmiwg494vv0fb5gtgyss.png" alt="node-red" width="800" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI feels dated for newcomers&lt;/li&gt;
&lt;li&gt;Big JSON payloads can choke the runtime&lt;/li&gt;
&lt;li&gt;Limited out-of-the-box RBAC (handled via reverse proxy/SO auth)&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;21.5k&lt;/td&gt;
    &lt;td&gt;3.6k&lt;/td&gt;
    &lt;td&gt;336&lt;/td&gt;
    &lt;td&gt;88&lt;/td&gt;
    &lt;td&gt;13&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/node-red/node-red" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; | Licence - Apache-2.0&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Noco Base
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;NocoBase&lt;/a&gt; is an “extensibility-first” no/low-code core with a plug-in micro-kernel, aimed at teams that need fully custom business systems (CRMs, ERPs, workflow apps).&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%2Fq1wjwyosub4ezr4uukcg.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%2Fq1wjwyosub4ezr4uukcg.png" alt="noco base" width="800" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Plug-in architecture—add auth, UI themes, and workflows as modules&lt;/li&gt;
&lt;li&gt;Data-model-driven design (not just forms/tables)&lt;/li&gt;
&lt;li&gt;Drag-and-drop page builder plus JSON schema editing&lt;/li&gt;
&lt;li&gt;Self-host via Docker; Chinese and English docs&lt;/li&gt;
&lt;li&gt;RBAC and audit logs baked in&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Docs skew Chinese-first; English catching up&lt;/li&gt;
&lt;li&gt;Smaller template ecosystem than Appsmith/ToolJet&lt;/li&gt;
&lt;li&gt;Early plug-ins occasionally break with core upgrades&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;16k&lt;/td&gt;
    &lt;td&gt;1.8k&lt;/td&gt;
    &lt;td&gt;80&lt;/td&gt;
    &lt;td&gt;72&lt;/td&gt;
    &lt;td&gt;29&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Github Link | License - AGPL-3.0&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Rowy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.rowy.io/" rel="noopener noreferrer"&gt;Rowy&lt;/a&gt; offers a spreadsheet-style UI on top of Firebase/Firestore, letting teams manage data and cloud functions without jumping into the console.&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%2Fyf3ienvnw00alvvloxyu.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%2Fyf3ienvnw00alvvloxyu.png" alt="Rowy" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Airtable-like grid with inline editing &amp;amp; validation&lt;/li&gt;
&lt;li&gt;Low-code Cloud Functions (JS/TS) right from the browser&lt;/li&gt;
&lt;li&gt;Built-in auth roles and row-level security&lt;/li&gt;
&lt;li&gt;Import/export CSV, trigger workflows, and cron jobs&lt;/li&gt;
&lt;li&gt;Deploys to your Firebase project in minutes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firestore-only (for now) limits multi-DB setups&lt;/li&gt;
&lt;li&gt;Less active lately; fewer new integrations&lt;/li&gt;
&lt;li&gt;Large datasets may hit Firestore query limits&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;6.7k&lt;/td&gt;
    &lt;td&gt;531&lt;/td&gt;
    &lt;td&gt;760&lt;/td&gt;
    &lt;td&gt;13&lt;/td&gt;
    &lt;td&gt;40&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/rowyio/rowy" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; | License - GPL-3.0&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Open blocks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openblock.com/" rel="noopener noreferrer"&gt;Openblocks&lt;/a&gt; bills itself as an open-source Retool alternative— a modern drag-and-drop builder for dashboards and admin tools with a growing JS-based extension SDK.&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%2Fg7t3kgy0pb0miilxku0w.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%2Fg7t3kgy0pb0miilxku0w.png" alt="open blocks" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;50+ ready UI components; custom React blocks supported&lt;/li&gt;
&lt;li&gt;Native connectors: Postgres, MongoDB, Redis, REST, SMTP, etc.&lt;/li&gt;
&lt;li&gt;JS everywhere for data transforms and actions&lt;/li&gt;
&lt;li&gt;Role-based access, audit logs, and deployment history&lt;/li&gt;
&lt;li&gt;Embed pages as React components (avoids iframes)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smaller community than Appsmith/ToolJet—fewer templates&lt;/li&gt;
&lt;li&gt;Docs &amp;amp; road-map are still catching up with feature pace&lt;/li&gt;
&lt;li&gt;Occasional breaking changes between minor releases&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;GitHub Stars&lt;/th&gt;
    &lt;th&gt;GitHub Forks&lt;/th&gt;
    &lt;th&gt;GitHub Issues&lt;/th&gt;
    &lt;th&gt;Pull Requests&lt;/th&gt;
    &lt;th&gt;Contributors&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;6k&lt;/td&gt;
    &lt;td&gt;381&lt;/td&gt;
    &lt;td&gt;121&lt;/td&gt;
    &lt;td&gt;9&lt;/td&gt;
    &lt;td&gt;18&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/openblocks-dev/openblocks" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; | License - AGPL-3.0&lt;/p&gt;

&lt;h2&gt;
  
  
  11. DronaHQ
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.dronahq.com/" rel="noopener noreferrer"&gt;DronaHQ&lt;/a&gt; is a low-code platform purpose-built for internal tools, dashboards, and workflow apps. It combines a visual drag-and-drop builder with Veda AI, an AI assistant that can scaffold UI screens, generate SQL/JS logic, and create complex workflows. With over 150 pre-built UI components and multiple pre-built templates, DronaHQ enables teams to ship production-grade business apps in days, not weeks.&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%2Fshnkdako9rn0lbx0ejld.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%2Fshnkdako9rn0lbx0ejld.png" alt="DHQ" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.dronahq.com/veda-ai/" rel="noopener noreferrer"&gt;Veda AI&lt;/a&gt; for instant UI generation from images, natural-language queries, and smart logic suggestions&lt;/li&gt;
&lt;li&gt;Action Flows: point-and-click logic builder with conditions, loops, JavaScript blocks, and error handling&lt;/li&gt;
&lt;li&gt;50 + built-in connectors including REST APIs (MySQL, MongoDB, Postgres, REST/GraphQL, Google Sheets, etc.)&lt;/li&gt;
&lt;li&gt;Visual drag-and-drop UI builder with 150 + responsive components (tables, charts, forms, Kanban, maps, etc.)&lt;/li&gt;
&lt;li&gt;Scheduler &amp;amp; Automation for cron-style triggers, SLA reminders, and background jobs&lt;/li&gt;
&lt;li&gt;Role-based access &amp;amp; environments (dev/staging/prod) with audit logs&lt;/li&gt;
&lt;li&gt;One-click deployment to the cloud or self-host in your own VPC for full data control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ugwjkvyfcmm6nxabukb.webp" 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%2F3ugwjkvyfcmm6nxabukb.webp" alt="vedaAI" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI features are still maturing, and effective results often depend on proper prompt crafting.&lt;/li&gt;
&lt;li&gt;Advanced custom control requires JavaScript knowledge.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/dronahq" rel="noopener noreferrer"&gt;Github Link &lt;/a&gt;| &lt;a href="https://docs.dronahq.com/getting-started/introduction/" rel="noopener noreferrer"&gt;Documentation &lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Whether you’re a solo founder, a backend developer, or part of an enterprise team, these 11 open-source repositories provide powerful foundations to build modern internal tools. From low-code automation in n8n to code-first precision in Refine, or fully visual builders like DronaHQ and Appsmith, each tool shines in different contexts.&lt;/p&gt;

&lt;p&gt;The key is to match the platform with your team’s workflow, technical comfort, and long-term scalability. &lt;br&gt;
Did we miss any repositories that you use for internal tools? Drop them in the comments below, we’d love to discover more!&lt;/p&gt;

</description>
      <category>lowcode</category>
      <category>development</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>React Version Upgrade</title>
      <dc:creator>Sarthak Chhabra</dc:creator>
      <pubDate>Wed, 18 Jun 2025 08:55:38 +0000</pubDate>
      <link>https://dev.to/sarthak_chhabra_123/react-version-upgrade-4h7h</link>
      <guid>https://dev.to/sarthak_chhabra_123/react-version-upgrade-4h7h</guid>
      <description>&lt;p&gt;&lt;a href="https://react.dev/" rel="noopener noreferrer"&gt;React&lt;/a&gt; is one of the most popular tools available for building user interfaces. From small personal projects to major enterprise programs, it’s utilised because of its reusable components and robust community support.&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%2F61kw9k30769l3a45ojnt.jpg" 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%2F61kw9k30769l3a45ojnt.jpg" alt="Facts" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With each new release, React continues to evolve to stay modern and efficient. These modifications are meant to make programs easier to develop and maintain, as well as speedier.&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%2Fb2rn5hchisayr6uzg1f0.jpg" 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%2Fb2rn5hchisayr6uzg1f0.jpg" alt="Timeline" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this Article, we’ll break down some key points about React 18, which include what’s new in React 18?, how it’s different from version 17?, why upgrading is worth it?, how you can upgrade?, and the problems that can be faced while upgrading.&lt;/p&gt;
&lt;h2&gt;
  
  
  Need for Upgrade
&lt;/h2&gt;

&lt;p&gt;You may ask yourself, "Why bother upgrading?" if your project functions properly with React 17. Here's why React 18 is worthwhile, though:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Offers Better Performance&lt;/strong&gt;&lt;br&gt;
When UI updates are ready, React 18 can display them after preparing them in the background. Your app feels quicker and more responsive as a result.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Provides a Smoother Experience&lt;/strong&gt;&lt;br&gt;
Multiple re-renders occurred in React 17 as a result of adjustments made outside event handlers (such as inside setTimeout). React 18 boosts efficiency by batching them into a single update.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smarter State Management&lt;/strong&gt;&lt;br&gt;
UseTransition and useDeferredValue are two hooks that make it easier to control loading and slow renderings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Future-Ready&lt;/strong&gt;&lt;br&gt;
Future technologies such as React Server Components are built on top of React 18. By staying current today, you can avoid headaches later.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  React 18 features compared to React version 17
&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%2Fg1m5aygj8hikqrf9bkwq.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%2Fg1m5aygj8hikqrf9bkwq.png" alt="Comparision Table" width="800" height="482"&gt;&lt;/a&gt;&lt;br&gt;
Some of the major upgrades include &lt;strong&gt;concurrent rendering&lt;/strong&gt;, a powerful enhancement that allows React to prepare multiple versions of the UI at the same time without blocking the main thread. This can be accessed by developers through the new startTransition API, which designates updates as non-urgent. For instance, it can wrap state updates for search results to maintain typing responsiveness even when processing intensive data.&lt;/p&gt;

&lt;p&gt;Another major addition is &lt;strong&gt;automatic batching&lt;/strong&gt;, which groups multiple state updates—even across asynchronous events—into a single render. React 18 also introduced new hooks like useTransition, which gives developers control over pending UI states (e.g., showing a loading spinner), and useId, which solves issues with generating consistent IDs between server and client renders. All of these are supported out of the box when using ReactDOM.createRoot instead of the older ReactDOM.render, unlocking these improvements with minimal changes.&lt;/p&gt;
&lt;h2&gt;
  
  
  Things to remember while upgrading
&lt;/h2&gt;

&lt;p&gt;Upgrading from React 17 to 18 is simple and involves just two steps, but the major challenge lies with the peer dependencies &amp;amp; version error occurs. Before migrating your app to React 18 check these steps&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%2Frroamlb3an28g91nr726.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%2Frroamlb3an28g91nr726.png" alt="Reddit Comments" width="800" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 - Check Compatibility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verify that your current dependencies are prepared for React 18 before upgrading.&lt;/li&gt;
&lt;li&gt;To look for out-of-date packages, run “yarn outdated or npm outdated”.&lt;/li&gt;
&lt;li&gt;To verify React 18 support, check the official documentation for each library.&lt;/li&gt;
&lt;li&gt;Update any incompatible packages or look for safer substitutes.
&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%2F82wvpvuduyq15t477qe5.png" alt="Prefered updates" width="800" height="274"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 2 - Review and Refine Your code&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In React 18, several outdated React patterns won't function properly ( example. - &lt;a href="mailto:react-spring@9.4.3"&gt;react-spring@9.4.3&lt;/a&gt; was not compatible with React 18, so I had to remove it ). &lt;/li&gt;
&lt;li&gt;Look out for deprecated lifecycle methods like componentWillMount, componentWillReceiveProps, and componentWillUpdate. These have functional alternatives now.&lt;/li&gt;
&lt;li&gt;Refactor to make advantage of functional components and hooks, which are React 18-friendly patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 3 - Test Wisely and Carefully&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Establish a robust testing environment to identify problems early.&lt;/li&gt;
&lt;li&gt;Make use of end-to-end, integration, and unit tests.To ensure nothing breaks, run tests prior to, during, and following the upgrade.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Step-by-Step Migration Roadmap
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1 – Update Dependencies&lt;/strong&gt; &lt;br&gt;
Run in your project root:&lt;br&gt;
&lt;code&gt;npm install react@18 react-dom@18&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 – Replace ReactDOM.render&lt;/strong&gt; &lt;br&gt;
Find where ReactDOM.render is called (usually index.js).&lt;br&gt;
Migrate to reateRoot&lt;br&gt;
Before (React 17)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import ReactDOM from ‘react-dom';
import App from './App';
ReactDOM.render(&amp;lt;App /&amp;gt;, document.getElementById('root'));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After (React 18)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { createRoot } from ‘react-dom/client';
import App from './App';
const root = createRoot(document.getElementById('root'));
root.render(&amp;lt;App /&amp;gt;);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3 – Run Codemons&lt;/strong&gt;(optional)&lt;br&gt;
This step fixes the deprecated APIs automatically&lt;br&gt;
Terminal output – &lt;br&gt;
&lt;code&gt;npx react-codemod rename-unsafe-lifecycles&lt;br&gt;
npx react-codemod update-react-imports&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Handle Breaking Changes&lt;/strong&gt;&lt;br&gt;
Check for legacy lifecycles methods and replace them&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;componentWillMount → useEffect&lt;/li&gt;
&lt;li&gt;componentWillReceiveProps → getDerivedStateFromProps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Testing automatic batching by wrapping async state updates if needed&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { flushSync } from 'react-dom';
flushSync(() =&amp;gt; {
  setState(newValue); // Forces immediate update
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 5: Verify &amp;amp; Test&lt;/strong&gt;&lt;br&gt;
Run tests on your Terminal&lt;br&gt;
&lt;code&gt;npm test&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Do Manual Checks&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Concurrent Mode: Test UI responsiveness (e.g., type in a search bar).&lt;/li&gt;
&lt;li&gt;SSR: Verify hydration errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Optimize for React 18&lt;/strong&gt;&lt;br&gt;
Example: useTransition for slow renders&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useTransition } from ‘react’;
function Search() {
  const [isPending, startTransition] = useTransition();
  const handleSearch = (query) =&amp;gt; {
    startTransition(() =&amp;gt; {
      setResults(fetchResults(query)); // Non-urgent update
    });
  }
  return (
    &amp;lt;&amp;gt;
      {isPending &amp;amp;&amp;amp; &amp;lt;Spinner /&amp;gt;}
      &amp;lt;input onChange={(e) =&amp;gt; handleSearch(e.target.value)} /&amp;gt;
    &amp;lt;/&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 7: Troubleshooting Tips&lt;/strong&gt;&lt;br&gt;
Issue – useEffect runs twice in development&lt;br&gt;
Solution –&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Option 1: Make effect idempotent (safe to run multiple times)
// Option 2: Use for layout effects

import { useLayoutEffect } from 'react';
useLayoutEffect(() =&amp;gt; { /* code */ }, []);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Issue – Third-party libraries break (e.g., react-spring)&lt;br&gt;
Solution – &lt;br&gt;
&lt;code&gt;npm install react-spring@latest # Check for React 18 compatible versions&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reddit’s Comments
&lt;/h2&gt;

&lt;p&gt;"React 18 has made useEffect fetching slightly worse… I had to switch to useLayoutEffect in places just to get the same experience."&lt;/p&gt;

&lt;p&gt;"I love how React 18 makes apps feel smoother. useTransition is a game changer when dealing with slow data loads."&lt;/p&gt;

&lt;p&gt;"Streaming SSR is 🔥. My site loads much faster now."&lt;br&gt;
In short, the feedback is mixed: developers love the performance benefits but are cautious about ecosystem changes and subtle behavior shifts.&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%2Fq81thxbb2yba23n5xby2.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%2Fq81thxbb2yba23n5xby2.png" alt="Reddit Comments" width="800" height="234"&gt;&lt;/a&gt;&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%2Futsc8qid6au3ms7haebg.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%2Futsc8qid6au3ms7haebg.png" alt="Reddit Comments" width="800" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About React 19
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://react.dev/versions" rel="noopener noreferrer"&gt;React 19&lt;/a&gt; is out, thankfully, it has been released with few breaking changes. Most of the core experience remains the same.&lt;/p&gt;

&lt;p&gt;However, many libraries haven’t fully caught up yet. If you upgrade and something breaks, you might need to either: Downgrade temporarily&lt;br&gt;
Or wait for library updates&lt;/p&gt;

&lt;p&gt;New capabilities like Server Components and the React Compiler are exciting but haven’t been widely tested yet. Keep them out of long-term production apps for the time being.&lt;/p&gt;

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

&lt;p&gt;More than just an update, React 18 represents a significant advancement towards a more rapid and adaptable React. It is worthwhile to upgrade your software if you are working on a new project or want to make sure it is future-proof.&lt;/p&gt;

&lt;p&gt;Although there may be some hiccups along the way, the improvements in performance, the improved user experience, and the preparedness for upcoming advancements make the shift valuable.&lt;/p&gt;

&lt;p&gt;If you’re spending too much time wiring up UI and state logic from scratch, &lt;a href="https://www.dronahq.com/" rel="noopener noreferrer"&gt;DronaHQ&lt;/a&gt; gives you a faster way forward. With pre-built components, a visual builder, and AI to help scaffold React-style UIs instantly, you can skip the boilerplate and focus on delivering features. You’ll be shipping internal tools in hours, not weeks... Try it free or explore the &lt;a href="https://www.dronahq.com/ui-component-library/" rel="noopener noreferrer"&gt;component library&lt;/a&gt; to see what’s possible.&lt;/p&gt;

&lt;p&gt;Be a part of the React 18 wave by starting small and properly testing!&lt;br&gt;
Should I write about React version 19?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References -&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://react.dev/versions#react-18" rel="noopener noreferrer"&gt;https://react.dev/versions#react-18&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/reactjs/how-to-upgrade-to-react-18/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/reactjs/how-to-upgrade-to-react-18/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.reddit.com/r/reactjs/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/reactjs/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://react.dev/blog/2022/03/29/react-v18" rel="noopener noreferrer"&gt;https://react.dev/blog/2022/03/29/react-v18&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>developers</category>
    </item>
    <item>
      <title>DronaHQ Design System: A New UI Toolkit for Scalable Internal Tools</title>
      <dc:creator>Sarthak Chhabra</dc:creator>
      <pubDate>Tue, 13 May 2025 12:56:09 +0000</pubDate>
      <link>https://dev.to/sarthak_chhabra_123/dronahq-design-system-a-new-ui-toolkit-for-scalable-internal-tools-2o53</link>
      <guid>https://dev.to/sarthak_chhabra_123/dronahq-design-system-a-new-ui-toolkit-for-scalable-internal-tools-2o53</guid>
      <description>&lt;p&gt;Are you building internal tools or admin panels that need a cohesive, scalable design? The &lt;strong&gt;DronaHQ Design System&lt;/strong&gt; is now available on Figma, and it’s ready to help you accelerate your development process. Whether you’re in charge of an internal product or trying to streamline low-code app creation, this design system has got you covered.&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%2Fgutd17c9h1vdl9uqup8v.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%2Fgutd17c9h1vdl9uqup8v.png" alt="FIGMA + DronaHQ AI = Magic" width="800" height="448"&gt;&lt;/a&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%2Fu2yhs0qglc37l292yjix.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%2Fu2yhs0qglc37l292yjix.png" alt="Multiple Icons" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Key features include:&lt;br&gt;
• &lt;strong&gt;Customizable UI Components&lt;/strong&gt;: Everything from tables to modals, cards, and more.&lt;br&gt;
• &lt;strong&gt;Scalability&lt;/strong&gt;: Designed to grow with your project as the team expands.&lt;br&gt;
• &lt;strong&gt;Speed&lt;/strong&gt;: Get your internal tools off the ground in no time, without worrying about the frontend.&lt;/p&gt;

&lt;p&gt;Check out the full system here: DronaHQ Design System on Figma. Fork it and start building today! 💻&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ToolJet - AI Integrated Low-Code Platform</title>
      <dc:creator>Sarthak Chhabra</dc:creator>
      <pubDate>Tue, 22 Apr 2025 14:57:29 +0000</pubDate>
      <link>https://dev.to/sarthak_chhabra_123/tooljet-ai-integrated-low-code-platform-2jo1</link>
      <guid>https://dev.to/sarthak_chhabra_123/tooljet-ai-integrated-low-code-platform-2jo1</guid>
      <description>&lt;p&gt;Recently, I got a chance to explore &lt;strong&gt;ToolJet.AI&lt;/strong&gt;, an open-source low-code platform made for building and deploying custom internal tools. What makes it different is its built-in AI capabilities. Instead of dragging and dropping every element manually like in typical low-code platforms, here you just give it a prompt — a few words — and ToolJet starts creating the app structure for you. It uses AI to generate the UI and suggest layouts, which really speeds up the building process. What impressed me the most was how clean and usable the auto-generated screens were. It even picked a good color palette and gave me a working dark mode layout without me even asking for it.&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%2Fgtdnygonnmsafjf0q500.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%2Fgtdnygonnmsafjf0q500.png" alt="Home Page" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For my first try, I built a simple &lt;strong&gt;Stock Management Application&lt;/strong&gt; that sends alerts when inventory gets low. ToolJet AI generated not just the UI but also created backend queries that I could directly edit and link with my database. I did all this using their free plan, and honestly, for anyone looking to build quick MVPs or internal apps, it’s more than enough. The &lt;strong&gt;free plan&lt;/strong&gt; includes two builders, fifty end users, two apps, thirty AI credits per month, and community support via Slack. As you grow, you have the option to upgrade, but for small projects and testing ideas, the free tier is very practical.&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%2F6jcgjvjiwkfgr2h1mt8y.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%2F6jcgjvjiwkfgr2h1mt8y.png" alt="Prompt" width="800" height="481"&gt;&lt;/a&gt;&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%2Fa1vxizkntow1gl2rvegl.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%2Fa1vxizkntow1gl2rvegl.png" alt="App Sumary" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are some things I liked while working with ToolJet:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AI-driven app building through simple prompts&lt;/li&gt;
&lt;li&gt;Drag-and-drop interface that feels quick and intuitive&lt;/li&gt;
&lt;li&gt;Backend queries that are editable without leaving the builder&lt;/li&gt;
&lt;li&gt;Auto-generated dark mode for the app UI&lt;/li&gt;
&lt;li&gt;Easy database and API integrations&lt;/li&gt;
&lt;li&gt;Open-source platform, so you can tweak the code if needed&lt;/li&gt;
&lt;li&gt;A very usable free plan to start building right away&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%2Frmh9b35onr3x4rulso13.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%2Frmh9b35onr3x4rulso13.png" alt="Dark Mode" width="800" height="481"&gt;&lt;/a&gt;&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%2F6qmfxatvim348u16i9mw.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%2F6qmfxatvim348u16i9mw.png" alt="Light Mode Final View" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Of course, like any tool, it’s not perfect. ToolJet is still growing in popularity, and while the community is positive, it’s smaller compared to more established platforms. A few users (and even I) noticed that after major updates, minor bugs sometimes pop up, and the app can get a little heavy on the browser if you keep building non-stop for long hours. Another thing I felt missing was a built-in scheduler to automate repetitive tasks like sending stock alerts. If there’s a way to do it and I missed it, I’d love to know — otherwise, it would be a great feature to have in future updates.&lt;/p&gt;

&lt;p&gt;There are also a &lt;strong&gt;few things to keep in mind when using ToolJet&lt;/strong&gt;. While it’s low-code, you’ll still need some basic tech understanding to make the most out of it, especially when dealing with custom integrations or database connections. If you’re planning to self-host ToolJet, managing the server setup and security requires solid knowledge too. Making deep customisations beyond the standard components usually needs developer-level skills. On G2, ToolJet holds a 4.8-star rating, although it’s based on fewer reviews compared to bigger players. Still, most users highlight how fast and simple the development process feels, which matches my experience too.&lt;/p&gt;

&lt;p&gt;Overall, I really liked working with ToolJet.AI. It feels like a powerful tool for developers and teams who want a flexible, cost-effective, open-source platform but also want to move fast with some AI help. If you’re into building internal tools, dashboards, or admin panels, and you like tweaking things when needed, ToolJet is definitely worth checking out.&lt;/p&gt;

</description>
      <category>developer</category>
      <category>lowcode</category>
      <category>ai</category>
    </item>
    <item>
      <title>Cursor AI: The Future of Coding or Just Another Hype</title>
      <dc:creator>Sarthak Chhabra</dc:creator>
      <pubDate>Mon, 31 Mar 2025 04:08:20 +0000</pubDate>
      <link>https://dev.to/sarthak_chhabra_123/cursor-5432</link>
      <guid>https://dev.to/sarthak_chhabra_123/cursor-5432</guid>
      <description>&lt;p&gt;As a developer, I am always curious to try new tools that helps to boost productivity of our tasks, in my last posts where I talked about creating the CRUD app from scratch and also using the AG grid for the first time, I was curious that in today's world isn't there any tools or technology through which we can directly use AI to help in coding, and then I got to know about CURSOR.AI.&lt;/p&gt;

&lt;p&gt;Cursor.AI is an AI-powered code editor designed to enhance developer productivity. Here are some features described about the cursor - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Inline Suggestions &amp;amp; Chat Assistance&lt;/strong&gt; – Provides AI-driven code completions, real-time suggestions, and chat-based help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-Based Code Reviews&lt;/strong&gt; – Analyzes and reviews code for improvements, helping optimise development workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow Understanding&lt;/strong&gt; – Understands the project structure and provides context-aware assistance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Language Support&lt;/strong&gt; – Works with various programming languages, allowing seamless interaction with AI via commands and prompts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All this sounds quite interesting and even helpful so I decided to give it a go, implementing cursor was very simple - install it for your OS and it will directly install the extension for VS code and connect with it, which makes it very efficient to use. It provides a chat option on the right-hand side of your screen and the same familiar VS code screen with all your existing files on the left-hand side.&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%2Flgr0r6tdkmezwurgri36.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%2Flgr0r6tdkmezwurgri36.png" alt="Cursor.ai View" width="800" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My goal was simple, I was creating a given block of code, functional and responsive. Basically, I need to apply JavaScript for validation, error-success message, field refresh timeout and mobile responsiveness. While applying JS cursor worked very well creating functions efficiently but when it comes to CSS designing for responsiveness, it was not as per my expectations.&lt;br&gt;
Issues That I face while using Cursor:-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Too many unnecessary changes&lt;/strong&gt; – One big issue I faced was that the Cursor overwrites too much when given a prompt. It doesn’t always limit itself to the specific section of code I want to modify.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Requires multiple prompt attempts&lt;/strong&gt; – It took several iterations to get the mobile responsiveness right, which sometimes felt like it was slowing me down instead of saving time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not ideal for large-scale projects&lt;/strong&gt; – While it worked decently for small tweaks when I tried using it in a more complex project with multiple dependencies, it struggled to understand the overall code structure and context.&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%2Frgj8zci3lbsk9rmcvkek.jpg" 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%2Frgj8zci3lbsk9rmcvkek.jpg" alt="JS function example" width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the above screenshot, you can see how easily it gave a JS function as per my requirement for validating the email and showing messages for valid and invalid email input but this was not the case while applying CSS. It took so many prompts to make a responsive media query for the mobile view as per my requirements that after a point I realised I could have done it on my own  with less effort and less time&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%2Ftjik8ml3q7zi3zsy3lhf.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%2Ftjik8ml3q7zi3zsy3lhf.png" alt="Applied JS code ss" width="800" height="152"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CONS -&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Not beginner-friendly&lt;/strong&gt; – If you don’t know how to code, you can’t just ask Cursor to build an entire app. It’s more of a coding assistant than a full-fledged AI developer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paid &amp;amp; expensive&lt;/strong&gt; – Unlike other AI tools (some of which are open-source), Cursor comes with a subscription model that isn’t cheap. If you’re on a budget, there are alternatives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lacks full control&lt;/strong&gt; – AI-generated code needs human intervention, especially in complex projects. Accepting AI-generated changes blindly can lead to hidden bugs.
&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%2F4awf4t8k0eodblfxkuwh.jpg" alt="faced issue ss" width="800" height="743"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;PROS -&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Great for quick fixes &amp;amp; small projects&lt;/strong&gt; – If you need AI assistance for a single-file code generation or want to quickly generate boilerplate code, Cursor is useful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Precise prompts = better output&lt;/strong&gt; – The more detailed your input, the better the AI’s response. A vague prompt leads to unpredictable results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code explanations &amp;amp; suggestions&lt;/strong&gt; – If you understand coding basics, Cursor can help improve your workflow by explaining code and suggesting optimizations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Overview -&lt;/strong&gt;&lt;br&gt;
Cursor AI is a great tool for specific use cases, but it’s not a replacement for real development skills. If you’re a developer with good coding knowledge, you can use Cursor to speed up repetitive tasks. However, for large-scale, real-world projects, its limitations start showing up quickly. &lt;/p&gt;

&lt;p&gt;Would I recommend it? For quick POCs and single-file edits—yes. But if you’re expecting an AI to handle a complex project from start to finish, Cursor is not there yet. This was what I thought about Cursor after using it for some days, maybe at some points I am lacking, so feel free to comment.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>developers</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>My 1st Experience with AG Grid</title>
      <dc:creator>Sarthak Chhabra</dc:creator>
      <pubDate>Wed, 12 Mar 2025 04:04:19 +0000</pubDate>
      <link>https://dev.to/sarthak_chhabra_123/my-1st-experience-with-ag-grid-1df8</link>
      <guid>https://dev.to/sarthak_chhabra_123/my-1st-experience-with-ag-grid-1df8</guid>
      <description>&lt;p&gt;I recently shared my first experience with creating a &lt;strong&gt;CRUD&lt;/strong&gt; application from scratch. I used a CSS grid to design a visually appealing card-based view that showcased the data. &lt;br&gt;
(you can see it here: &lt;a href="https://dev.to/sarthak_chhabra_123/building-my-first-crud-app-for-marvel-database-from-scratch-4hn9"&gt;https://dev.to/sarthak_chhabra_123/building-my-first-crud-app-for-marvel-database-from-scratch-4hn9&lt;/a&gt;) &lt;/p&gt;

&lt;p&gt;While working more on that project I faced a challenge in implementing search and filter features, so I came up with a solution to create a &lt;strong&gt;tabular view&lt;/strong&gt; for easier navigation, filtering, and organising data&lt;br&gt;
While it seems there are a ton of tools to choose from , AG Grid kept coming up everywhere, so I decided to give it a shot.&lt;br&gt;
My main goal was to convert a &lt;strong&gt;JSON file&lt;/strong&gt; containing data into a tabular format with search, filter, and sorting options—all while keeping the setup as simple and efficient as possible.&lt;br&gt;
Setting Up AG Grid with Sample Data to understand its working :&lt;br&gt;
&lt;strong&gt;Here’s how I got AG Grid up and running:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Created a &lt;strong&gt;Grid.js&lt;/strong&gt; file for a modular setup.&lt;/li&gt;
&lt;li&gt;Defined &lt;strong&gt;columnDefs&lt;/strong&gt; with properties such as field, &lt;strong&gt;headerName&lt;/strong&gt;, width, and editable.&lt;/li&gt;
&lt;li&gt;Managed API responses using &lt;strong&gt;useState()&lt;/strong&gt; and &lt;strong&gt;useEffect()&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Used &lt;strong&gt;onGridReady()&lt;/strong&gt; to store references to the grid and column API for future use.&lt;/li&gt;
&lt;li&gt;Mounted the App component in &lt;strong&gt;index.tsx&lt;/strong&gt; using &lt;strong&gt;ReactDOM.render()&lt;/strong&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%2Fjqqb20ldammf3r62o4mn.png" alt="Index.tsx file" width="800" height="306"&gt;
(you can see it here: Git Hub link)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What I achieved:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Successfully converted JSON data into a functional table with AG Grid.&lt;/li&gt;
&lt;li&gt;Optimized data display view into a tabular format.&lt;/li&gt;
&lt;li&gt;Improved data organization and accessibility for better user interaction.&lt;/li&gt;
&lt;li&gt;Gained hands-on experience with AG Grid’s API and customization options.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Features I Loved:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Custom cell rendering&lt;/strong&gt; – allowed me to use my components inside cells.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Column &amp;amp; row visualization&lt;/strong&gt; – made structuring large datasets easier.&lt;/li&gt;
&lt;li&gt;vPre-applied themes &amp;amp; styling** – looked good and easy to understand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-framework support&lt;/strong&gt; – works with React, Angular, and Vanilla JavaScript.
&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%2F5pmmvcfild4itini9ti2.png" alt="Table view" width="800" height="525"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Roadblocks I Hit:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Some features are locked behind a paid license on the enterprise version.&lt;/li&gt;
&lt;li&gt;The documentation was tough to understand at times.&lt;/li&gt;
&lt;li&gt;It will take time to grasp and use it effectively in projects fully.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While troubleshooting these issues, I realised I wasn’t alone. I found &lt;strong&gt;Reddit&lt;/strong&gt; discussions (screenshots attached) where many developers shared similar struggles with AG Grid.&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%2F197cb4qhnnhnsegdaaz7.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%2F197cb4qhnnhnsegdaaz7.png" alt="Image comnt 1" width="800" height="201"&gt;&lt;/a&gt;&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%2Fd213rt44cqusiu98ywev.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%2Fd213rt44cqusiu98ywev.png" alt="Image comnt 2" width="800" height="252"&gt;&lt;/a&gt;&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%2Foz8bvnex7wiv71ulqxse.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%2Foz8bvnex7wiv71ulqxse.png" alt="Image comnt 3" width="800" height="99"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d love to hear your thoughts! Since this is my first project using &lt;strong&gt;AG Grid&lt;/strong&gt;, I might have missed something or taken a longer route. Do you have any better solutions or AI-powered approaches Let’s discuss! &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Building my First CRUD app for Marvel Database from Scratch</title>
      <dc:creator>Sarthak Chhabra</dc:creator>
      <pubDate>Thu, 27 Feb 2025 10:41:40 +0000</pubDate>
      <link>https://dev.to/sarthak_chhabra_123/building-my-first-crud-app-for-marvel-database-from-scratch-4hn9</link>
      <guid>https://dev.to/sarthak_chhabra_123/building-my-first-crud-app-for-marvel-database-from-scratch-4hn9</guid>
      <description>&lt;p&gt;Recently, I decided to build my first &lt;strong&gt;CRUD&lt;/strong&gt; application just for the experience of creating something from scratch, so I decided to create a &lt;strong&gt;Marvel Heroes&lt;/strong&gt; related application for fun. My goal wasn't grand; I simply wanted to explore how everything fits together practically and also I didn't want to follow the same path by creating an e-commerce website , or blog website like everyone else.&lt;/p&gt;

&lt;p&gt;So, the idea was simple - an app where I could display a bunch of superheroes in a card format with an image and some details about them . And it needed to have full CRUD functionalities so that users could view the card in full-screen, edit it, delete it, and even add a new superhero. &lt;/p&gt;

&lt;p&gt;It sounds pretty simple right , but as I got deeper into it, I realised there’s so much that goes into making even a simple CRUD app work smoothly. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MySQL database of the Heros&lt;/strong&gt;&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%2F7mv7wjxk71b6l2v137a4.jpg" 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%2F7mv7wjxk71b6l2v137a4.jpg" alt="MySQL database of the Heros" width="800" height="155"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I built the app using Technologies - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HTML&lt;/strong&gt; &lt;strong&gt;CSS&lt;/strong&gt; and &lt;strong&gt;Javascript&lt;/strong&gt; for the front end in which HTML was used inside EJS files(NPM package)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NodeJs&lt;/strong&gt; &amp;amp; &lt;strong&gt;ExpressJs&lt;/strong&gt; for backend handling and routing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EJS&lt;/strong&gt;, it is a simple templating language that lets you generate HTML markup with plain JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MySQL&lt;/strong&gt; as the database to store superhero data.&lt;/li&gt;
&lt;li&gt;And along with all these there were some more npm packages that I used such as &lt;strong&gt;method-override&lt;/strong&gt; , &lt;strong&gt;nodemon&lt;/strong&gt; , &lt;strong&gt;uuidv4&lt;/strong&gt; and more for making tasks easy.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So after spending so much time I finally built an application which fetches the data from the mySQL database of the marvel heroes whose details are stored in Database and we can perform all CRUD operations on that .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some screenshots of Website -&amp;gt;&lt;/strong&gt;&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%2Fgmdyj5wbqc2ldpstpbx5.jpg" 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%2Fgmdyj5wbqc2ldpstpbx5.jpg" alt="Home Page of the Website" width="800" height="478"&gt;&lt;/a&gt;&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%2Ffpz9wdkft9uzxp1zv6ct.jpg" 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%2Ffpz9wdkft9uzxp1zv6ct.jpg" alt="Add new card in MySQL form &amp;amp; single card view" width="800" height="478"&gt;&lt;/a&gt;&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%2F6rko09zu12lr7ryqvjej.jpg" 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%2F6rko09zu12lr7ryqvjej.jpg" alt="Preview of a single data" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Building this app significantly enhanced my understanding of how &lt;strong&gt;frontend, backend, and databases interact&lt;/strong&gt; in &lt;strong&gt;real-world scenarios&lt;/strong&gt;. There's certainly room for further improvements, and one immediate enhancement I'm planning is to implement a &lt;strong&gt;table grid layout&lt;/strong&gt;. While the card layout looks great, adding a table format would make searching, filtering, and managing superhero data much easier.&lt;/p&gt;

&lt;p&gt;Since this was my first proper &lt;strong&gt;CRUD&lt;/strong&gt; app, I'd love to hear your thoughts and suggestions. I'm always eager to learn from the community—any recommendations for a &lt;strong&gt;table view / data grid&lt;/strong&gt; suitable for this use-case would be greatly appreciated!&lt;br&gt;
Thank you...&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>node</category>
      <category>fullstack</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
