<?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: NocoBase</title>
    <description>The latest articles on DEV Community by NocoBase (@nocobase).</description>
    <link>https://dev.to/nocobase</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%2F1349233%2Ffe1061e9-2897-4210-a0b2-a96c044ac3b2.jpg</url>
      <title>DEV Community: NocoBase</title>
      <link>https://dev.to/nocobase</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nocobase"/>
    <language>en</language>
    <item>
      <title>Weekly Updates Improve AI employees' ability to parse uploaded documents</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Thu, 23 Apr 2026 07:46:17 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updatesimprove-ai-employees-ability-to-parse-uploaded-documents-39li</link>
      <guid>https://dev.to/nocobase/weekly-updatesimprove-ai-employees-ability-to-parse-uploaded-documents-39li</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/weekly-updates-20260423" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/weekly-updates-20260423&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated with three branches: &lt;code&gt;main&lt;/code&gt; , &lt;code&gt;next&lt;/code&gt; and &lt;code&gt;develop&lt;/code&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%2F66qf0fuohv233at2nnzv.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%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;：The most stable version to date, recommended for installation;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;：Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It's mainly for test users to collect feedback and optimize functions further. Ideal for test users who want to experience new features early and give feedback;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;：Alpha version, contains the latest feature code, may be incomplete or unstable, mainly for internal dev and rapid iteration. Suited for tech users interested in product's cutting-edge, but with potential issues and incomplete functions. Not for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&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%2Fgjmnc6cb7az5ofw9t1ip.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%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.41" rel="noopener noreferrer"&gt;v2.0.41&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-22&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Auth: OIDC]&lt;/strong&gt; mapping attribute support custom fields by chenzhizdt&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[DingTalk]&lt;/strong&gt; DingTalk: notifications, in-DingTalk auto login, and user sync. by chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[ai]&lt;/strong&gt; AI employee and knowledge base now support additional file types for upload (.xlsx, .xls, .csv, .md, .json) (&lt;a href="https://github.com/nocobase/nocobase/pull/9172" rel="noopener noreferrer"&gt;#9172&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Add Arabic translation for guide section and navigation (&lt;a href="https://github.com/nocobase/nocobase/pull/9141" rel="noopener noreferrer"&gt;#9141&lt;/a&gt;) by saraTabbane&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fix for percentage fields being reset to numeric when resynchronizing external data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/9178" rel="noopener noreferrer"&gt;#9178&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the issue where default value will not take effect after creating record. (&lt;a href="https://github.com/nocobase/nocobase/pull/9185" rel="noopener noreferrer"&gt;#9185&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fix the issue where the Add tab button is too close to the right edge (&lt;a href="https://github.com/nocobase/nocobase/pull/9177" rel="noopener noreferrer"&gt;#9177&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Departments]&lt;/strong&gt; Fixed an issue where repeated department synchronization could not update department sort order (&lt;a href="https://github.com/nocobase/nocobase/pull/9173" rel="noopener noreferrer"&gt;#9173&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: Main]&lt;/strong&gt; Fixed field sync from database for connected views when the collection name differs from the database view name (&lt;a href="https://github.com/nocobase/nocobase/pull/9155" rel="noopener noreferrer"&gt;#9155&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fix security issue of script executing in &lt;code&gt;node:vm&lt;/code&gt; mode (&lt;a href="https://github.com/nocobase/nocobase/pull/9084" rel="noopener noreferrer"&gt;#9084&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Fix issue where vector database is not synced when deleting knowledge base documents. by cgyrock&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[WeCom]&lt;/strong&gt; Fixed missing department order when synchronizing departments from WeCom by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.40" rel="noopener noreferrer"&gt;v2.0.40&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-20&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fixed an issue where updating sub-table values through field assignment would result in data contamination. (&lt;a href="https://github.com/nocobase/nocobase/pull/9163" rel="noopener noreferrer"&gt;#9163&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed an issue where sequence fields could be changed to string after database synchronization (&lt;a href="https://github.com/nocobase/nocobase/pull/9143" rel="noopener noreferrer"&gt;#9143&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Return null when preview URL is missing (&lt;a href="https://github.com/nocobase/nocobase/pull/9104" rel="noopener noreferrer"&gt;#9104&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fix security issue of script executing in &lt;code&gt;node:vm&lt;/code&gt; mode (&lt;a href="https://github.com/nocobase/nocobase/pull/9084" rel="noopener noreferrer"&gt;#9084&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Departments]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed department lists in department management not following the &lt;code&gt;sort&lt;/code&gt; field order (&lt;a href="https://github.com/nocobase/nocobase/pull/9150" rel="noopener noreferrer"&gt;#9150&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;Fixed missing or stale main department values after saving user departments (&lt;a href="https://github.com/nocobase/nocobase/pull/9156" rel="noopener noreferrer"&gt;#9156&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.39" rel="noopener noreferrer"&gt;v2.0.39&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-18&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Departments]&lt;/strong&gt; Display the &lt;code&gt;parentId&lt;/code&gt; foreign key field of department collection in the UI (&lt;a href="https://github.com/nocobase/nocobase/pull/9130" rel="noopener noreferrer"&gt;#9130&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed file collection field sync removing &lt;code&gt;preview&lt;/code&gt; field (&lt;a href="https://github.com/nocobase/nocobase/pull/9129" rel="noopener noreferrer"&gt;#9129&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where the association field component was incorrect in the field value settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9063" rel="noopener noreferrer"&gt;#9063&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fix the oversized height and width of tabs in page configuration mode (&lt;a href="https://github.com/nocobase/nocobase/pull/9144" rel="noopener noreferrer"&gt;#9144&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt; Fixed SQL injection risks in recursive tree eager loading and scoped sort initialization (&lt;a href="https://github.com/nocobase/nocobase/pull/9133" rel="noopener noreferrer"&gt;#9133&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; Fixed chart block sorting to use aliased measures and dimensions in aggregated queries (&lt;a href="https://github.com/nocobase/nocobase/pull/9131" rel="noopener noreferrer"&gt;#9131&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection: SQL]&lt;/strong&gt; Fixed missing SQL validation on SQL collection updates (&lt;a href="https://github.com/nocobase/nocobase/pull/9134" rel="noopener noreferrer"&gt;#9134&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.38" rel="noopener noreferrer"&gt;v2.0.38&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-16&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Improve AI employees' ability to parse uploaded documents (&lt;a href="https://github.com/nocobase/nocobase/pull/9126" rel="noopener noreferrer"&gt;#9126&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[logger]&lt;/strong&gt; Add &lt;code&gt;referer&lt;/code&gt; information to request logs (&lt;a href="https://github.com/nocobase/nocobase/pull/9110" rel="noopener noreferrer"&gt;#9110&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Sync translated environment-variable and cluster-mode docs with the latest Chinese updates. (&lt;a href="https://github.com/nocobase/nocobase/pull/9115" rel="noopener noreferrer"&gt;#9115&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; After AI employee block selection, fill form attachment into upload area (&lt;a href="https://github.com/nocobase/nocobase/pull/9127" rel="noopener noreferrer"&gt;#9127&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Manual node]&lt;/strong&gt; Use &lt;code&gt;simplePagination&lt;/code&gt; on workflow tasks related collections for better list performance (&lt;a href="https://github.com/nocobase/nocobase/pull/9117" rel="noopener noreferrer"&gt;#9117&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Use &lt;code&gt;simplePagination&lt;/code&gt; on &lt;code&gt;approvals&lt;/code&gt; and &lt;code&gt;approvalRecords&lt;/code&gt; collection for better list performance by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the optional options of single-select fields in field rule configuration are empty (&lt;a href="https://github.com/nocobase/nocobase/pull/9119" rel="noopener noreferrer"&gt;#9119&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed incorrect default value settings for sub table in form. (&lt;a href="https://github.com/nocobase/nocobase/pull/9087" rel="noopener noreferrer"&gt;#9087&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fix the issue where receiver select component works not correctly (&lt;a href="https://github.com/nocobase/nocobase/pull/9123" rel="noopener noreferrer"&gt;#9123&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Fix the issue where the baseURL settings of google-gen-ai's LLM service does not take effect (&lt;a href="https://github.com/nocobase/nocobase/pull/9107" rel="noopener noreferrer"&gt;#9107&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt; Remove form closing prompt after email is sent successfully by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&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%2Fit0xys8cxci7kol0jjde.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%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-beta.14" rel="noopener noreferrer"&gt;v2.1.0-beta.14&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-20&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Calendar]&lt;/strong&gt; calendar block v2 (&lt;a href="https://github.com/nocobase/nocobase/pull/9092" rel="noopener noreferrer"&gt;#9092&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Improve AI employees' ability to parse uploaded documents (&lt;a href="https://github.com/nocobase/nocobase/pull/9126" rel="noopener noreferrer"&gt;#9126&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Block: Tree]&lt;/strong&gt; Add tree filter block (&lt;a href="https://github.com/nocobase/nocobase/pull/9016" rel="noopener noreferrer"&gt;#9016&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Email manager]&lt;/strong&gt; gmail supports sending emails with aliases by jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add Arabic translation for guide section and navigation (&lt;a href="https://github.com/nocobase/nocobase/pull/9141" rel="noopener noreferrer"&gt;#9141&lt;/a&gt;) by saraTabbane&lt;/li&gt;
&lt;li&gt;Sync translated environment-variable and cluster-mode docs with the latest Chinese updates. (&lt;a href="https://github.com/nocobase/nocobase/pull/9115" rel="noopener noreferrer"&gt;#9115&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Add Arabic translation for documentation homepage (&lt;a href="https://github.com/nocobase/nocobase/pull/9043" rel="noopener noreferrer"&gt;#9043&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;li&gt;Added TOC consistency across localized READMEs (&lt;a href="https://github.com/nocobase/nocobase/pull/9038" rel="noopener noreferrer"&gt;#9038&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;li&gt;Add Table of Contents to French README (&lt;a href="https://github.com/nocobase/nocobase/pull/9037" rel="noopener noreferrer"&gt;#9037&lt;/a&gt;) by saraTabbane&lt;/li&gt;
&lt;li&gt;Docs: add Arabic translation for get-started introduction pages (&lt;a href="https://github.com/nocobase/nocobase/pull/9044" rel="noopener noreferrer"&gt;#9044&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[logger]&lt;/strong&gt; Add &lt;code&gt;referer&lt;/code&gt; information to request logs (&lt;a href="https://github.com/nocobase/nocobase/pull/9110" rel="noopener noreferrer"&gt;#9110&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt; add form required verification switch (&lt;a href="https://github.com/nocobase/nocobase/pull/9060" rel="noopener noreferrer"&gt;#9060&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt; Optimize repository count queries by only enabling distinct when includes are present. (&lt;a href="https://github.com/nocobase/nocobase/pull/9094" rel="noopener noreferrer"&gt;#9094&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Departments]&lt;/strong&gt; Display the &lt;code&gt;parentId&lt;/code&gt; foreign key field of department collection in the UI (&lt;a href="https://github.com/nocobase/nocobase/pull/9130" rel="noopener noreferrer"&gt;#9130&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; After AI employee block selection, fill form attachment into upload area (&lt;a href="https://github.com/nocobase/nocobase/pull/9127" rel="noopener noreferrer"&gt;#9127&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Manual node]&lt;/strong&gt; Use &lt;code&gt;simplePagination&lt;/code&gt; on workflow tasks related collections for better list performance (&lt;a href="https://github.com/nocobase/nocobase/pull/9117" rel="noopener noreferrer"&gt;#9117&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Use &lt;code&gt;simplePagination&lt;/code&gt; on &lt;code&gt;approvals&lt;/code&gt; and &lt;code&gt;approvalRecords&lt;/code&gt; collection for better list performance by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where updating sub-table values through field assignment would result in data contamination. (&lt;a href="https://github.com/nocobase/nocobase/pull/9163" rel="noopener noreferrer"&gt;#9163&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fix the oversized height and width of tabs in page configuration mode (&lt;a href="https://github.com/nocobase/nocobase/pull/9144" rel="noopener noreferrer"&gt;#9144&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed an issue where the association field component was incorrect in the field value settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9063" rel="noopener noreferrer"&gt;#9063&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed the optional options of single-select fields in field rule configuration are empty (&lt;a href="https://github.com/nocobase/nocobase/pull/9119" rel="noopener noreferrer"&gt;#9119&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed incorrect default value settings for sub table in form. (&lt;a href="https://github.com/nocobase/nocobase/pull/9087" rel="noopener noreferrer"&gt;#9087&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;fix subtable adds many-to-many field error (&lt;a href="https://github.com/nocobase/nocobase/pull/9070" rel="noopener noreferrer"&gt;#9070&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed an issue where the record pickup popup from a sub-table’s selection button could not correctly resolve parent item variable values. (&lt;a href="https://github.com/nocobase/nocobase/pull/8996" rel="noopener noreferrer"&gt;#8996&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[data-source-manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where sequence fields could be changed to string after database synchronization (&lt;a href="https://github.com/nocobase/nocobase/pull/9143" rel="noopener noreferrer"&gt;#9143&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;Fixed file collection field sync removing &lt;code&gt;preview&lt;/code&gt; field (&lt;a href="https://github.com/nocobase/nocobase/pull/9129" rel="noopener noreferrer"&gt;#9129&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt; Fixed SQL injection risks in recursive tree eager loading and scoped sort initialization (&lt;a href="https://github.com/nocobase/nocobase/pull/9133" rel="noopener noreferrer"&gt;#9133&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt; Fix render error in custom resource block when resource does not exist (&lt;a href="https://github.com/nocobase/nocobase/pull/9095" rel="noopener noreferrer"&gt;#9095&lt;/a&gt;) by Molunerfinn&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[utils]&lt;/strong&gt; Add security control for server HTTP request sending, to avoid possible SSRF (&lt;a href="https://github.com/nocobase/nocobase/pull/9079" rel="noopener noreferrer"&gt;#9079&lt;/a&gt;) by mytharcher&lt;br&gt;&lt;br&gt;
Reference: &lt;a href="https://docs.nocobase.com/get-started/installation/env" rel="noopener noreferrer"&gt;Environment variables&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the problem that many-to-one fields from external data sources cannot be added in the table block (&lt;a href="https://github.com/nocobase/nocobase/pull/9068" rel="noopener noreferrer"&gt;#9068&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fix the random observer error when page visibility changes (&lt;a href="https://github.com/nocobase/nocobase/pull/9067" rel="noopener noreferrer"&gt;#9067&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: Main]&lt;/strong&gt; Fixed field sync from database for connected views when the collection name differs from the database view name (&lt;a href="https://github.com/nocobase/nocobase/pull/9155" rel="noopener noreferrer"&gt;#9155&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Return null when preview URL is missing (&lt;a href="https://github.com/nocobase/nocobase/pull/9104" rel="noopener noreferrer"&gt;#9104&lt;/a&gt;) by gaston98765&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[Departments]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed missing or stale main department values after saving user departments (&lt;a href="https://github.com/nocobase/nocobase/pull/9156" rel="noopener noreferrer"&gt;#9156&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;Fixed department lists in department management not following the &lt;code&gt;sort&lt;/code&gt; field order (&lt;a href="https://github.com/nocobase/nocobase/pull/9150" rel="noopener noreferrer"&gt;#9150&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fix security issue of script executing in &lt;code&gt;node:vm&lt;/code&gt; mode (&lt;a href="https://github.com/nocobase/nocobase/pull/9084" rel="noopener noreferrer"&gt;#9084&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection: SQL]&lt;/strong&gt; Fixed missing SQL validation on SQL collection updates (&lt;a href="https://github.com/nocobase/nocobase/pull/9134" rel="noopener noreferrer"&gt;#9134&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; Fixed chart block sorting to use aliased measures and dimensions in aggregated queries (&lt;a href="https://github.com/nocobase/nocobase/pull/9131" rel="noopener noreferrer"&gt;#9131&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fix the issue where receiver select component works not correctly (&lt;a href="https://github.com/nocobase/nocobase/pull/9123" rel="noopener noreferrer"&gt;#9123&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Fix the issue where the baseURL settings of google-gen-ai's LLM service does not take effect (&lt;a href="https://github.com/nocobase/nocobase/pull/9107" rel="noopener noreferrer"&gt;#9107&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification manager]&lt;/strong&gt; Optimize in-app notification sending performance in workflow scenarios (&lt;a href="https://github.com/nocobase/nocobase/pull/9066" rel="noopener noreferrer"&gt;#9066&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Access control]&lt;/strong&gt; Fixed an issue where clearing relation values with an empty array could fail under ACL (&lt;a href="https://github.com/nocobase/nocobase/pull/9059" rel="noopener noreferrer"&gt;#9059&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Code]&lt;/strong&gt; Correct the UI interface of the code fields (&lt;a href="https://github.com/nocobase/nocobase/pull/9061" rel="noopener noreferrer"&gt;#9061&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt; Remove form closing prompt after email is sent successfully by jiannx&lt;/p&gt;&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%2Fow9jd2rkp6w0rmrzuzwl.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%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-alpha.20" rel="noopener noreferrer"&gt;v2.1.0-alpha.20&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-20&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Add log field for jobs, in order to show log content of some node for debug (&lt;a href="https://github.com/nocobase/nocobase/pull/9165" rel="noopener noreferrer"&gt;#9165&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Add Arabic translation for guide section and navigation (&lt;a href="https://github.com/nocobase/nocobase/pull/9141" rel="noopener noreferrer"&gt;#9141&lt;/a&gt;) by saraTabbane&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Improved generated API CLI help output and ACL command grouping (&lt;a href="https://github.com/nocobase/nocobase/pull/9166" rel="noopener noreferrer"&gt;#9166&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fixed an issue where updating sub-table values through field assignment would result in data contamination. (&lt;a href="https://github.com/nocobase/nocobase/pull/9163" rel="noopener noreferrer"&gt;#9163&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed an issue where sequence fields could be changed to string after database synchronization (&lt;a href="https://github.com/nocobase/nocobase/pull/9143" rel="noopener noreferrer"&gt;#9143&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Fixed CLI OAuth login failures on Windows caused by long authorization URLs (&lt;a href="https://github.com/nocobase/nocobase/pull/9159" rel="noopener noreferrer"&gt;#9159&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Departments]&lt;/strong&gt; Fixed missing or stale main department values after saving user departments (&lt;a href="https://github.com/nocobase/nocobase/pull/9156" rel="noopener noreferrer"&gt;#9156&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data source: Main]&lt;/strong&gt; Fixed field sync from database for connected views when the collection name differs from the database view name (&lt;a href="https://github.com/nocobase/nocobase/pull/9155" rel="noopener noreferrer"&gt;#9155&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Return null when preview URL is missing (&lt;a href="https://github.com/nocobase/nocobase/pull/9104" rel="noopener noreferrer"&gt;#9104&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-alpha.19" rel="noopener noreferrer"&gt;v2.1.0-alpha.19&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-19&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli-v1]&lt;/strong&gt; resolve storage path from env (&lt;a href="https://github.com/nocobase/nocobase/pull/9147" rel="noopener noreferrer"&gt;#9147&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Calendar]&lt;/strong&gt; calendar block v2 (&lt;a href="https://github.com/nocobase/nocobase/pull/9092" rel="noopener noreferrer"&gt;#9092&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Improved &lt;code&gt;nb api&lt;/code&gt; help fallback and unified warning messages for runtime bootstrap failures (&lt;a href="https://github.com/nocobase/nocobase/pull/9153" rel="noopener noreferrer"&gt;#9153&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Departments]&lt;/strong&gt; Display the &lt;code&gt;parentId&lt;/code&gt; foreign key field of department collection in the UI (&lt;a href="https://github.com/nocobase/nocobase/pull/9130" rel="noopener noreferrer"&gt;#9130&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fix the oversized height and width of tabs in page configuration mode (&lt;a href="https://github.com/nocobase/nocobase/pull/9144" rel="noopener noreferrer"&gt;#9144&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[database]&lt;/strong&gt; Fixed SQL injection risks in recursive tree eager loading and scoped sort initialization (&lt;a href="https://github.com/nocobase/nocobase/pull/9133" rel="noopener noreferrer"&gt;#9133&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fix security issue of script executing in &lt;code&gt;node:vm&lt;/code&gt; mode (&lt;a href="https://github.com/nocobase/nocobase/pull/9084" rel="noopener noreferrer"&gt;#9084&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[IdP: OAuth]&lt;/strong&gt; Fixed OAuth client registration and token refresh failures after service restart (&lt;a href="https://github.com/nocobase/nocobase/pull/9139" rel="noopener noreferrer"&gt;#9139&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Departments]&lt;/strong&gt; Fixed department lists in department management not following the &lt;code&gt;sort&lt;/code&gt; field order (&lt;a href="https://github.com/nocobase/nocobase/pull/9150" rel="noopener noreferrer"&gt;#9150&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection: SQL]&lt;/strong&gt; Fixed missing SQL validation on SQL collection updates (&lt;a href="https://github.com/nocobase/nocobase/pull/9134" rel="noopener noreferrer"&gt;#9134&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data visualization]&lt;/strong&gt; Fixed chart block sorting to use aliased measures and dimensions in aggregated queries (&lt;a href="https://github.com/nocobase/nocobase/pull/9131" rel="noopener noreferrer"&gt;#9131&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-alpha.18" rel="noopener noreferrer"&gt;v2.1.0-alpha.18&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-17&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed file collection field sync removing &lt;code&gt;preview&lt;/code&gt; field (&lt;a href="https://github.com/nocobase/nocobase/pull/9129" rel="noopener noreferrer"&gt;#9129&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-alpha.17" rel="noopener noreferrer"&gt;v2.1.0-alpha.17&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-17&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; refactor NocoBase CLI (&lt;a href="https://github.com/nocobase/nocobase/pull/9122" rel="noopener noreferrer"&gt;#9122&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Improve AI employees' ability to parse uploaded documents (&lt;a href="https://github.com/nocobase/nocobase/pull/9126" rel="noopener noreferrer"&gt;#9126&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sync translated environment-variable and cluster-mode docs with the latest Chinese updates. (&lt;a href="https://github.com/nocobase/nocobase/pull/9115" rel="noopener noreferrer"&gt;#9115&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Docs: add Arabic translation for get-started introduction pages (&lt;a href="https://github.com/nocobase/nocobase/pull/9044" rel="noopener noreferrer"&gt;#9044&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;li&gt;Add Arabic translation for documentation homepage (&lt;a href="https://github.com/nocobase/nocobase/pull/9043" rel="noopener noreferrer"&gt;#9043&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[logger]&lt;/strong&gt; Add &lt;code&gt;referer&lt;/code&gt; information to request logs (&lt;a href="https://github.com/nocobase/nocobase/pull/9110" rel="noopener noreferrer"&gt;#9110&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt; add form required verification switch (&lt;a href="https://github.com/nocobase/nocobase/pull/9060" rel="noopener noreferrer"&gt;#9060&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Manual node]&lt;/strong&gt; Use &lt;code&gt;simplePagination&lt;/code&gt; on workflow tasks related collections for better list performance (&lt;a href="https://github.com/nocobase/nocobase/pull/9117" rel="noopener noreferrer"&gt;#9117&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; After AI employee block selection, fill form attachment into upload area (&lt;a href="https://github.com/nocobase/nocobase/pull/9127" rel="noopener noreferrer"&gt;#9127&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Use &lt;code&gt;simplePagination&lt;/code&gt; on &lt;code&gt;approvals&lt;/code&gt; and &lt;code&gt;approvalRecords&lt;/code&gt; collection for better list performance by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the optional options of single-select fields in field rule configuration are empty (&lt;a href="https://github.com/nocobase/nocobase/pull/9119" rel="noopener noreferrer"&gt;#9119&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed an issue where the association field component was incorrect in the field value settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9063" rel="noopener noreferrer"&gt;#9063&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed incorrect default value settings for sub table in form. (&lt;a href="https://github.com/nocobase/nocobase/pull/9087" rel="noopener noreferrer"&gt;#9087&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[utils]&lt;/strong&gt; Add security control for server HTTP request sending, to avoid possible SSRF (&lt;a href="https://github.com/nocobase/nocobase/pull/9079" rel="noopener noreferrer"&gt;#9079&lt;/a&gt;) by mytharcher&lt;br&gt;&lt;br&gt;
Reference: &lt;a href="https://docs.nocobase.com/get-started/installation/env" rel="noopener noreferrer"&gt;Environment variables&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Loop node]&lt;/strong&gt; Fix validations of workflow nodes (&lt;a href="https://github.com/nocobase/nocobase/pull/9111" rel="noopener noreferrer"&gt;#9111&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fix the issue where receiver select component works not correctly (&lt;a href="https://github.com/nocobase/nocobase/pull/9123" rel="noopener noreferrer"&gt;#9123&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[IdP: OAuth]&lt;/strong&gt; Fixed OAuth access for regular API requests (&lt;a href="https://github.com/nocobase/nocobase/pull/9120" rel="noopener noreferrer"&gt;#9120&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed aggregate query sorting dropped by ACL (&lt;a href="https://github.com/nocobase/nocobase/pull/9099" rel="noopener noreferrer"&gt;#9099&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;Fix the issue where the baseURL settings of google-gen-ai's LLM service does not take effect (&lt;a href="https://github.com/nocobase/nocobase/pull/9107" rel="noopener noreferrer"&gt;#9107&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt; Remove form closing prompt after email is sent successfully by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  About NocoBase
&lt;/h3&gt;

&lt;p&gt;NocoBase is the most extensible AI-powered no-code platform.&lt;br&gt;
Total control. Infinite extensibility. AI collaboration.&lt;br&gt;
Enable your team to adapt quickly and cut costs dramatically.&lt;br&gt;
No years of development. No millions wasted.&lt;br&gt;
Deploy NocoBase in minutes — and take control of everything.&lt;/p&gt;

&lt;p&gt;Discover NocoBase in 3 Minutes!&lt;/p&gt;

&lt;h3&gt;
  
  
  👇 Get NocoBase
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://demo.nocobase.com/new" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://v2.docs.nocobase.com/" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>6 Best Open-Source Tools to Replace Custom Integration Middleware</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Wed, 22 Apr 2026 10:38:49 +0000</pubDate>
      <link>https://dev.to/nocobase/6-best-open-source-tools-to-replace-custom-integration-middleware-3fgg</link>
      <guid>https://dev.to/nocobase/6-best-open-source-tools-to-replace-custom-integration-middleware-3fgg</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/6-open-source-integration-tools-to-replace-custom-middleware" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/6-open-source-integration-tools-to-replace-custom-middleware&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As companies rely on more and more systems, integration gets harder. For software outsourcing firms and enterprise IT teams, the key concerns in system integration are long term maintenance costs, data ownership and control, and how much room the solution leaves for future expansion.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/ITManagers/comments/1l4or3u/whats_the_best_integration_platform_for/" rel="noopener noreferrer"&gt;A similar situation was discussed on Reddit’s r/ITManagers&lt;/a&gt;: a mid sized to large enterprise was already running ERP, CRM, WMS, industry specific systems, and Excel based workflows at the same time. The team wanted to move ahead with system integration, but did not want to keep building custom APIs from scratch forever. They also had to think about cost, compatibility with existing systems, security, maintainability, and whether every future change would still require heavy development work.&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%2Fxi1yidy7vozpjp0q3ri6.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%2Fxi1yidy7vozpjp0q3ri6.png" alt="image.png" width="665" height="739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a common situation for companies choosing an integration solution.&lt;/p&gt;

&lt;p&gt;Building middleware in house offers flexibility, but it usually comes with high development and maintenance costs. Pure SaaS tools are easier to adopt at the start, but they can also create ongoing costs and platform dependence.&lt;/p&gt;

&lt;p&gt;Open source integration tools offer another path. They can be self hosted, while still leaving room for future extension and custom development.&lt;/p&gt;

&lt;p&gt;💡Read more: &lt;a href="https://www.nocobase.com/en/blog/20-best-self-hosted-tools-for-enterprises" rel="noopener noreferrer"&gt;Recommended self hosted tools for enterprises: 20+ tools for complete data control&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article compares 6 common open source integration tools across four key dimensions: deployment, connectivity, extensibility, and long term cost.&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. →&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt; Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Comparison table
&lt;/h2&gt;

&lt;p&gt;Here is a quick overview of the 6 tools covered in this article.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Integration approach&lt;/th&gt;
&lt;th&gt;Data source support&lt;/th&gt;
&lt;th&gt;Self hosted&lt;/th&gt;
&lt;th&gt;Extensibility&lt;/th&gt;
&lt;th&gt;Learning curve&lt;/th&gt;
&lt;th&gt;Best fit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;API + database&lt;/td&gt;
&lt;td&gt;15+&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Plugin system&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Integration scenarios that require stronger data control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;n8n&lt;/td&gt;
&lt;td&gt;Workflow automation&lt;/td&gt;
&lt;td&gt;200+&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Custom nodes&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Fast business process automation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apache NiFi&lt;/td&gt;
&lt;td&gt;Data flow processing&lt;/td&gt;
&lt;td&gt;100+&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Processor extensions&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Complex data pipelines and high throughput workloads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Node-RED&lt;/td&gt;
&lt;td&gt;Event driven&lt;/td&gt;
&lt;td&gt;Custom&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Custom nodes&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;IoT and real time data processing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Airbyte&lt;/td&gt;
&lt;td&gt;ELT pipelines&lt;/td&gt;
&lt;td&gt;150+&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Custom connectors&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Data warehouse sync&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LogicMesh&lt;/td&gt;
&lt;td&gt;API integration&lt;/td&gt;
&lt;td&gt;50+&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Custom adapters&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;API heavy integration&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  6 open source tools that can replace in house integration middleware
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. NocoBase
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;: NocoBase is an open source AI no code/low code platform with built in support for multiple data sources, self hosted deployment, and a plugin architecture that can be extended continuously.&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%2Fda0pffqz0gftr17obult.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%2Fda0pffqz0gftr17obult.jpg" alt="nocobase2.jpg" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data sources and integration&lt;/strong&gt;: It can connect to both primary databases and external data sources. Its commercial capability matrix covers MySQL, PostgreSQL, MariaDB, MSSQL, and REST APIs, while the enterprise edition adds support for Oracle, ClickHouse, Doris, and more&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%2Fjgn9i8vq2n7u7gb7jc11.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%2Fjgn9i8vq2n7u7gb7jc11.png" alt="nocobase1.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Workflow engine&lt;/strong&gt;: Supports event triggers, scheduled tasks, conditions, loops, CRUD operations, HTTP requests, Webhooks, approvals, and more&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugin system&lt;/strong&gt;: Plugins can be used to extend data sources, interfaces, actions, and workflows&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%2F4bkya4nd9qf5514aqm95.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%2F4bkya4nd9qf5514aqm95.png" alt="nocobase3.png" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100% self hosted&lt;/strong&gt;: Data stays fully under your control, with clear control over where it flows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI capabilities&lt;/strong&gt;: AI Employees can understand business context inside the system and directly take action. NocoBase also provides official Skills for Codex, Claude Code, and OpenCode, making it easier to use Agents for installation, data modeling, UI setup, and workflow configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Strongest data sovereignty (fully self hosted)&lt;/li&gt;
&lt;li&gt;✅ Highly extensible (plugin system)&lt;/li&gt;
&lt;li&gt;✅ No vendor lock in (Apache 2.0 license)&lt;/li&gt;
&lt;li&gt;✅ Well suited for database heavy integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Typical scenarios&lt;/strong&gt;: A good fit for teams that need to integrate existing databases, APIs, and business data while also quickly building internal tools such as CRM, ticketing, approvals, and project management systems. Compared with tools that only handle connections, NocoBase is better suited for teams that want to keep integration and internal system building on the same platform and keep iterating over time.&lt;/p&gt;

&lt;p&gt;💡Read more: &lt;a href="https://www.nocobase.com/en/blog/5-no-code-low-code-platforms-supporting-external-databases-mysql-mongodb-api" rel="noopener noreferrer"&gt;More than PostgreSQL: 5 no code/low code platforms that support external databases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open source license&lt;/strong&gt;: Apache 2.0 (commercial use allowed)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://nocobase.com/" rel="noopener noreferrer"&gt;https://nocobase.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;https://github.com/nocobase/nocobase&lt;/a&gt; (22k+ stars)&lt;/p&gt;

&lt;h3&gt;
  
  
  2. n8n
&lt;/h3&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%2Fexgx3tf7yck3sbhc1cwf.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%2Fexgx3tf7yck3sbhc1cwf.png" alt="n8n.png" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;: n8n is a workflow automation tool with 200+ integrations, built for connecting applications and automating business processes.&lt;/p&gt;

&lt;p&gt;💡Read more: &lt;a href="https://www.nocobase.com/en/blog/zapier-open-source-alternatives" rel="noopener noreferrer"&gt;7 open source workflow tools that can replace Zapier&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;200+ built in integrations&lt;/strong&gt;: Covers a wide range of mainstream SaaS apps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual workflow editor&lt;/strong&gt;: Build workflows with drag and drop&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self hosted deployment&lt;/strong&gt;: Supports one click Docker deployment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom node development&lt;/strong&gt;: Extensible with TypeScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Large integration library&lt;/li&gt;
&lt;li&gt;✅ Easy for non developers to use&lt;/li&gt;
&lt;li&gt;✅ Active community support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Typical scenarios&lt;/strong&gt;: Best for automation between SaaS applications, such as lead sync, form capture, notifications, approval routing, and AI workflow orchestration. Its main strengths are the large number of ready made integrations and fast setup. That said, the official self hosted option also clearly notes that users need technical knowledge in servers, containers, security, and operations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open source license&lt;/strong&gt;: Fair Code (commercial use allowed, with limitations)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://n8n.io/" rel="noopener noreferrer"&gt;https://n8n.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/n8n-io/n8n" rel="noopener noreferrer"&gt;https://github.com/n8n-io/n8n&lt;/a&gt; (50k+ stars)&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Apache NiFi
&lt;/h3&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%2Fey8zm96a1ww7y7svdseb.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%2Fey8zm96a1ww7y7svdseb.png" alt="Apache_NiFi.png" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;: Apache NiFi is an automated data flow platform with a powerful visual interface for managing how data moves between systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100+ processors&lt;/strong&gt;: Supports a wide range of data sources and protocols&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual data flow design&lt;/strong&gt;: Build pipelines with drag and drop&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise features&lt;/strong&gt;: Built in monitoring, logging, and back pressure control&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High availability&lt;/strong&gt;: Supports cluster deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Strong data transformation capabilities&lt;/li&gt;
&lt;li&gt;✅ Enterprise grade reliability&lt;/li&gt;
&lt;li&gt;✅ Well suited for high throughput scenarios&lt;/li&gt;
&lt;li&gt;✅ Fine grained security controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Typical scenarios&lt;/strong&gt;: Best for high throughput, cross system data flow workloads, such as logs, event streams, observability data, and batch or continuous pipelines. It is also a strong fit for enterprise scenarios that need data provenance, clustering, and stable long term operation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open source license&lt;/strong&gt;: Apache 2.0&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://nifi.apache.org/" rel="noopener noreferrer"&gt;https://nifi.apache.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/apache/nifi" rel="noopener noreferrer"&gt;https://github.com/apache/nifi&lt;/a&gt; (4k+ stars)&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Node-RED
&lt;/h3&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%2Fnn293drisfbn0xu7bykj.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%2Fnn293drisfbn0xu7bykj.png" alt="Node Red.png" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;: Node-RED is a browser based flow editor that was originally built for IoT and is now widely used for event driven integration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Event driven architecture&lt;/strong&gt;: Designed for real time data handling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node ecosystem&lt;/strong&gt;: 3000+ community nodes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight deployment&lt;/strong&gt;: Can run on embedded devices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native JavaScript support&lt;/strong&gt;: Flexible for custom logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Great for real time data streams&lt;/li&gt;
&lt;li&gt;✅ Large community node library&lt;/li&gt;
&lt;li&gt;✅ Easy to learn and use&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Typical scenarios&lt;/strong&gt;: Best for real time event streams, device side workflows, IoT, industrial control, edge scenarios, and lightweight API orchestration. Its official positioning has long focused on event driven low code, with an emphasis on collecting, transforming, and visualizing real time data across home automation and industrial control use cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open source license&lt;/strong&gt;: Apache 2.0&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://nodered.org/" rel="noopener noreferrer"&gt;https://nodered.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/node-red/node-red" rel="noopener noreferrer"&gt;https://github.com/node-red/node-red&lt;/a&gt; (20k+ stars)&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Airbyte
&lt;/h3&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%2Fmusah5g06gzom06jjqgo.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%2Fmusah5g06gzom06jjqgo.png" alt="Airbyte.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;: Airbyte is a data integration platform focused on ELT (Extract, Load, Transform), mainly used for syncing data into data warehouses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;150+ data source connectors&lt;/strong&gt;: Supports databases, SaaS tools, and files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standardized connector API&lt;/strong&gt;: Makes it easier to build custom connectors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Incremental sync&lt;/strong&gt;: Only syncs changed data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CDC support&lt;/strong&gt;: Supports change data capture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡Read more: &lt;a href="https://www.nocobase.com/en/blog/data-integration-platforms" rel="noopener noreferrer"&gt;7 best data integration platforms&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Built for data warehouses&lt;/li&gt;
&lt;li&gt;✅ Strong sync capabilities&lt;/li&gt;
&lt;li&gt;✅ Active developer community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Typical scenarios&lt;/strong&gt;: Best for syncing data from business systems into data warehouses, data lakes, and databases. Its core job is batch replication, incremental sync, and CDC, rather than complex business workflow orchestration. Airbyte’s homepage and pricing pages both focus heavily on data replication, batch processing, and CDC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open source license&lt;/strong&gt;: ELv2 (commercial use allowed)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://airbyte.com/" rel="noopener noreferrer"&gt;https://airbyte.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/airbytehq/airbyte" rel="noopener noreferrer"&gt;https://github.com/airbytehq/airbyte&lt;/a&gt; (16k+ stars)&lt;/p&gt;

&lt;h3&gt;
  
  
  6. LogicMesh
&lt;/h3&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%2F00kq3ikpbev1jyqn6oux.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%2F00kq3ikpbev1jyqn6oux.png" alt="LogicMesh.png" width="800" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;: LogicMesh is a lightweight API integration platform focused on API aggregation and orchestration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API orchestration&lt;/strong&gt;: Combines multiple API calls into one&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response aggregation&lt;/strong&gt;: Merges responses from multiple APIs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Caching and rate limiting&lt;/strong&gt;: Built in API management features&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low code configuration&lt;/strong&gt;: Uses YAML files to define integration logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Lightweight deployment&lt;/li&gt;
&lt;li&gt;✅ Focused on API integration&lt;/li&gt;
&lt;li&gt;✅ Easy to configure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Best fit&lt;/strong&gt;: API heavy integration scenarios&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open source license&lt;/strong&gt;: MIT&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/logicmesh/logicmesh" rel="noopener noreferrer"&gt;https://github.com/logicmesh/logicmesh&lt;/a&gt; (1k+ stars)&lt;/p&gt;

&lt;h2&gt;
  
  
  How to choose the right integration tool
&lt;/h2&gt;

&lt;p&gt;Here is a quick decision framework based on different needs.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Recommended tools&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Enterprises with data residency requirements&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;NocoBase, Apache NiFi&lt;/td&gt;
&lt;td&gt;Fully self hosted, with no risk of external data transfer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Fast app to app integration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;n8n, LogicMesh&lt;/td&gt;
&lt;td&gt;Low learning curve and large connector libraries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Complex data pipelines (ETL/ELT)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Airbyte, Apache NiFi&lt;/td&gt;
&lt;td&gt;Built for data warehouse and data flow scenarios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IoT and real time event processing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Node-RED&lt;/td&gt;
&lt;td&gt;Event driven architecture optimized for real time use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Non technical business teams&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;n8n&lt;/td&gt;
&lt;td&gt;No code and easy to start with&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Replacing in house middleware&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;Plugin based extensibility makes it easier to build custom logic on one platform&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Key questions to ask before choosing
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Do you need database level integration, not just API integration?&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;If yes → Consider NocoBase or Airbyte&lt;/li&gt;
&lt;li&gt;If API integration is enough → n8n or LogicMesh may be a better fit&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Who will build and maintain the integrations?&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;Technical teams → Apache NiFi, NocoBase&lt;/li&gt;
&lt;li&gt;Non technical users → n8n, Node-RED&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Do you need to develop custom connectors?&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;If yes, look for tools with strong extensibility, such as NocoBase plugins or n8n custom nodes&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;What are your data volume and performance requirements?&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;High throughput → Apache NiFi&lt;/li&gt;
&lt;li&gt;Mid sized workloads → NocoBase, n8n&lt;/li&gt;
&lt;li&gt;Low frequency integration → Any of these tools can work&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cost comparison (illustrative 3 year total cost)
&lt;/h2&gt;

&lt;p&gt;Take a mid sized integration project as an example: it needs to connect 5 systems, configure around 10 core integration flows, and continue to maintain, adjust, and expand them over 3 years. &lt;strong&gt;The estimates below are illustrative only. They include software costs, implementation effort, maintenance labor, and future adjustment costs, and do not represent official product pricing.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Illustrative 3 year total cost&lt;/th&gt;
&lt;th&gt;Cost profile&lt;/th&gt;
&lt;th&gt;Summary&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;In house development&lt;/td&gt;
&lt;td&gt;¥1.2M to ¥2.5M+&lt;/td&gt;
&lt;td&gt;High upfront development cost, with ongoing maintenance and changes continuing to consume engineering resources&lt;/td&gt;
&lt;td&gt;Most flexible, but usually the most expensive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Commercial iPaaS&lt;/td&gt;
&lt;td&gt;¥600K to ¥1.5M+&lt;/td&gt;
&lt;td&gt;Annual subscription plus implementation services, with costs rising as usage scales&lt;/td&gt;
&lt;td&gt;Mature and reliable, but expensive over time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SaaS tools (Zapier)&lt;/td&gt;
&lt;td&gt;¥50K to ¥200K+&lt;/td&gt;
&lt;td&gt;Low upfront cost, but expenses rise clearly as task volume and usage increase&lt;/td&gt;
&lt;td&gt;Cost effective for light use cases, but costs rise as operations grow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open source tools (NocoBase)&lt;/td&gt;
&lt;td&gt;¥80K to ¥300K&lt;/td&gt;
&lt;td&gt;Some deployment and setup cost upfront, then relatively stable over time&lt;/td&gt;
&lt;td&gt;Usually a better long term value&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Frequently asked questions (FAQ)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the difference between open source tools and commercial iPaaS platforms like MuleSoft?
&lt;/h3&gt;

&lt;p&gt;Commercial iPaaS platforms usually offer more complete enterprise support, built in connectors, and SLA guarantees, but they are expensive, with annual fees often reaching six figures in USD. Open source tools require your team to deploy and maintain them, but licensing costs are zero and data remains fully under your control. For most mid sized companies, the &lt;strong&gt;total cost of ownership of open source tools is often only 1/3 to 1/5 of that of commercial alternatives&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need development experience to use these tools?
&lt;/h3&gt;

&lt;p&gt;n8n and Node-RED are relatively friendly to business analysts and other non technical users.&lt;/p&gt;

&lt;p&gt;NocoBase and Apache NiFi require some technical background, including basic SQL and API knowledge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI has already lowered the barrier to getting started with NocoBase.&lt;/strong&gt; NocoBase provides official Skills for Codex, Claude Code, and OpenCode, so Agents can help with installation, data modeling, UI setup, and workflow configuration. People can focus more on business decisions, reviewing the output, and final confirmation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which databases do these tools support?
&lt;/h3&gt;

&lt;p&gt;NocoBase supports the widest range of database types, including PostgreSQL, MySQL, SQL Server, Oracle, MongoDB, and more. Airbyte and Apache NiFi also provide strong database connectivity. n8n mainly connects to databases through APIs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use multiple tools together?
&lt;/h3&gt;

&lt;p&gt;Yes. Many companies use a hybrid setup, but it is important not to make the overall architecture too complex.&lt;/p&gt;

&lt;p&gt;For example, you can use NocoBase for database level integration, n8n for SaaS integration, and Airbyte for data warehouse sync.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do the open source licenses allow commercial use?
&lt;/h3&gt;

&lt;p&gt;Yes. All the tools covered in this article, including NocoBase, n8n, Apache NiFi, Node-RED, Airbyte, and LogicMesh, allow commercial use. NocoBase, Apache NiFi, and Node-RED use the Apache 2.0 license, which is one of the most permissive. Airbyte uses ELv2, and n8n uses Fair Code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/airtable-vs-nocobase-migration-cost-comparison" rel="noopener noreferrer"&gt;Replace Excel with NocoBase or Airtable? A Cost-by-Cost Comparison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/excel-to-web-app-4-methods" rel="noopener noreferrer"&gt;4 Ways to Quickly Build Web Apps from Excel Data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/5-no-code-low-code-platforms-supporting-external-databases-mysql-mongodb-api" rel="noopener noreferrer"&gt;Not Just PostgreSQL: Comparing 5 No-Code/Low-Code Platforms with External Database Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-project-management-tool-selection-guide-2026-edition" rel="noopener noreferrer"&gt;Open Source Project Management Tool Selection Guide, 2026 Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/how-to-build-a-custom-crm-with-postgresql" rel="noopener noreferrer"&gt;How to Build a Custom CRM with PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-open-source-ai-projects-github-2026" rel="noopener noreferrer"&gt;Top 20 AI Projects on GitHub to Watch in 2026: Not Just OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-ai-crm-open-source-nocobase-twenty-krayin" rel="noopener noreferrer"&gt;Best Open Source AI CRM: NocoBase vs Twenty vs Krayin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/top-3-open-source-erp-with-ai-on-github-nocobase-vs-odoo-vs-erpnext" rel="noopener noreferrer"&gt;Top 3 Open Source ERP with AI on GitHub: NocoBase vs Odoo vs ERPNext&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/5-most-popular-open-source-ai-project-management-tools-on-github" rel="noopener noreferrer"&gt;5 Most Popular Open-Source AI Project Management Tools on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>Replace Excel with NocoBase or Airtable? A Cost-by-Cost Comparison</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Fri, 17 Apr 2026 17:20:51 +0000</pubDate>
      <link>https://dev.to/nocobase/replace-excel-with-nocobase-or-airtable-a-cost-by-cost-comparison-3kl7</link>
      <guid>https://dev.to/nocobase/replace-excel-with-nocobase-or-airtable-a-cost-by-cost-comparison-3kl7</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/airtable-vs-nocobase-migration-cost-comparison" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/airtable-vs-nocobase-migration-cost-comparison&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We previously published an &lt;a href="https://www.nocobase.com/cn/blog/6-enterprise-softwares-to-replace-excel-for-internal-operations" rel="noopener noreferrer"&gt;Excel replacement guide&lt;/a&gt; that breaks down how companies can choose the right tool to replace Excel based on business complexity and actual usage needs.&lt;/p&gt;

&lt;p&gt;For many teams, Airtable is a common next step. It is attractive for spreadsheet collaboration and lightweight management. But as business needs become more complex, teams often start paying more attention to system capabilities, modular expansion, and how much control they really have over the tools they use.&lt;/p&gt;

&lt;p&gt;With that in mind, &lt;a href="https://www.nocobase.com/cn/blog/nocobase-vs-airtable" rel="noopener noreferrer"&gt;we have also explained how common Airtable workflows can be handled in NocoBase&lt;/a&gt;, giving teams that are exploring a more modular, system based, and self controlled approach another option to consider.&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. →&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt; Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you are still deciding whether to move from Excel to a new tool, the difference between Airtable and NocoBase is not just about features. It is also about the real cost of migration. Different goals lead to different workloads during migration, and they also result in very different long term cost structures.&lt;/p&gt;

&lt;p&gt;In the rest of this article, we break that down from a migration cost perspective and look at what teams actually need to invest when moving from Excel to Airtable or NocoBase. Hopefully, this will give you a clearer reference point as you make your choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Want a quick summary first? Start with the table below to see which product is closer to your current needs.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;If your situation is…&lt;/th&gt;
&lt;th&gt;Better fit for Airtable&lt;/th&gt;
&lt;th&gt;Better fit for NocoBase&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;You just want to move Excel online quickly&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Your main focus is spreadsheet collaboration and information organization&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You need complex workflows, approvals, and cross functional business coordination&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You need row level, field level, or data scope permissions&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Your team is likely to keep growing&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You care more about long term total cost&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You may later expand into a full internal system&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You want to keep early launch and deployment pressure low&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Airtable and NocoBase: A Migration Cost Comparison
&lt;/h2&gt;

&lt;p&gt;NocoBase is an open source, self hosted, AI driven no code and low code platform. It is a good fit for teams that want to move beyond Excel and build internal systems such as CRM, approvals, ticketing, and project management.&lt;/p&gt;

&lt;p&gt;Airtable is a low code platform built for collaborative applications. It is well suited to quickly turning spreadsheet based management, information organization, and lightweight workflows into an online system.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Related links&lt;/p&gt;

&lt;p&gt;NocoBase website: &lt;a href="https://www.nocobase.com/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;www.nocobase.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NocoBase documentation: &lt;a href="https://docs.nocobase.com/" rel="noopener noreferrer"&gt;https://docs.nocobase.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Airtable website: &lt;a href="https://www.airtable.com/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;www.airtable.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Airtable documentation: &lt;a href="https://support.airtable.com/" rel="noopener noreferrer"&gt;https://support.airtable.com/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2.1 Data Cleanup and Structure Redesign Cost
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;NocoBase&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NocoBase is built around a data model driven architecture, with pages separated from the underlying data structure. That makes it possible to move data cleanup, structure design, and interface building forward in parallel. The main data source can either create tables directly or sync existing database schemas. Later, whether you connect external data sources or add new business objects, you do not need to rebuild the foundation from scratch.&lt;/p&gt;

&lt;p&gt;Its modeling and setup path is also relatively clear, and the official site and documentation provide enough guidance to support that process. With the help of Agent tools, users can quickly generate an initial system prototype through natural language, then review and refine it inside the product. This allows early cleanup, modeling, and initial setup to move forward continuously, with lower time cost overall.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Airtable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Airtable is better suited to an import first, organize later approach. Excel and CSV files can be imported directly into new or existing tables. During import, you can adjust fields, headers, and field types. If you want to add more data to an existing table, you can also merge it through Airtable's CSV import tools.&lt;/p&gt;

&lt;p&gt;Its structure is more standardized. The main building blocks are bases, tables, fields, records, and views. Linked records can create relationships between tables, while views are useful for grouping and organizing information within a single table. This makes early stage organization efficient, but as business relationships become more complex, modeling still has to happen within the same framework, and adaptation costs tend to rise.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.2 &lt;strong&gt;Workflow Setup Cost&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;NocoBase&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When it comes to workflow setup, the core strength is NocoBase's &lt;strong&gt;workflow engine&lt;/strong&gt;. It supports pre actions, post actions, custom actions, approvals, Webhooks, scheduled tasks, conditional branches, parallel branches, sub workflows, manual steps, and large language model nodes. Initial setup is heavier, but complex workflows can be handled directly inside the system, which lowers adaptation costs later on.&lt;/p&gt;

&lt;p&gt;Its workflows are tied directly to business actions. Create, edit, submit, and approve actions can all be handled within the same workflow. This makes it a strong fit for more system oriented scenarios such as approvals, validation, blocking logic, and manual processing.&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%2Fdy1761xaiwpz6xh5l5ck.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%2Fdy1761xaiwpz6xh5l5ck.png" alt="nocobase1.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Airtable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Airtable's workflow setup is built around &lt;strong&gt;triggers + actions&lt;/strong&gt;. It works well for notifications, syncing, writebacks, integrations, and script execution after events like record creation, field updates, or form submissions. The upfront setup cost is lower, and basic automation can be rolled out more quickly.&lt;/p&gt;

&lt;p&gt;That said, its workflow logic still depends on the existing table structure and automation framework. Standard workflows are easy to implement, but once you need more detailed business rules, approval chains, or manual intervention, flexibility starts to narrow. Airtable's AI assistant Omni can help users create automation workflows directly, which lowers the setup barrier even further, but it does not change that overall limitation.&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%2Fntbxdruo43kyxkgs2g9n.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%2Fntbxdruo43kyxkgs2g9n.png" alt="Airtable4-3vjb30.png" width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.3 &lt;strong&gt;Permissions and Collaboration Cost&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;NocoBase&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NocoBase's permission model is more aligned with business systems. Roles, data scope, and field permissions can all be handled within one framework, and the level of control can go all the way down to rows and fields.&lt;/p&gt;

&lt;p&gt;This takes more time to configure up front, but once the boundaries are clearly defined, later additions such as new roles, pages, and workflows can all follow the same permission model. In complex collaboration scenarios, the initial setup cost is higher, but the long term adaptation cost is lower.&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%2Fictc3rqi7a2x3sslleik.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%2Fictc3rqi7a2x3sslleik.png" alt="nocobase2.png" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Airtable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Airtable's permission structure is more collaboration oriented. Viewing and editing boundaries across workspaces, bases, and interfaces are relatively clear, which makes it easier to quickly define who can see what, who can edit what, and who can access which interface.&lt;/p&gt;

&lt;p&gt;That keeps the initial setup cost lower and helps teams start collaborating faster. But its permission model is still shaped by the platform's own hierarchy. As business needs become more detailed, later adjustments can only happen within that structure, so flexibility becomes more limited.&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%2F8zxi5g5lw49cf4un3ulv.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%2F8zxi5g5lw49cf4un3ulv.png" alt="airtable2.png" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.4 &lt;strong&gt;Deployment, Maintenance, and Pricing Cost&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;NocoBase&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NocoBase's cost structure mainly has two parts: software licensing and self managed maintenance. The software itself is open source and available to use. Commercial licensing follows a one time payment model rather than charging by user count, app count, or data volume. The Standard edition is USD 800, and the Professional edition is USD 8,000, both as perpetual licenses. On the deployment side, teams manage setup themselves, usually through Docker container deployment. That creates some upfront cost around environment setup, version upgrades, and ongoing maintenance, but as the number of users grows, software licensing cost does not rise with each additional seat.&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%2Fr8uy5mfvrmweynfckfgi.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%2Fr8uy5mfvrmweynfckfgi.png" alt="nocobase3.png" width="800" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Airtable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Airtable has a simpler cost structure, centered on recurring subscriptions. Its self serve plans are priced by workspace, with the Team plan at USD 20 per user per month when billed annually and the Business plan at USD 45 per user per month when billed annually. Billing applies to collaborators with comment access or above. Teams do not need to manage deployment or infrastructure themselves, which reduces early launch and maintenance pressure. But as the team grows, software cost continues to rise with the number of seats.&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%2F5h1s1y1iljuu2o8mizh2.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%2F5h1s1y1iljuu2o8mizh2.png" alt="airtable1.png" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.5 &lt;strong&gt;Long Term Adjustment and Expansion Cost&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;NocoBase&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NocoBase's long term scalability comes mainly from its plugin architecture. Pages, blocks, actions, interfaces, and data sources can all be extended through plugins. That means when you later add new business objects, new pages, or new capabilities, you do not have to keep rebuilding the original structure. For internal systems that will continue to evolve, this foundation is better suited to long term growth.&lt;/p&gt;

&lt;p&gt;The cost of long term adjustment shows up more in repetitive daily work. NocoBase's AI Employees are already built into the system and can work with page structure, data rows, and table structure to support tasks such as querying, analysis, form completion, and business collaboration. Over time, this mainly helps reduce the effort spent on repeated organization, repeated data entry, and repeated configuration.&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%2Fbrrffs1rvsyldcvmlfvc.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%2Fbrrffs1rvsyldcvmlfvc.png" alt="nocobase5-psudzu.png" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Airtable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Airtable's long term changes mainly happen within its existing bases and table structures. Fields, linked records, views, interfaces, and automation workflows can support most day to day updates, but the path for change still stays within the same original framework.&lt;/p&gt;

&lt;p&gt;Its expansion model is built on that same structure as well. As business complexity rises, the setup effort saved in the beginning gradually turns into later costs in structural adaptation and rule changes. This becomes especially obvious once relationships multiply and workflows become deeper, because teams have to keep adjusting inside the same framework.&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%2Fq00kojuwglc64h7mnqwo.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%2Fq00kojuwglc64h7mnqwo.png" alt="Airtable5-3cp828.png" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Can Reduce Part of the Setup Cost
&lt;/h2&gt;

&lt;p&gt;Both tools can use AI to improve implementation efficiency, because both provide solid documentation and support resources. Many setup questions can be handled first by asking AI to find the right information and organize the steps. For teams that already like working with Agents, general purpose AI tools such as Claude Code can also be used to help build systems in NocoBase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is no longer limited to manual setup or only the built in AI features inside the product. Developers can use AI Agents to generate data models, page layouts, and an initial system prototype through natural language, then simply review and fine tune the results inside the system. This skips a lot of tedious early setup work and significantly reduces upfront operational cost.&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%2Fywsh4wfos9optffu4mgp.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%2Fywsh4wfos9optffu4mgp.png" alt="NocoBase6-vekfnp.png" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In similar scenarios, Airtable's AI is used more to help users understand and carry out manual tasks such as turning a field into a linked relationship and then creating a new table.&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%2F89fievoi6jvl4h33zpz5.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%2F89fievoi6jvl4h33zpz5.png" alt="airtable3.png" width="717" height="801"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. I only have one messy Excel file right now, and my goal is to get collaboration running first. Should I choose Airtable first or go straight to NocoBase?
&lt;/h3&gt;

&lt;p&gt;If your current goal is &lt;strong&gt;to get online quickly, start collaborating, and organize the spreadsheet first&lt;/strong&gt;, Airtable is the more direct option. But if you already know you will later need &lt;strong&gt;permissions, workflows, external data sources, and internal systems&lt;/strong&gt;, NocoBase is the better choice if you want to start with a system mindset and avoid another round of structural rebuilding later.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. We have 20 to 50 collaborators, but not everyone needs edit access. Will Airtable get more expensive over time?
&lt;/h3&gt;

&lt;p&gt;Yes. Airtable mainly charges &lt;strong&gt;by editable collaborator seat&lt;/strong&gt;. As long as someone has edit access to a base, that person counts toward the cost. If your team is likely to keep growing, NocoBase is the better fit: &lt;strong&gt;it does not charge by seat, commercial licensing is a one time payment, and long term total cost is easier to control.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. We want sales to only see their own customers, finance to see amounts, and operations not to see amounts. Which one is a better fit?
&lt;/h3&gt;

&lt;p&gt;NocoBase is the better fit. Its permission model supports &lt;strong&gt;row level, field level, and data scope control&lt;/strong&gt;, which is much closer to real business needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Can I start with Airtable and move to NocoBase later when workflows become more complex?
&lt;/h3&gt;

&lt;p&gt;Yes, but you need to be ready for the cost of &lt;strong&gt;a second migration&lt;/strong&gt;. If you can already tell from the beginning that your needs will grow into more complex workflows and systems, it is usually better to start directly with NocoBase. Many of the capabilities Airtable offers can also be handled there.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. I am still not familiar with the platform. Can I first use AI to understand the steps clearly, and then start building?
&lt;/h3&gt;

&lt;p&gt;Yes.&lt;/p&gt;

&lt;p&gt;Airtable's AI assistant Omni can help you build, edit, and search bases, and can also assist with automation setup. NocoBase's AI Employees are already involved in system building, data analysis, and business operations. For beginners, using AI first to understand the path can genuinely reduce the learning curve.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. We do not want to keep paying by headcount and care more about long term total cost. Which one should we choose?
&lt;/h3&gt;

&lt;p&gt;NocoBase is the better fit.&lt;/p&gt;

&lt;p&gt;Airtable's cost keeps rising as the number of editable collaborators increases. NocoBase uses a one time licensing model. Self hosting does bring maintenance costs, but the software licensing itself is more stable and better suited to long term use.&lt;/p&gt;

&lt;p&gt;Thank you for your interest in products like Airtable and NocoBase. If this was helpful, feel free to share it with others who are also comparing tools or planning a system migration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/excel-to-web-app-4-methods" rel="noopener noreferrer"&gt;4 Ways to Quickly Build Web Apps from Excel Data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/5-no-code-low-code-platforms-supporting-external-databases-mysql-mongodb-api" rel="noopener noreferrer"&gt;Not Just PostgreSQL: Comparing 5 No-Code/Low-Code Platforms with External Database Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-project-management-tool-selection-guide-2026-edition" rel="noopener noreferrer"&gt;Open Source Project Management Tool Selection Guide, 2026 Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/how-to-build-a-custom-crm-with-postgresql" rel="noopener noreferrer"&gt;How to Build a Custom CRM with PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-open-source-ai-projects-github-2026" rel="noopener noreferrer"&gt;Top 20 AI Projects on GitHub to Watch in 2026: Not Just OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-ai-crm-open-source-nocobase-twenty-krayin" rel="noopener noreferrer"&gt;Best Open Source AI CRM: NocoBase vs Twenty vs Krayin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/top-3-open-source-erp-with-ai-on-github-nocobase-vs-odoo-vs-erpnext" rel="noopener noreferrer"&gt;Top 3 Open Source ERP with AI on GitHub: NocoBase vs Odoo vs ERPNext&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/5-most-popular-open-source-ai-project-management-tools-on-github" rel="noopener noreferrer"&gt;5 Most Popular Open-Source AI Project Management Tools on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Weekly Updates Add tree filter block</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Thu, 16 Apr 2026 03:52:34 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updatesadd-tree-filter-block-2o1c</link>
      <guid>https://dev.to/nocobase/weekly-updatesadd-tree-filter-block-2o1c</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/weekly-updates-20260416" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/weekly-updates-20260416&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated with three branches: &lt;code&gt;main&lt;/code&gt; , &lt;code&gt;next&lt;/code&gt; and &lt;code&gt;develop&lt;/code&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%2F66qf0fuohv233at2nnzv.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%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;：The most stable version to date, recommended for installation;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;：Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It's mainly for test users to collect feedback and optimize functions further. Ideal for test users who want to experience new features early and give feedback;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;：Alpha version, contains the latest feature code, may be incomplete or unstable, mainly for internal dev and rapid iteration. Suited for tech users interested in product's cutting-edge, but with potential issues and incomplete functions. Not for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&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%2Fgjmnc6cb7az5ofw9t1ip.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%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.37" rel="noopener noreferrer"&gt;v2.0.37&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-14&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add Table of Contents to French README (&lt;a href="https://github.com/nocobase/nocobase/pull/9037" rel="noopener noreferrer"&gt;#9037&lt;/a&gt;) by @saraTabbane&lt;/li&gt;
&lt;li&gt;Added TOC consistency across localized READMEs (&lt;a href="https://github.com/nocobase/nocobase/pull/9038" rel="noopener noreferrer"&gt;#9038&lt;/a&gt;) by @gaston98765&lt;/li&gt;
&lt;li&gt;Add Arabic translation for documentation homepage (&lt;a href="https://github.com/nocobase/nocobase/pull/9043" rel="noopener noreferrer"&gt;#9043&lt;/a&gt;) by @gaston98765&lt;/li&gt;
&lt;li&gt;Docs: add Arabic translation for get-started introduction pages (&lt;a href="https://github.com/nocobase/nocobase/pull/9044" rel="noopener noreferrer"&gt;#9044&lt;/a&gt;) by @gaston98765&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt; add form required verification switch (&lt;a href="https://github.com/nocobase/nocobase/pull/9060" rel="noopener noreferrer"&gt;#9060&lt;/a&gt;) by @jiannx&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[utils]&lt;/strong&gt; Add security control for server HTTP request sending, to avoid possible SSRF (&lt;a href="https://github.com/nocobase/nocobase/pull/9079" rel="noopener noreferrer"&gt;#9079&lt;/a&gt;) by @mytharcher
Reference: &lt;a href="https://docs.nocobase.com/get-started/installation/env" rel="noopener noreferrer"&gt;Environment variables&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.36" rel="noopener noreferrer"&gt;v2.0.36&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-10&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; fix subtable adds many-to-many field error (&lt;a href="https://github.com/nocobase/nocobase/pull/9070" rel="noopener noreferrer"&gt;#9070&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed the problem that many-to-one fields from external data sources cannot be added in the table block (&lt;a href="https://github.com/nocobase/nocobase/pull/9068" rel="noopener noreferrer"&gt;#9068&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Notification manager]&lt;/strong&gt; Optimize in-app notification sending performance in workflow scenarios (&lt;a href="https://github.com/nocobase/nocobase/pull/9066" rel="noopener noreferrer"&gt;#9066&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.35" rel="noopener noreferrer"&gt;v2.0.35&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-09&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fixed an issue where the record pickup popup from a sub-table’s selection button could not correctly resolve parent item variable values. (&lt;a href="https://github.com/nocobase/nocobase/pull/8996" rel="noopener noreferrer"&gt;#8996&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection field: Code]&lt;/strong&gt; Correct the UI interface of the code fields (&lt;a href="https://github.com/nocobase/nocobase/pull/9061" rel="noopener noreferrer"&gt;#9061&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&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%2Fow9jd2rkp6w0rmrzuzwl.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%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-alpha.16" rel="noopener noreferrer"&gt;v2.1.0-alpha.16&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-14&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added TOC consistency across localized READMEs (&lt;a href="https://github.com/nocobase/nocobase/pull/9038" rel="noopener noreferrer"&gt;#9038&lt;/a&gt;) by @gaston98765&lt;/li&gt;
&lt;li&gt;Add Table of Contents to French README (&lt;a href="https://github.com/nocobase/nocobase/pull/9037" rel="noopener noreferrer"&gt;#9037&lt;/a&gt;) by @saraTabbane&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[server]&lt;/strong&gt; Improved swagger API docs of plugin manager (&lt;a href="https://github.com/nocobase/nocobase/pull/9080" rel="noopener noreferrer"&gt;#9080&lt;/a&gt;) by @2013xile&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Fixed the issue where error messages were not displayed in the AI employee conversations (&lt;a href="https://github.com/nocobase/nocobase/pull/9097" rel="noopener noreferrer"&gt;#9097&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Access control]&lt;/strong&gt; update acl swagger for mcp server (&lt;a href="https://github.com/nocobase/nocobase/pull/9096" rel="noopener noreferrer"&gt;#9096&lt;/a&gt;) by @Andrew1989Y&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-alpha.15" rel="noopener noreferrer"&gt;v2.1.0-alpha.15&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-10&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Block: Tree]&lt;/strong&gt; Add tree filter block (&lt;a href="https://github.com/nocobase/nocobase/pull/9016" rel="noopener noreferrer"&gt;#9016&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Auth: API keys]&lt;/strong&gt; add &lt;code&gt;pm list&lt;/code&gt; and &lt;code&gt;generate-api-key&lt;/code&gt; commands (&lt;a href="https://github.com/nocobase/nocobase/pull/9076" rel="noopener noreferrer"&gt;#9076&lt;/a&gt;) by @chenos&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added a data query tool and business analysis report tool for AI employees (&lt;a href="https://github.com/nocobase/nocobase/pull/9040" rel="noopener noreferrer"&gt;#9040&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;li&gt;Add an LLIM-based web search tool for AI employees (&lt;a href="https://github.com/nocobase/nocobase/pull/9032" rel="noopener noreferrer"&gt;#9032&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt; support migration command by @chenos&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt; gmail supports sending emails with aliases by @jiannx&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed the problem that many-to-one fields from external data sources cannot be added in the table block (&lt;a href="https://github.com/nocobase/nocobase/pull/9068" rel="noopener noreferrer"&gt;#9068&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fix subtable adds many-to-many field error (&lt;a href="https://github.com/nocobase/nocobase/pull/9070" rel="noopener noreferrer"&gt;#9070&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;Fixed an issue where the record pickup popup from a sub-table’s selection button could not correctly resolve parent item variable values. (&lt;a href="https://github.com/nocobase/nocobase/pull/8996" rel="noopener noreferrer"&gt;#8996&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fixed an issue where an incorrect unsaved changes confirmation message would appear for bulk edit action (&lt;a href="https://github.com/nocobase/nocobase/pull/9054" rel="noopener noreferrer"&gt;#9054&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fixed an issue where an incorrect secondary confirmation popup would appear when submitting the form after creating a record via a popup subtable. (&lt;a href="https://github.com/nocobase/nocobase/pull/9035" rel="noopener noreferrer"&gt;#9035&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fixed the issue where ctx.request could not override the Authorization header. (&lt;a href="https://github.com/nocobase/nocobase/pull/8850" rel="noopener noreferrer"&gt;#8850&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed an issue where some field types were not updated correctly after syncing fields from the database (&lt;a href="https://github.com/nocobase/nocobase/pull/9046" rel="noopener noreferrer"&gt;#9046&lt;/a&gt;) by @2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification manager]&lt;/strong&gt; Optimize in-app notification sending performance in workflow scenarios (&lt;a href="https://github.com/nocobase/nocobase/pull/9066" rel="noopener noreferrer"&gt;#9066&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Code]&lt;/strong&gt; Correct the UI interface of the code fields (&lt;a href="https://github.com/nocobase/nocobase/pull/9061" rel="noopener noreferrer"&gt;#9061&lt;/a&gt;) by @2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: HTTP request node]&lt;/strong&gt; Sanitized workflow request node results to avoid exposing request config, defaulted new nodes to return response data only, and added debug logging for failed requests. (&lt;a href="https://github.com/nocobase/nocobase/pull/9024" rel="noopener noreferrer"&gt;#9024&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the issue where abort AI employees reasonning would cause the service to crash (&lt;a href="https://github.com/nocobase/nocobase/pull/9031" rel="noopener noreferrer"&gt;#9031&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;Fix AI employee document upload failure under subpath access with APP_PUBLIC_PATH configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9034" rel="noopener noreferrer"&gt;#9034&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;Fixed the issue when using Deepseek or MiniMax models on dashscope (&lt;a href="https://github.com/nocobase/nocobase/pull/9033" rel="noopener noreferrer"&gt;#9033&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  About NocoBase
&lt;/h3&gt;

&lt;p&gt;NocoBase is the most extensible AI-powered no-code platform.&lt;br&gt;
Total control. Infinite extensibility. AI collaboration.&lt;br&gt;
Enable your team to adapt quickly and cut costs dramatically.&lt;br&gt;
No years of development. No millions wasted.&lt;br&gt;
Deploy NocoBase in minutes — and take control of everything.&lt;/p&gt;

&lt;p&gt;Discover NocoBase in 3 Minutes!&lt;/p&gt;

&lt;h3&gt;
  
  
  👇 Get NocoBase
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://demo.nocobase.com/new" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://v2.docs.nocobase.com/" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>How to Deliver a Complex OA System in 3 Months with NocoBase</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Wed, 15 Apr 2026 08:10:17 +0000</pubDate>
      <link>https://dev.to/nocobase/how-to-deliver-a-complex-oa-system-in-3-months-with-nocobase-ak</link>
      <guid>https://dev.to/nocobase/how-to-deliver-a-complex-oa-system-in-3-months-with-nocobase-ak</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/deliver-complex-oa-system-nocobase-3-months" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/deliver-complex-oa-system-nocobase-3-months&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidentiality Note&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To protect the privacy and security of the organization and its clients, this case study is presented anonymously. All details are based on a real-world implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context &amp;amp; Constraints
&lt;/h2&gt;

&lt;p&gt;The project was led by a team experienced in enterprise management systems and process-heavy industries such as petrochemicals. They were familiar with environments where requirements are complex, constantly evolving, and operational constraints are strict.&lt;/p&gt;

&lt;p&gt;Historically, they relied on traditional custom development. A project of similar scope would normally take nearly a year from requirement analysis to delivery.&lt;/p&gt;

&lt;p&gt;This time, the client introduced a set of non-negotiable constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Network Isolation&lt;/strong&gt;: The system had to run entirely within an internal network, physically disconnected from the internet&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Sovereignty&lt;/strong&gt;: All data must remain fully under the organization's control&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment Model&lt;/strong&gt;: Only self-hosted / on-premise deployment was acceptable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the same time, the system still needed to support complex workflows, large volumes of data, and integration with existing systems.&lt;/p&gt;

&lt;p&gt;The team needed a foundation that could satisfy strict security requirements while still enabling &lt;strong&gt;fast delivery, continuous iteration, and long-term extensibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;They chose &lt;strong&gt;NocoBase&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution &amp;amp; Implementation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Digitizing Administrative and Financial Workflows
&lt;/h3&gt;

&lt;p&gt;The first phase focused on the most critical and frequently used scenarios: administrative and financial processes.&lt;/p&gt;

&lt;p&gt;Previously, these processes relied heavily on paper forms and manual routing. The team gradually migrated them into a unified system.&lt;/p&gt;

&lt;p&gt;They built nearly &lt;strong&gt;60 modules&lt;/strong&gt; covering daily administrative operations.&lt;/p&gt;

&lt;p&gt;This was not a simple “form digitization” effort. Instead, the team restructured the workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mapped dependencies between processes&lt;/li&gt;
&lt;li&gt;converted implicit offline rules into explicit system logic&lt;/li&gt;
&lt;li&gt;transformed manual decision-making into configurable business rules&lt;/li&gt;
&lt;li&gt;clarified cross-department collaboration paths&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using NocoBase’s data modeling and workflow capabilities, these complex processes were turned into a stable, system-driven operation.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Embedding Budget Control into Workflows
&lt;/h3&gt;

&lt;p&gt;Previously, budget management was handled in Excel, fragmented across departments and only reviewed after spending.&lt;/p&gt;

&lt;p&gt;The team redesigned this by embedding budget logic directly into business processes such as travel, approvals, and reimbursements.&lt;/p&gt;

&lt;p&gt;After implementation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Executives&lt;/strong&gt; gained real-time visibility into overall budget execution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Department heads&lt;/strong&gt; could track usage dynamically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Employees&lt;/strong&gt; could validate budget limits at the time of request submission&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Budget management shifted from &lt;strong&gt;post-hoc reporting&lt;/strong&gt; to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pre-control&lt;/li&gt;
&lt;li&gt;in-process enforcement&lt;/li&gt;
&lt;li&gt;real-time validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was enabled by NocoBase’s ability to integrate business logic directly into workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.Automating Financial Integration with ERP
&lt;/h3&gt;

&lt;p&gt;For reimbursement and financial processing, the team integrated the system with &lt;strong&gt;Yonyou ERP&lt;/strong&gt; through custom plugins.&lt;/p&gt;

&lt;p&gt;Using a built-in transformation engine, the system automatically converted business data (travel requests, loans, tax data, etc.) into financial records compatible with ERP requirements.&lt;/p&gt;

&lt;p&gt;The engine handled complex accounting logic, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VAT splitting&lt;/li&gt;
&lt;li&gt;employee debt offsetting&lt;/li&gt;
&lt;li&gt;department-specific account mapping&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once processed, financial vouchers were automatically generated and pushed to the general ledger.&lt;/p&gt;

&lt;p&gt;This replaced manual entry of approximately &lt;strong&gt;1,400 financial records per month&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The main challenge was not API integration itself, but structuring business logic.&lt;/p&gt;

&lt;p&gt;Using NocoBase’s &lt;a href="https://docs.nocobase.com/data-sources" rel="noopener noreferrer"&gt;data models&lt;/a&gt; and &lt;a href="https://docs.nocobase.com/plugins/" rel="noopener noreferrer"&gt;plugin architecture&lt;/a&gt;, the team transformed manual accounting rules into system-level logic, enabling stable end-to-end automation.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. System Integration &amp;amp; Unified Identity
&lt;/h3&gt;

&lt;p&gt;To support future system expansion, the team first established a unified &lt;a href="https://docs.nocobase.com/auth-verification/auth/" rel="noopener noreferrer"&gt;identity system&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;integrated with existing authentication services&lt;/li&gt;
&lt;li&gt;used NocoBase as the centralized user management layer&lt;/li&gt;
&lt;li&gt;ensured consistency of user data across systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For communication, a private IM system was introduced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;approval and task notifications were pushed directly to IM&lt;/li&gt;
&lt;li&gt;users could access tasks without repeatedly logging into the system&lt;/li&gt;
&lt;li&gt;one-click navigation from message to approval page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This significantly reduced response time and improved operational efficiency.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Iteration in an Air-Gapped Environment
&lt;/h3&gt;

&lt;p&gt;The project was deployed in a fully isolated environment.&lt;/p&gt;

&lt;p&gt;To maintain development efficiency, the team adopted a hybrid approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;development and testing were done externally&lt;/li&gt;
&lt;li&gt;validated configurations were deployed into the internal network&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using NocoBase’s configuration migration mechanism, the system could be deployed as a whole without repeated redevelopment inside the isolated environment.&lt;/p&gt;

&lt;p&gt;This enabled , &lt;a href="https://docs.nocobase.com/ops-management/migration-manager/" rel="noopener noreferrer"&gt;weekly or even faster iteration cycles&lt;/a&gt;despite strict security constraints.&lt;/p&gt;

&lt;h2&gt;
  
  
  Delivery Timeline
&lt;/h2&gt;

&lt;p&gt;The project progressed as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Early September&lt;/strong&gt;: Project kickoff&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mid October&lt;/strong&gt;: Phase 1 requirements finalized&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mid November&lt;/strong&gt;: First batch of administrative modules launched&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mid December&lt;/strong&gt;: Full launch of administrative + financial systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Given the complexity, integration scope, and deployment constraints, this delivery speed was significantly faster than typical enterprise projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparing for AI Integration
&lt;/h2&gt;

&lt;p&gt;After the first phase, the client began exploring AI capabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Invoice automation&lt;/strong&gt;: OCR-based recognition and compliance validation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge retrieval&lt;/strong&gt;: vectorizing internal documents and building a private knowledge base&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The team is currently experimenting with integrating lightweight private models into NocoBase.&lt;/p&gt;

&lt;p&gt;With NocoBase 2.0’s plugin architecture and AI capabilities, AI can be gradually embedded into existing workflows and data structures, making it practical in real business scenarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Outcome
&lt;/h2&gt;

&lt;p&gt;From requirement confirmation to full rollout of administrative and financial systems, the entire project was completed in &lt;strong&gt;3 months&lt;/strong&gt;, representing a &lt;strong&gt;75% reduction in delivery time&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This not only reduced development cost, but also enabled the team to handle multiple complex projects in parallel.&lt;/p&gt;

&lt;p&gt;This case highlights a key point:&lt;/p&gt;

&lt;p&gt;In complex enterprise environments, success depends not only on the platform, but also on the ability to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structure complex workflows&lt;/li&gt;
&lt;li&gt;integrate systems effectively&lt;/li&gt;
&lt;li&gt;formalize business logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NocoBase provides the foundation that makes this possible.&lt;/p&gt;

&lt;p&gt;It allows experienced teams to deliver faster, adapt continuously, and evolve systems over time, even under strict constraints.&lt;/p&gt;

&lt;p&gt;The team plans to join the  &lt;a href="https://www.nocobase.com/en/partner" rel="noopener noreferrer"&gt;NocoBase partner ecosystem&lt;/a&gt; and replicate this delivery model across more enterprise projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More Customer Stories:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/medical-device-manufacturer-builds-self-hosted-management-system-with-nocobase" rel="noopener noreferrer"&gt;Case Study: Digitizing Medical Manufacturing Workflows with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/software-vendor-boosts-delivery-efficiency-with-nocobase" rel="noopener noreferrer"&gt;Software Vendor Boosts Delivery Efficiency by 70% with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/an-erp-built-with-nocobase" rel="noopener noreferrer"&gt;Community Spotlight: Building a Real-World ERP with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/shenzhen-chuanglianyun-tech-development-methodology" rel="noopener noreferrer"&gt;Inside: How an 8-Person Team Delivers at Enterprise Speed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/ai-multimodal-platform" rel="noopener noreferrer"&gt;Built an AI Multimodal R&amp;amp;D Platform in Days — with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/nocobase-in-russia" rel="noopener noreferrer"&gt;NocoBase in Russia: Multi-Scenario Digital Solutions in Action&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/university-course" rel="noopener noreferrer"&gt;NocoBase Enters German University Classrooms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/ed" rel="noopener noreferrer"&gt;NocoBase as ED’s Technology Foundation: From Internal Systems to Commercial Products&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>systems</category>
    </item>
    <item>
      <title>20+ Best Self Hosted Tools for Enterprises with Full Data Control</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Fri, 10 Apr 2026 19:22:30 +0000</pubDate>
      <link>https://dev.to/nocobase/20-best-self-hosted-tools-for-enterprises-with-full-data-control-153e</link>
      <guid>https://dev.to/nocobase/20-best-self-hosted-tools-for-enterprises-with-full-data-control-153e</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/20-best-self-hosted-tools-for-enterprises" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/20-best-self-hosted-tools-for-enterprises&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recently, in a &lt;a href="https://www.reddit.com/r/selfhosted/comments/1opa6qh/looking_for_recommendations_on_selfhosted" rel="noopener noreferrer"&gt;Reddit discussion about self hosted tools for enterprise use&lt;/a&gt;, one team clearly listed its selection criteria: support for Docker / K8s deployment, mature RBAC permissions, complete audit logs, integration with SSO / SAML / LDAP, and as little vendor lock in as possible.&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%2Ffo0gaht40bor3ldob2vs.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%2Ffo0gaht40bor3ldob2vs.png" alt="reddit.png" width="751" height="652"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These requirements are actually very typical.&lt;/p&gt;

&lt;p&gt;For enterprises, the value of self hosting usually comes from having full control over the system as a whole, including the deployment environment, access control, audit records, system integration, backup and recovery, and the freedom to manage operations, maintenance, and upgrades on their own terms.&lt;/p&gt;

&lt;p&gt;As we mentioned before, with AI entering the picture, the self hosted ecosystem is moving into a more practical stage. &lt;a href="https://www.nocobase.com/en/blog/7-self-hosted-ai-tools-build-business-app" rel="noopener noreferrer"&gt;Combining AI with self hosting can genuinely help teams build business systems with intelligent capabilities faster&lt;/a&gt;, and this is also why more companies are starting to look again at the real value of self hosted solutions.&lt;/p&gt;

&lt;p&gt;But when it comes to choosing a tool, AI is only one factor worth looking at. So this article focuses on 6 dimensions that are closer to real enterprise needs, to help you judge more systematically whether a tool is truly suitable for long term use in an enterprise business system environment.&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/self-hsosted-projects-list" rel="noopener noreferrer"&gt;Top 13 self hosted projects by GitHub Stars&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are the 6 main dimensions we focused on in this evaluation of self hosted tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure&lt;/strong&gt;: where it runs, how upgrades work, and whether it supports Docker / K8s&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access control&lt;/strong&gt;: RBAC, SSO, directory sync, and tenant isolation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit and compliance&lt;/strong&gt;: audit logs, admin activity tracking, and compliance integration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data security and recovery&lt;/strong&gt;: backups, monitoring, logs, and disaster recovery&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintainability over time&lt;/strong&gt;: maintenance cost, upgrade complexity, plugin extensibility, and version compatibility&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI readiness&lt;/strong&gt;: whether AI is built in and whether AI can be connected through APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We grouped the self hosted tools mentioned here into 5 categories based on common business scenarios, but these categories do not define hard product boundaries. Platforms like NocoBase are relatively easy to build with and highly flexible, so they are well suited to quickly supporting different business scenarios. That means they are not only internal business system platforms, but can also extend into CRM, ticketing, project management, and many other use cases. The table below gives a quick overview of the general scope of each category.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Business scenario&lt;/th&gt;
&lt;th&gt;Main use&lt;/th&gt;
&lt;th&gt;Representative tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Internal apps and business systems&lt;/td&gt;
&lt;td&gt;Used to build forms, approvals, ledgers, portals, ticketing systems, internal workflows, and more&lt;/td&gt;
&lt;td&gt;NocoBase, Appsmith, ToolJet, Budibase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRM / ERP / operations management&lt;/td&gt;
&lt;td&gt;Used for customer management, sales, inventory, finance, HR, projects, and other clearly defined business modules&lt;/td&gt;
&lt;td&gt;Odoo, ERPNext, Twenty, Dolibarr, NocoBase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Project management / ticketing / service workflows&lt;/td&gt;
&lt;td&gt;Used for project execution, task collaboration, issue routing, after sales support, and service desk management&lt;/td&gt;
&lt;td&gt;Plane, OpenProject, Redmine, Zammad, NocoBase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knowledge base / docs / Wiki&lt;/td&gt;
&lt;td&gt;Used to store SOPs, policy documents, training materials, project knowledge, and team know how&lt;/td&gt;
&lt;td&gt;AppFlowy, Outline, Wiki.js, BookStack, NocoBase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dashboards / BI / data analytics&lt;/td&gt;
&lt;td&gt;Used for reporting, data visualization, metric tracking, logs, and business data display&lt;/td&gt;
&lt;td&gt;Grafana, Metabase, Apache Superset, Lightdash, NocoBase&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  1. Internal apps and business systems
&lt;/h2&gt;

&lt;h3&gt;
  
  
  NocoBase
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;https://www.nocobase.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;https://github.com/nocobase/nocobase&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 22.1k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.nocobase.com/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A self hosted AI no code / low code platform for enterprise apps, internal tools, and many kinds of business systems. It can be used to build CRM, ERP, project management tools, approval systems, ticketing systems, ledgers, portals, and more. It is especially suitable for enterprise IT teams, digital teams, and implementation teams that need to keep expanding data models, permissions, and workflows over 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%2Fowc05kd1lwcyv38y4v27.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%2Fowc05kd1lwcyv38y4v27.png" alt="NocoBase1.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Supports private deployment and can connect to MySQL, PostgreSQL, MongoDB, REST API, GraphQL, and many other data sources. It also supports Docker, Kubernetes, and multi cloud deployment, making it a good fit for enterprise infrastructure environments.&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%2Facm217vfuhox3q1m1ryd.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%2Facm217vfuhox3q1m1ryd.png" alt="NocoBase2.png" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access control: Permissions are very granular. It supports not only role based access, but also record level, field level, and action level control, which makes it well suited to complex business scenarios involving multiple departments and roles.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Supports audit logs, making it suitable for enterprise environments that require admin activity tracking and traceability.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Data stays on the company’s own servers. The code is open source and auditable. It also supports encrypted database transmission and storage, making it easier to fit into existing enterprise security and recovery frameworks.&lt;/li&gt;
&lt;li&gt;Maintainability over time: It uses a data model driven architecture, separating data structure from page presentation, and extends fields, blocks, workflows, permissions, and integrations through plugins. This makes it a good fit for business systems that will keep evolving.&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%2Frhog023g72okbhb8573k.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%2Frhog023g72okbhb8573k.png" alt="NocoBase3.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI readiness: It comes with native AI employees. These do more than help with setup. During actual use, they can understand context based on the current page, data, and schema, and directly perform actions such as querying the database, filling in forms, and updating records. This makes it easier to bring AI into real business workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Appsmith
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.appsmith.com/" rel="noopener noreferrer"&gt;https://www.appsmith.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/appsmithorg/appsmith" rel="noopener noreferrer"&gt;https://github.com/appsmithorg/appsmith&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 39.6k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.appsmith.com/" rel="noopener noreferrer"&gt;https://docs.appsmith.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A developer friendly platform for building internal tools. It is suitable for quickly creating admin panels, approval tools, database front ends, customer support tools, and dashboards. It is a strong fit for technical teams that want to ship internal apps quickly while still keeping code level control.&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%2F2smay45e3rt1ik9g9gd1.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%2F2smay45e3rt1ik9g9gd1.png" alt="Appsmith.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Supports self hosting and air gapped deployment. Its deployment, upgrade, and migration docs are comprehensive, making it easy to fit into an enterprise infrastructure setup.&lt;/li&gt;
&lt;li&gt;Access control: Supports SAML, OIDC, SCIM, and fine grained permissions across apps, workspaces, queries, and other resources.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Supports audit logs and can track important actions such as app creation, editing, login, permission changes, and data source updates.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Backup and recovery paths are clear. appsmithctl can be used for instance backup, database backup, and recovery. Audit logs can also be exported for monitoring and analysis.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Supports Git version control, environment branches, and app migration, making it suitable for continuous iteration and collaborative maintenance.&lt;/li&gt;
&lt;li&gt;AI readiness: Includes Appsmith AI and also supports models such as OpenAI, Anthropic, and Google AI, making it suitable for bringing AI queries and automation into internal applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ToolJet
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.tooljet.ai/" rel="noopener noreferrer"&gt;https://www.tooljet.ai/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/tooljet/tooljet" rel="noopener noreferrer"&gt;https://github.com/tooljet/tooljet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 37.7k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.tooljet.com/" rel="noopener noreferrer"&gt;https://docs.tooljet.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A self hosted platform for building internal tools, business apps, and workflows. It is suitable for admin panels, approval tools, data apps, and automation workflows, especially for technical teams that want to combine internal app development with AI workflows.&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%2Fl4s6phugzvdsuxupig30.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%2Fl4s6phugzvdsuxupig30.png" alt="ToolJet.png" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be self hosted and supports Docker, Kubernetes, and environments such as AWS, GCP, and Azure. Deployment flexibility is high.&lt;/li&gt;
&lt;li&gt;Access control: Provides SSO, RBAC, and fine grained access control, making it suitable for multi user, multi role organizational scenarios.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Provides audit logs and can integrate well with centralized security systems such as SIEM, which is helpful for enterprises that need strong traceability and operational visibility.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Data source credentials can be encrypted, and the platform can be integrated more easily into an enterprise’s existing database, logging, and operations setup.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Can connect to databases, APIs, SaaS apps, and object storage, leaving plenty of room for expansion as internal tools and business apps evolve.&lt;/li&gt;
&lt;li&gt;AI readiness: Can be used for app generation, query building, debugging, and AI agent scenarios, making it suitable for teams that want to bring AI into internal app development and workflow automation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Budibase
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.budibase.com/" rel="noopener noreferrer"&gt;https://www.budibase.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Budibase/budibase" rel="noopener noreferrer"&gt;https://github.com/Budibase/budibase&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 27.8k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.budibase.com/" rel="noopener noreferrer"&gt;https://docs.budibase.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A self hosted internal tool platform suitable for operations, workflow, and lightweight business system scenarios. It is a good fit for teams that want to combine apps, automation, and AI with a relatively low barrier to entry.&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%2Fz8epeu4kf4ztpz3yok29.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%2Fz8epeu4kf4ztpz3yok29.png" alt="Budibase.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be deployed on Docker, Kubernetes, and DigitalOcean. The overall setup path is relatively straightforward.&lt;/li&gt;
&lt;li&gt;Access control: Supports SSO, OIDC, enforced SSO, and user and group management, making it suitable for organization wide use.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Provides audit logs and can track key events during installation, as well as triggered users and source apps.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Supports backup and recovery, and automatically creates backups when apps are published, which makes everyday protection and rollback easier.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Can connect to both built in databases and external data sources, REST APIs, and automation flows, making it suitable for continuous expansion as business needs grow.&lt;/li&gt;
&lt;li&gt;AI readiness: AI can be used in automation steps, text classification, summarization, translation, document extraction, and prompt processing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. CRM / ERP / operations management
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;If a company wants more flexible control over fields, permissions, and workflows around its own business processes, it can also use a business system platform to build a CRM, inventory and operations system, or another customized business application.&lt;/p&gt;

&lt;p&gt;⭐&lt;a href="https://www.nocobase.com/en/solutions/crm-v2" rel="noopener noreferrer"&gt;CRM 2.0 Sales Management System - NocoBase &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://budibase.com/blog/tutorials/how-to-build-a-crm/" rel="noopener noreferrer"&gt;How to Build a CRM with Budibase&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Odoo
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.odoo.com/" rel="noopener noreferrer"&gt;https://www.odoo.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/odoo/odoo" rel="noopener noreferrer"&gt;https://github.com/odoo/odoo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 50k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://www.odoo.com/documentation/19.0/" rel="noopener noreferrer"&gt;https://www.odoo.com/documentation/19.0/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A very full featured business suite that covers CRM, sales, e commerce, inventory, finance, HR, projects, and many other scenarios. It is a strong fit for companies that want one system to support multiple business modules.&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%2Ft4j6mfum8xq1bpgz4ae3.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%2Ft4j6mfum8xq1bpgz4ae3.png" alt="Odoo.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Supports on premises deployment. Installation, production deployment, and upgrade paths are mature, making it suitable for teams with operations capability that want to run core business systems long term.&lt;/li&gt;
&lt;li&gt;Access control: The permission system is quite complete. API calls also respect access permissions, record rules, and field level controls, making it suitable for multi role business collaboration.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Provides admin activity logs, device login records, and other management and operations features that help with operational traceability.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Backup and upgrade processes are clear. In cloud environments, it also provides daily backups and downloadable backups, making it easier to fit into enterprise data protection processes.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Highly modular. You can use it one module at a time or connect multiple modules together. But if there is a lot of customization, cross version upgrades and compatibility planning become more important.&lt;/li&gt;
&lt;li&gt;AI readiness: Already includes native AI apps and Ask AI. It can be configured with models such as OpenAI and Gemini, and can use AI for Q and A, content optimization, field generation, and more.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ERPNext
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://erpnext.com/" rel="noopener noreferrer"&gt;https://erpnext.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/frappe/erpnext" rel="noopener noreferrer"&gt;https://github.com/frappe/erpnext&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 32.8k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.erpnext.com/" rel="noopener noreferrer"&gt;https://docs.erpnext.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: An open source ERP for core operational modules such as finance, inventory, procurement, sales, projects, and HR. It is especially suitable for small and medium sized businesses or teams that want to keep customizing on top of an open source framework.&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%2F77td17z86ip4u9ii8d2s.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%2F77td17z86ip4u9ii8d2s.png" alt="ERPNext.png" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be self hosted and has a mature production deployment path. In official recommendations, production environments lean toward Docker based deployment.&lt;/li&gt;
&lt;li&gt;Access control: Supports role permissions, user permissions, page permissions, and report permissions, and can also connect to identity systems such as OAuth and LDAP.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Includes access logs, activity logs, error logs, scheduled task logs, and other runtime records, which are useful for troubleshooting and traceability.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Logs, backup, recovery, and snapshot mechanisms are all clearly defined, making it suitable for long term use in business environments.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Built on Frappe Framework, with strong support for further development and for extending forms and workflows, making it a good fit for teams that expect to keep evolving their systems.&lt;/li&gt;
&lt;li&gt;AI readiness: Better suited as a business data foundation and integration target for AI. Its REST APIs can directly expose data and methods, making it easy to connect external AI, automation, or intelligent workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Twenty
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://twenty.com/" rel="noopener noreferrer"&gt;https://twenty.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/twentyhq/twenty" rel="noopener noreferrer"&gt;https://github.com/twentyhq/twenty&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 43.7k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.twenty.com/" rel="noopener noreferrer"&gt;https://docs.twenty.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A modern open source CRM for sales leads, customer relationships, workflow automation, and customizable CRM use cases. It is a good fit for teams that want to self host a modern CRM while also valuing user experience and future extensibility.&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%2F33w5oa2rzdjm93ez5m5o.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%2F33w5oa2rzdjm93ez5m5o.png" alt="Twenty.png" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: The self hosted path is straightforward. It supports Docker Compose deployment and both single workspace and multi workspace modes.&lt;/li&gt;
&lt;li&gt;Access control: Includes a role based permission system and supports SSO options such as SAML, Google Workspace, and Microsoft Entra ID, making it suitable for organization wide use.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Permissions, SSO integration, and workspace management are already fairly clear, but it is better understood as a modern CRM with strong organizational access control rather than a compliance focused platform.&lt;/li&gt;
&lt;li&gt;Data security and recovery: The self hosted docs include guidance for backup, recovery, and automated daily backups, and key settings can be centrally managed through environment variables.&lt;/li&gt;
&lt;li&gt;Maintainability over time: In addition to the CRM itself, it offers an Apps extension layer that can support custom objects, fields, logic functions, front end components, and AI skills, giving it strong room for expansion.&lt;/li&gt;
&lt;li&gt;AI readiness: Already includes AI workflows, AI actions, and AI agents for enrichment, classification, summarization, and multistep task execution. AI Chatbot is also on the roadmap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Dolibarr
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.dolibarr.org/" rel="noopener noreferrer"&gt;https://www.dolibarr.org/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Dolibarr/dolibarr" rel="noopener noreferrer"&gt;https://github.com/Dolibarr/dolibarr&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 7.1k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://wiki.dolibarr.org/" rel="noopener noreferrer"&gt;https://wiki.dolibarr.org/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A more traditional all in one ERP + CRM suite, suitable for small and medium sized businesses with limited budgets that want a direct way to manage contacts, quotes, orders, invoices, inventory, and similar business modules.&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%2F8gkaye1qeufpai2q7ajf.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%2F8gkaye1qeufpai2q7ajf.png" alt="Dolibarr.png" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be self hosted. The Docker path is clear, and installation and upgrade docs are fairly complete, making it suitable for teams that want to control their own deployment environment.&lt;/li&gt;
&lt;li&gt;Access control: Supports users, user groups, and permissions as core features, and can also connect to LDAP, OAuth, HTTP authentication, and other identity methods for basic organizational access management.&lt;/li&gt;
&lt;li&gt;Audit and compliance: More basic in this area, mainly focused on user permissions, logs, and some archival modules. If a company has stricter compliance and traceability needs, it will usually need additional tooling.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Backup, recovery, and migration steps are described in detail, and database and document files can be handled separately, making it suitable for basic data protection.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Its modular design is clear, and it also supports REST API, Webhook, and external system integration. Overall, though, it still follows a more traditional ERP / CRM maintenance model.&lt;/li&gt;
&lt;li&gt;AI readiness: Native AI is not its main focus, but it already includes an AI Suite module and can also connect AI, automation platforms, or external workflows through its built in REST API.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Project management / ticketing / service workflows
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;If a team wants to quickly put project collaboration, issue routing, or service support in place, it can directly adopt a mature project management or ticketing system. If it also needs approvals, customer information, asset ledgers, or cross department workflow coordination, it can build the corresponding ticketing or project management system on top of a business system platform.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/en/solutions/project-management" rel="noopener noreferrer"&gt;⭐Comprehensive R&amp;amp;D project management solution - NocoBase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/en/solutions/ticketing-v2" rel="noopener noreferrer"&gt;⭐AI driven intelligent ticketing system - NocoBase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://budibase.com/blog/tutorials/trouble-ticketing-system/" rel="noopener noreferrer"&gt;How to Build a Trouble Ticketing System | Budibase&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Plane
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://plane.so/" rel="noopener noreferrer"&gt;https://plane.so/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/makeplane/plane" rel="noopener noreferrer"&gt;https://github.com/makeplane/plane&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 47.5k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.plane.so/" rel="noopener noreferrer"&gt;https://docs.plane.so/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A modern project management and collaboration platform for product teams, engineering teams, project execution, knowledge collaboration, and task routing. It is well suited to teams that want a strong project management experience together with self hosting and future automation potential.&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%2Fl2p93fdn7p436zu6nudj.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%2Fl2p93fdn7p436zu6nudj.png" alt="Plane.png" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be self hosted and supports Docker, Kubernetes, and air gapped scenarios. It also includes a CLI for upgrades, monitoring, and routine administration.&lt;/li&gt;
&lt;li&gt;Access control: Supports SSO, RBAC, SCIM, LDAP, and other organizational features, making it suitable for multi team and multi workspace setups.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Provides audit logs, encryption, and security documentation. The enterprise edition is more complete for governance and compliance requirements.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Offers clear backup and recovery documentation and also allows backup, monitoring, and log viewing through the CLI, giving it a relatively clear operations path.&lt;/li&gt;
&lt;li&gt;Maintainability over time: In addition to projects and docs, it also includes automation, approval flows, and developer documentation, which makes it suitable for continuously evolving internal project management systems.&lt;/li&gt;
&lt;li&gt;AI readiness: AI is already built into projects, pages, and workflows. It can help structure tasks, generate content, answer questions based on real time data, and let agents work together in context.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/cn/blog/5-most-popular-open-source-ai-project-management-tools-on-github" rel="noopener noreferrer"&gt;5 most popular open source AI project management tools on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenProject
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.openproject.org/" rel="noopener noreferrer"&gt;https://www.openproject.org/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/opf/openproject" rel="noopener noreferrer"&gt;https://github.com/opf/openproject&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 14.8k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://www.openproject.org/docs/" rel="noopener noreferrer"&gt;https://www.openproject.org/docs/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: An open source platform built around mature project management methods. It fits classic, agile, and hybrid project management scenarios, and is especially suitable for organizations that need Gantt charts, task collaboration, time tracking, and cost management.&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%2Fn9gdpwexbntz18y9509t.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%2Fn9gdpwexbntz18y9509t.png" alt="OpenProject.png" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be deployed on local servers or in Docker environments, with complete docs for installation, upgrades, and production operation.&lt;/li&gt;
&lt;li&gt;Access control: Its role and permission system is mature, with clear boundaries for admin, project, and organizational permissions.&lt;/li&gt;
&lt;li&gt;Audit and compliance: It is more of a stable enterprise collaboration platform. Documentation already covers log viewing, GDPR, virus scanning, external file storage, and other management capabilities.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Backup guidance is detailed. Databases, configuration files, attachments, and code repositories are all included in the recommended backup scope, and backups can also be run directly from the admin interface.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Version updates are stable, and the distinction between the community and enterprise editions is clear, making it suitable for long term use as project management infrastructure.&lt;/li&gt;
&lt;li&gt;AI readiness: It is better suited to connecting AI into the project environment through MCP and APIs. At the moment, AI related features are mainly focused on integration and assistance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Redmine
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.redmine.org/" rel="noopener noreferrer"&gt;https://www.redmine.org/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/redmine/redmine" rel="noopener noreferrer"&gt;https://github.com/redmine/redmine&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 5.9k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://www.redmine.org/projects/redmine/wiki" rel="noopener noreferrer"&gt;https://www.redmine.org/projects/redmine/wiki&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A long established and stable project management and issue tracking tool with a rich plugin ecosystem. It is suitable for engineering collaboration, issue handling, time tracking, and traditional project management, especially for technical teams that value stability and customization.&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%2Fbu9zz2poiemos6ogm2r1.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%2Fbu9zz2poiemos6ogm2r1.png" alt="Redmine.png" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Cross platform and cross database, with a relatively traditional deployment style. It is a good fit for teams that already have Ruby on Rails maintenance experience.&lt;/li&gt;
&lt;li&gt;Access control: The role and permission system is one of its core strengths, and workflows can also make fields read only or required.&lt;/li&gt;
&lt;li&gt;Audit and compliance: It focuses more on role and workflow control within project management itself. If strong enterprise grade audit trails are required, plugins or external systems are usually needed to strengthen it. This judgment is based on the fact that the official materials focus mainly on roles, workflows, and plugin extensibility rather than built in enterprise auditing.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Backup and recovery paths are clear, mainly covering the database, attachment directory, and configuration files. Backups are also explicitly recommended before upgrades.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Its long term advantage comes mainly from its mature community and plugin ecosystem. It works well for teams that want to shape it gradually around their own processes, though upgrades and plugin compatibility need to be managed carefully.&lt;/li&gt;
&lt;li&gt;AI readiness: Native AI is not a main direction. It is better suited to bringing AI into existing workflows through REST APIs, plugins, or external automation tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Zammad
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://zammad.com/" rel="noopener noreferrer"&gt;https://zammad.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/zammad/zammad" rel="noopener noreferrer"&gt;https://github.com/zammad/zammad&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 5.5k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.zammad.org/" rel="noopener noreferrer"&gt;https://docs.zammad.org/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: An open source customer support and ticketing platform for after sales support, customer service, multichannel ticket routing, and service desk scenarios. It is especially suitable for teams that want to bring email, chat, phone, and knowledge base functions together in one system.&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%2Fyb4lwbajudgdj6jppnp1.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%2Fyb4lwbajudgdj6jppnp1.png" alt="Zammad.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be self hosted, with deployment options including Docker, Helm Chart, and package installation, giving it a full range of deployment choices.&lt;/li&gt;
&lt;li&gt;Access control: The systems for roles, group permissions, and user permissions are clear, and it can also connect to single sign on methods such as Kerberos, making it suitable for layered management in customer support organizations.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Focuses more on role management, session data, logs, and data retention settings in customer support workflows, making it suitable for traceability and governance in service operations.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Backup and recovery docs are very complete. Package installation and Docker installation each have separate instructions, and migration to a new host is also clearly documented.&lt;/li&gt;
&lt;li&gt;Maintainability over time: In addition to core ticketing features, it also provides documentation for REST API, knowledge base, integrations, and environment variable settings, making it suitable for continuous operation of a support system.&lt;/li&gt;
&lt;li&gt;AI readiness: AI features are already available for summarization, sentiment detection, auto routing, writing assistance, and AI agents. It also gives users considerable freedom in model choice.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Knowledge base / docs / Wiki
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AppFlowy
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://appflowy.com/" rel="noopener noreferrer"&gt;https://appflowy.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/AppFlowy-IO/AppFlowy" rel="noopener noreferrer"&gt;https://github.com/AppFlowy-IO/AppFlowy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 69.4k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://appflowy.com/docs/" rel="noopener noreferrer"&gt;https://appflowy.com/docs/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: An open source docs and knowledge platform built around a collaborative workspace model. It can support projects, tasks, Wiki, and team collaboration, and is especially suitable for teams that value data control, local deployment, and local AI.&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%2Fv3i1wylrgk2eghxa7l5n.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%2Fv3i1wylrgk2eghxa7l5n.png" alt="AppFlowy.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be self hosted and supports local deployment, cloud self hosting, AWS EC2, Coolify, and other rollout paths, making it suitable for teams that want full control over the environment.&lt;/li&gt;
&lt;li&gt;Access control: Team collaboration and external authentication are already supported, and there is also a separate setup path for SAML login. But if highly granular enterprise access control is your top priority, this is not the product in this group that emphasizes it most.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Focuses more on data ownership and private control. Its compliance story is mainly built around self hosting, localized data, and authentication integration.&lt;/li&gt;
&lt;li&gt;Data security and recovery: The self hosted model emphasizes that teams retain control of their own data. Both local deployment and private cloud deployment paths are clear, making it easy to fit into an existing data protection framework.&lt;/li&gt;
&lt;li&gt;Maintainability over time: It is open source, customizable, and able to run long term in your own infrastructure, making it a good fit as a workspace for accumulating knowledge and collaboration content over time.&lt;/li&gt;
&lt;li&gt;AI readiness: Built in AI is a clear part of the product. It can connect to local AI and support file Q and A, RAG retrieval, content generation, and chat within a private workspace.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Outline
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.getoutline.com/" rel="noopener noreferrer"&gt;https://www.getoutline.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/outline/outline" rel="noopener noreferrer"&gt;https://github.com/outline/outline&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 38k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.getoutline.com/" rel="noopener noreferrer"&gt;https://docs.getoutline.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A modern team knowledge base and Wiki platform for internal docs, SOPs, project materials, and shared team knowledge. It is especially suitable for teams that care about writing experience, collaboration speed, and a clean interface.&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%2Fztsyv3iec9yncua1r3wm.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%2Fztsyv3iec9yncua1r3wm.png" alt="Outline.png" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be self hosted and includes complete installation and configuration docs. It can run on GNU/Linux, AWS, and other environments.&lt;/li&gt;
&lt;li&gt;Access control: Permission boundaries are mainly based on collections, documents, users, and groups. It also supports authentication methods such as OIDC and SAML, making it suitable for team level knowledge management.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Document version history and access control are both clear, providing a good record of content changes. Stronger audit logging and SSO support are more complete in higher tier versions.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Export, migration, and cross instance transfer paths are clear. Both collections and entire workspaces can be exported, and JSON exports also support migration.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Its APIs, integrations, and self hosted documentation are all mature, making it suitable for long term use as a knowledge and collaboration system.&lt;/li&gt;
&lt;li&gt;AI readiness: AI Answers is already available, and responses strictly follow the current user’s permissions, making it suitable for secure internal knowledge Q and A.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://js.wiki/" rel="noopener noreferrer"&gt;https://js.wiki/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/requarks/wiki" rel="noopener noreferrer"&gt;https://github.com/requarks/wiki&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 28.1k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.requarks.io/" rel="noopener noreferrer"&gt;https://docs.requarks.io/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: An open source Wiki for technical documentation and organizational knowledge management. It is suitable for policy docs, technical docs, team knowledge bases, and internal sites, and works especially well for teams that value flexible deployment and traditional Wiki functionality.&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%2Fjtr7lc4tx361l0jeok08.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%2Fjtr7lc4tx361l0jeok08.png" alt="Wiki.png" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can run on Linux, macOS, and Windows, and also supports Docker, Kubernetes, and Heroku, making deployment quite flexible.&lt;/li&gt;
&lt;li&gt;Access control: Supports many authentication modules, including LDAP / AD, Keycloak OIDC, SAML 2.0, and CAS, and can also enable 2FA, making it suitable for enterprise login management.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Focuses more on permissions and authentication than on built in compliance tooling. If strong enterprise grade audit trails are required, it usually works best alongside an external logging system. This is based on the fact that the official materials emphasize authentication, storage, and configuration more than built in compliance features.&lt;/li&gt;
&lt;li&gt;Data security and recovery: In addition to standard database based storage, content can also be synced to a Git repository, which is useful for combining versioning, backup, and external storage management.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Configuration options, deployment docs, and upgrade steps are all clear, and it also supports high availability scenarios, making it suitable for long term operation.&lt;/li&gt;
&lt;li&gt;AI readiness: Native AI is not a core focus. It is better suited to connecting AI through APIs, search, or external automation tools within an existing Wiki setup. This is based on the fact that current official materials do not highlight native AI functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  BookStack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.bookstackapp.com/" rel="noopener noreferrer"&gt;https://www.bookstackapp.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/BookStackApp/BookStack" rel="noopener noreferrer"&gt;https://github.com/BookStackApp/BookStack&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 18.6k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://www.bookstackapp.com/docs/" rel="noopener noreferrer"&gt;https://www.bookstackapp.com/docs/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A simple, intuitive, and easy to use self hosted docs / Wiki platform for SOPs, policy docs, training manuals, and internal knowledge. It is especially suitable for teams that want to get started quickly without introducing too much structural complexity.&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%2Fx5mlxpeiyfuebg0ovy43.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%2Fx5mlxpeiyfuebg0ovy43.png" alt="BookStack.png" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Provides manual installation, Docker, Ubuntu scripts, and high availability deployment paths, with a relatively approachable setup experience overall.&lt;/li&gt;
&lt;li&gt;Access control: Supports role based permissions and can connect to LDAP, OIDC, SAML, third party OAuth, and MFA, making it suitable for basic to moderately complex organizational access needs.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Focuses more on account security and permission management, which is suitable for general knowledge base governance. If you need finer grained auditing and stricter compliance workflows, additional surrounding tools are usually needed.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Backup and recovery docs are straightforward, but they mainly rely on command line handling for databases and files, rather than offering a built in one click recovery workflow.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Its purpose is very clear: do documentation well. The upgrade path is stable and the maintenance model is relatively simple, which makes it a good long term option for a lightweight knowledge base.&lt;/li&gt;
&lt;li&gt;AI readiness: Native AI is not a core feature. It is better suited to connecting AI through APIs, external automation workflows, or third party models. At present, BookStack is positioned more clearly as a simple documentation platform.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Dashboards / BI / data analytics
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Grafana
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://grafana.com/" rel="noopener noreferrer"&gt;https://grafana.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/grafana/grafana" rel="noopener noreferrer"&gt;https://github.com/grafana/grafana&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 73.1k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://grafana.com/docs/grafana/latest/" rel="noopener noreferrer"&gt;https://grafana.com/docs/grafana/latest/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A platform for monitoring, logs, tracing, and technical metric visualization. It is suitable for operations dashboards, observability analysis, alerts, and unified views across multiple data sources, especially for technical teams and platform 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%2Fyfzaqgxd8s0mrm7agvmp.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%2Fyfzaqgxd8s0mrm7agvmp.png" alt="Grafana.png" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be self hosted either as a local Grafana instance or through mature Kubernetes management paths, making it easy to fit into an enterprise infrastructure environment.&lt;/li&gt;
&lt;li&gt;Access control: Its permission system is clear and covers server level, organization level, dashboard level, and folder level access, making it suitable for multi team collaboration.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Focuses more on operational governance and access control. The enterprise edition provides more complete security features. If pure business auditing is the priority, this is not the strongest option in that area within this group.&lt;/li&gt;
&lt;li&gt;Data security and recovery: The backup path is very clear. Configuration files, plugin data, and the Grafana database are all included in the official backup recommendations.&lt;/li&gt;
&lt;li&gt;Maintainability over time: Its plugin ecosystem and APIs are both mature, and dashboards and resources can also be managed continuously through Git Sync, Operator, and as code approaches.&lt;/li&gt;
&lt;li&gt;AI readiness: Native AI is currently more associated with Grafana Assistant in Grafana Cloud. In self hosted environments, it is generally better suited to integration through HTTP APIs, plugins, or external intelligent operations workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Metabase
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.metabase.com/" rel="noopener noreferrer"&gt;https://www.metabase.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/metabase/metabase" rel="noopener noreferrer"&gt;https://github.com/metabase/metabase&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 46.8k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://www.metabase.com/docs/latest/" rel="noopener noreferrer"&gt;https://www.metabase.com/docs/latest/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: An easy to use BI and embedded analytics platform for operational reporting, self service analytics, dashboards, and embedded data access. It is especially suitable for teams that want more non technical users to work directly with data.&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%2Fq1wcahf3fibimbg9tuhz.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%2Fq1wcahf3fibimbg9tuhz.png" alt="Metabase.png" width="680" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: The self hosted path is mature, and it can be deployed independently with clear production and upgrade guidance.&lt;/li&gt;
&lt;li&gt;Access control: Its permission system is fairly complete, covering both collection permissions and data permissions. Row and column level security is also available, though more often in Pro / Enterprise scenarios.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Focuses more on data governance and permission boundaries, especially for embedded analytics and multitenant data isolation.&lt;/li&gt;
&lt;li&gt;Data security and recovery: The backup logic is straightforward, with the main priority being backup of the application database. There is also clear recovery and operations guidance around upgrades.&lt;/li&gt;
&lt;li&gt;Maintainability over time: APIs, embedded analytics, and versioned documentation are all mature, making it a solid long term entry point for data analysis.&lt;/li&gt;
&lt;li&gt;AI readiness: It already offers an Agent API that can be used to build headless agentic BI applications on top of Metabase’s semantic layer. It can also connect to external AI through APIs and embedding.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/6-best-open-source-ai-tools-to-build-dashboards" rel="noopener noreferrer"&gt;6 best open source AI dashboard tools&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Apache Superset
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://superset.apache.org/" rel="noopener noreferrer"&gt;https://superset.apache.org/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/apache/superset" rel="noopener noreferrer"&gt;https://github.com/apache/superset&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 72.3k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://superset.apache.org/docs/intro" rel="noopener noreferrer"&gt;https://superset.apache.org/docs/intro&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A modern BI platform for data teams, suitable for multi source analysis, complex charts, SQL exploration, and large scale visualization. It is especially suitable for teams with analytics engineering or data platform capabilities.&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%2Fohwqsgnjyjs5qan9izmh.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%2Fohwqsgnjyjs5qan9izmh.png" alt="Apache Superset.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Has a clear cloud native orientation. Docker Compose is one of the most common official ways to run it, and the platform is designed with scalability in mind.&lt;/li&gt;
&lt;li&gt;Access control: Has a strong authentication and permission system, with fine grained role and access options, making it suitable for multiple teams and complex data access environments.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Leans more toward enterprise security configuration and access governance. Documentation for admin roles, permission boundaries, and security settings is relatively complete.&lt;/li&gt;
&lt;li&gt;Data security and recovery: Relies more on the database layer and operations tooling for backup and recovery. Official guidance clearly recommends managing the metadata database and related infrastructure through mature database services or existing backup strategies.&lt;/li&gt;
&lt;li&gt;Maintainability over time: SQL Lab, the semantic layer, the extension framework, and the APIs are all mature, making it suitable for long term use as a data exploration and visualization platform.&lt;/li&gt;
&lt;li&gt;AI readiness: It can already connect to AI assistants through MCP, allowing users to explore data, build charts, create dashboards, and run SQL in natural language. Its AI capability can also be extended further through existing extension points.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Lightdash
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://www.lightdash.com/" rel="noopener noreferrer"&gt;https://www.lightdash.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/lightdash/lightdash" rel="noopener noreferrer"&gt;https://github.com/lightdash/lightdash&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 5.7k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Official docs&lt;/strong&gt;: &lt;a href="https://docs.lightdash.com/" rel="noopener noreferrer"&gt;https://docs.lightdash.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: A dbt based self service analytics platform for unified metric definitions, semantic layer governance, and business friendly self service analytics. It is especially suitable for modern data teams already using dbt.&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%2Fcg69sj3o7ok3v129rt3f.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%2Fcg69sj3o7ok3v129rt3f.png" alt="Lightdash.png" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key highlights&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure: Can be self hosted. Local setup is straightforward, and there is also a Kubernetes guide for production. Object storage is an important part of self hosted deployment.&lt;/li&gt;
&lt;li&gt;Access control: Space permissions, roles, SSO, SCIM, and user attributes are clearly defined, and user attributes can also be used for row level filtering.&lt;/li&gt;
&lt;li&gt;Audit and compliance: Focuses more on metric governance, permission boundaries, and organizational access control, making it suitable for teams that care about consistent metric definitions and controlled business visibility.&lt;/li&gt;
&lt;li&gt;Data security and recovery: In self hosted deployments, result files and export files are stored in S3 compatible object storage, which makes it easier to fit into existing enterprise storage and operations frameworks.&lt;/li&gt;
&lt;li&gt;Maintainability over time: It is deeply integrated with dbt. Metrics, dimensions, and business logic can all be maintained directly in the dbt project, and the platform can continue evolving through the CLI, GitHub integration, and APIs.&lt;/li&gt;
&lt;li&gt;AI readiness: AI is already part of the core product flow. It can support Q and A, data exploration, semantic layer building, and AI agents working on top of a trusted metric framework.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  If I just want a CRM, is choosing a CRM product directly enough?
&lt;/h3&gt;

&lt;p&gt;If your needs are clear and mainly focused on customer management and sales workflows, then choosing a CRM product directly is usually the simpler option.&lt;/p&gt;

&lt;p&gt;But if you expect to expand later into approvals, ticketing, portals, or cross department workflows, it may be worth considering a more flexible platform early on.&lt;/p&gt;

&lt;h3&gt;
  
  
  If the development team is strong, is a platform for building systems a better fit?
&lt;/h3&gt;

&lt;p&gt;Usually yes. The stronger the development team, the more value it can get from a platform’s strengths in data models, permissions, workflows, and integrations.&lt;/p&gt;

&lt;p&gt;If you plan to keep evolving internal systems over time, a more flexible platform like &lt;strong&gt;NocoBase&lt;/strong&gt; is often worth prioritizing.&lt;/p&gt;

&lt;h3&gt;
  
  
  If the team’s technical capability is average, which type of product should be considered first?
&lt;/h3&gt;

&lt;p&gt;In most cases, it makes more sense to start with mature off the shelf systems such as CRM, ERP, ticketing, Wiki, or BI. These products are usually faster to launch, easier to understand, and better for solving one specific problem first.&lt;/p&gt;

&lt;h3&gt;
  
  
  What level of access control is considered suitable for enterprise use?
&lt;/h3&gt;

&lt;p&gt;For enterprises, access control is not just about account login. You also need to look at role permissions, department permissions, record level permissions, field level permissions, and whether single sign on is supported.&lt;/p&gt;

&lt;p&gt;If the system will handle customer data, approvals, finance, or cross department collaboration, the more granular the permissions, the better. Platforms like &lt;strong&gt;NocoBase&lt;/strong&gt; can support permissions at the &lt;strong&gt;record level, field level, and action level&lt;/strong&gt;, which makes them better suited to complex scenarios such as customers, approvals, finance, and cross department collaboration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Are audit logs and compliance features only something large enterprises need to think about?
&lt;/h3&gt;

&lt;p&gt;No. As soon as a system starts handling customer data, approval records, or multi user collaboration content, auditing and traceability already matter.&lt;/p&gt;

&lt;p&gt;Many products provide &lt;strong&gt;system logs, activity history, or content history&lt;/strong&gt;, which are enough for basic troubleshooting. Platforms like &lt;strong&gt;NocoBase&lt;/strong&gt;, however, provide &lt;strong&gt;full operational audit logs&lt;/strong&gt;, which are better suited to enterprise environments that need admin accountability, clear responsibility boundaries, and compliance support.&lt;/p&gt;

&lt;h3&gt;
  
  
  How should AI capability be evaluated? Does having AI automatically make a product more worth choosing?
&lt;/h3&gt;

&lt;p&gt;Not necessarily. What matters is whether AI can actually be integrated into real business scenarios and work with data, permissions, page context, and workflows in a meaningful way.&lt;/p&gt;

&lt;h3&gt;
  
  
  We already have ERP / CRM. Do we still need an internal app platform?
&lt;/h3&gt;

&lt;p&gt;In many cases, yes. ERP and CRM are better suited to standardized business modules, but companies often still have gaps in approvals, portals, ledgers, and cross system workflows.&lt;/p&gt;

&lt;p&gt;These needs are often better handled by internal app platforms such as &lt;strong&gt;NocoBase&lt;/strong&gt; and &lt;strong&gt;Appsmith&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I hope this article helps you sort through the options and gives you some practical reference. If people around you are also looking at tools like these, feel free to share it with them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/excel-to-web-app-4-methods" rel="noopener noreferrer"&gt;4 Ways to Quickly Build Web Apps from Excel Data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/5-no-code-low-code-platforms-supporting-external-databases-mysql-mongodb-api" rel="noopener noreferrer"&gt;Not Just PostgreSQL: Comparing 5 No-Code/Low-Code Platforms with External Database Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-project-management-tool-selection-guide-2026-edition" rel="noopener noreferrer"&gt;Open Source Project Management Tool Selection Guide, 2026 Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/how-to-build-a-custom-crm-with-postgresql" rel="noopener noreferrer"&gt;How to Build a Custom CRM with PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-open-source-ai-projects-github-2026" rel="noopener noreferrer"&gt;Top 20 AI Projects on GitHub to Watch in 2026: Not Just OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-ai-crm-open-source-nocobase-twenty-krayin" rel="noopener noreferrer"&gt;Best Open Source AI CRM: NocoBase vs Twenty vs Krayin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/top-3-open-source-erp-with-ai-on-github-nocobase-vs-odoo-vs-erpnext" rel="noopener noreferrer"&gt;Top 3 Open Source ERP with AI on GitHub: NocoBase vs Odoo vs ERPNext&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/5-most-popular-open-source-ai-project-management-tools-on-github" rel="noopener noreferrer"&gt;5 Most Popular Open-Source AI Project Management Tools on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/6-best-open-source-ai-ticketing-systems" rel="noopener noreferrer"&gt;6 Best Open-Source AI Ticketing Systems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>Weekly Updates Add an LLIM-based web search tool for AI employees</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Thu, 09 Apr 2026 08:31:14 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updatesadd-an-llim-based-web-search-tool-for-ai-employees-5f4a</link>
      <guid>https://dev.to/nocobase/weekly-updatesadd-an-llim-based-web-search-tool-for-ai-employees-5f4a</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/cn/blog/weekly-updates-20260409" rel="noopener noreferrer"&gt;https://www.nocobase.com/cn/blog/weekly-updates-20260409&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated with three branches: &lt;code&gt;main&lt;/code&gt; , &lt;code&gt;next&lt;/code&gt; and &lt;code&gt;develop&lt;/code&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%2F66qf0fuohv233at2nnzv.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%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;：The most stable version to date, recommended for installation;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;：Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It's mainly for test users to collect feedback and optimize functions further. Ideal for test users who want to experience new features early and give feedback;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;：Alpha version, contains the latest feature code, may be incomplete or unstable, mainly for internal dev and rapid iteration. Suited for tech users interested in product's cutting-edge, but with potential issues and incomplete functions. Not for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&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%2Fgjmnc6cb7az5ofw9t1ip.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%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.34" rel="noopener noreferrer"&gt;v2.0.34&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date:2026-04-09&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Migration manager]&lt;/strong&gt; support migration command by chenos&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.33" rel="noopener noreferrer"&gt;v2.0.33&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date:2026-04-08&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Add an LLIM-based web search tool for AI employees (&lt;a href="https://github.com/nocobase/nocobase/pull/9032" rel="noopener noreferrer"&gt;#9032&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where an incorrect unsaved changes confirmation message would appear for bulk edit action (&lt;a href="https://github.com/nocobase/nocobase/pull/9054" rel="noopener noreferrer"&gt;#9054&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed an issue where an incorrect secondary confirmation popup would appear when submitting the form after creating a record via a popup subtable. (&lt;a href="https://github.com/nocobase/nocobase/pull/9035" rel="noopener noreferrer"&gt;#9035&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed an issue where some field types were not updated correctly after syncing fields from the database (&lt;a href="https://github.com/nocobase/nocobase/pull/9046" rel="noopener noreferrer"&gt;#9046&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Fix AI employee document upload failure under subpath access with APP_PUBLIC_PATH configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9034" rel="noopener noreferrer"&gt;#9034&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.32" rel="noopener noreferrer"&gt;v2.0.32&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date:2026-04-04&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Add table of contents to README (&lt;a href="https://github.com/nocobase/nocobase/pull/8878" rel="noopener noreferrer"&gt;#8878&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;subform relationship field failed to save (&lt;a href="https://github.com/nocobase/nocobase/pull/9004" rel="noopener noreferrer"&gt;#9004&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;the subforms of the fields do not display data (&lt;a href="https://github.com/nocobase/nocobase/pull/9008" rel="noopener noreferrer"&gt;#9008&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed the issue where ctx.request could not override the Authorization header. (&lt;a href="https://github.com/nocobase/nocobase/pull/8850" rel="noopener noreferrer"&gt;#8850&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[server]&lt;/strong&gt; Add serving check to avoid app status updated by non-serving instance (&lt;a href="https://github.com/nocobase/nocobase/pull/8959" rel="noopener noreferrer"&gt;#8959&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the issue when using deepseek or minmax models on dashscope (&lt;a href="https://github.com/nocobase/nocobase/pull/9033" rel="noopener noreferrer"&gt;#9033&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed the issue where abort AI employees reasonning would cause the service to crash (&lt;a href="https://github.com/nocobase/nocobase/pull/9031" rel="noopener noreferrer"&gt;#9031&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: HTTP request node]&lt;/strong&gt; Sanitized workflow request node results to avoid exposing request config, defaulted new nodes to return response data only, and added debug logging for failed requests. (&lt;a href="https://github.com/nocobase/nocobase/pull/9024" rel="noopener noreferrer"&gt;#9024&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Sort]&lt;/strong&gt; fix(field-sort): prevent crash when scopeKey attribute is undefined (&lt;a href="https://github.com/nocobase/nocobase/pull/9019" rel="noopener noreferrer"&gt;#9019&lt;/a&gt;) by gaston98765&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: GridCard]&lt;/strong&gt; Fixed the problem that the button is not refreshed when the grid card is refreshed (&lt;a href="https://github.com/nocobase/nocobase/pull/9021" rel="noopener noreferrer"&gt;#9021&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add fault-tolerant on workflow deleted, to avoid load error in tasks list by mytharcher&lt;/li&gt;
&lt;li&gt;Add fault-tolerant for no &lt;code&gt;latestRound&lt;/code&gt; by mytharcher&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&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%2Fit0xys8cxci7kol0jjde.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%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-beta.13" rel="noopener noreferrer"&gt;v2.1.0-beta.13&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date:2026-04-09&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Migration manager]&lt;/strong&gt; support migration command by chenos&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-beta.12" rel="noopener noreferrer"&gt;v2.1.0-beta.12&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date:2026-04-08&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add js variables to event flow (&lt;a href="https://github.com/nocobase/nocobase/pull/8938" rel="noopener noreferrer"&gt;#8938&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;add JS item action (&lt;a href="https://github.com/nocobase/nocobase/pull/8911" rel="noopener noreferrer"&gt;#8911&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Add an LLIM-based web search tool for AI employees (&lt;a href="https://github.com/nocobase/nocobase/pull/9032" rel="noopener noreferrer"&gt;#9032&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add table of contents to README (&lt;a href="https://github.com/nocobase/nocobase/pull/8878" rel="noopener noreferrer"&gt;#8878&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;li&gt;Reduced log noise during server startup by silencing unzip commands for LibreOffice and Oracle Instant Client (&lt;a href="https://github.com/nocobase/nocobase/pull/8984" rel="noopener noreferrer"&gt;#8984&lt;/a&gt;) by Rishabh1925&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;support setting field styles through runjs (&lt;a href="https://github.com/nocobase/nocobase/pull/8933" rel="noopener noreferrer"&gt;#8933&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Optimize the horizontal layout of form actions (&lt;a href="https://github.com/nocobase/nocobase/pull/8869" rel="noopener noreferrer"&gt;#8869&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Add &lt;code&gt;isolated-vm&lt;/code&gt; as default JavaScript execute engine for JavaScript node (&lt;a href="https://github.com/nocobase/nocobase/pull/8973" rel="noopener noreferrer"&gt;#8973&lt;/a&gt;) by mytharcher&lt;br&gt;&lt;br&gt;
Reference: &lt;a href="https://docs.nocobase.com/cn/workflow/nodes/javascript" rel="noopener noreferrer"&gt;JavaScript Node&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Change enabled switch size to small (&lt;a href="https://github.com/nocobase/nocobase/pull/9010" rel="noopener noreferrer"&gt;#9010&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Add variable for page size parameter (&lt;a href="https://github.com/nocobase/nocobase/pull/8951" rel="noopener noreferrer"&gt;#8951&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Optimize prompts for deepseek when handling unsupported file types (&lt;a href="https://github.com/nocobase/nocobase/pull/9003" rel="noopener noreferrer"&gt;#9003&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Custom request]&lt;/strong&gt; add action models for custom request (&lt;a href="https://github.com/nocobase/nocobase/pull/8890" rel="noopener noreferrer"&gt;#8890&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: administrative divisions of China]&lt;/strong&gt; field-china-region 2.0 (&lt;a href="https://github.com/nocobase/nocobase/pull/8831" rel="noopener noreferrer"&gt;#8831&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Subflow]&lt;/strong&gt; Add defensive logic to avoid workflow hangs when exception occurs by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix JSON field caused performance issue when loading approval records list by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where an incorrect unsaved changes confirmation message would appear for bulk edit action (&lt;a href="https://github.com/nocobase/nocobase/pull/9054" rel="noopener noreferrer"&gt;#9054&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed an issue where an incorrect secondary confirmation popup would appear when submitting the form after creating a record via a popup subtable. (&lt;a href="https://github.com/nocobase/nocobase/pull/9035" rel="noopener noreferrer"&gt;#9035&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed the issue where ctx.request could not override the Authorization header. (&lt;a href="https://github.com/nocobase/nocobase/pull/8850" rel="noopener noreferrer"&gt;#8850&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;subform relationship field failed to save (&lt;a href="https://github.com/nocobase/nocobase/pull/9004" rel="noopener noreferrer"&gt;#9004&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;the subforms of the fields do not display data (&lt;a href="https://github.com/nocobase/nocobase/pull/9008" rel="noopener noreferrer"&gt;#9008&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed the issue where the copy of the associated fields in the table was not displayed correctly in the first rendering. (&lt;a href="https://github.com/nocobase/nocobase/pull/9007" rel="noopener noreferrer"&gt;#9007&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed incorrect secondary confirmation message when closing multi-level popup after modifying form data. (&lt;a href="https://github.com/nocobase/nocobase/pull/8944" rel="noopener noreferrer"&gt;#8944&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fix the issue where space in variable expression cause label not display (&lt;a href="https://github.com/nocobase/nocobase/pull/8988" rel="noopener noreferrer"&gt;#8988&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed the exception when adding child nodes to the tree table in the pop-up window (&lt;a href="https://github.com/nocobase/nocobase/pull/8872" rel="noopener noreferrer"&gt;#8872&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed an issue where some field types were not updated correctly after syncing fields from the database (&lt;a href="https://github.com/nocobase/nocobase/pull/9046" rel="noopener noreferrer"&gt;#9046&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[server]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add serving check to avoid app status updated by non-serving instance (&lt;a href="https://github.com/nocobase/nocobase/pull/8959" rel="noopener noreferrer"&gt;#8959&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Avoid to handle sync-message after app stopped (&lt;a href="https://github.com/nocobase/nocobase/pull/8940" rel="noopener noreferrer"&gt;#8940&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Change close timing of Pub-Sub to &lt;code&gt;beforeStop&lt;/code&gt;, to avoid message sent or handled after database closed (&lt;a href="https://github.com/nocobase/nocobase/pull/8934" rel="noopener noreferrer"&gt;#8934&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix clipped settings menus in popup (&lt;a href="https://github.com/nocobase/nocobase/pull/9005" rel="noopener noreferrer"&gt;#9005&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed an issue where menu items could not be selected when the UI component width in the configuration state was too small. (&lt;a href="https://github.com/nocobase/nocobase/pull/8954" rel="noopener noreferrer"&gt;#8954&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Add js snippets for setting form item and details item (&lt;a href="https://github.com/nocobase/nocobase/pull/8974" rel="noopener noreferrer"&gt;#8974&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Synchronize status to field configuration when form field is deleted (&lt;a href="https://github.com/nocobase/nocobase/pull/8857" rel="noopener noreferrer"&gt;#8857&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt; Use warning instead of error when any of appends parameters invalid (&lt;a href="https://github.com/nocobase/nocobase/pull/8923" rel="noopener noreferrer"&gt;#8923&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[resourcer]&lt;/strong&gt; Fix an issue where external data sources fail to load correctly. (&lt;a href="https://github.com/nocobase/nocobase/pull/8929" rel="noopener noreferrer"&gt;#8929&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix AI employee document upload failure under subpath access with APP_PUBLIC_PATH configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9034" rel="noopener noreferrer"&gt;#9034&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed the issue when using deepseek or minmax models on dashscope (&lt;a href="https://github.com/nocobase/nocobase/pull/9033" rel="noopener noreferrer"&gt;#9033&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed the issue where abort AI employees reasonning would cause the service to crash (&lt;a href="https://github.com/nocobase/nocobase/pull/9031" rel="noopener noreferrer"&gt;#9031&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed the issue of abnormal web search behavior when using the Qwen  LLM (&lt;a href="https://github.com/nocobase/nocobase/pull/9012" rel="noopener noreferrer"&gt;#9012&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Add ownership verification to the AI conversation API (&lt;a href="https://github.com/nocobase/nocobase/pull/8993" rel="noopener noreferrer"&gt;#8993&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Adjust the gap between the tool card components in the AI Conversation (&lt;a href="https://github.com/nocobase/nocobase/pull/8965" rel="noopener noreferrer"&gt;#8965&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: HTTP request node]&lt;/strong&gt; Sanitized workflow request node results to avoid exposing request config, defaulted new nodes to return response data only, and added debug logging for failed requests. (&lt;a href="https://github.com/nocobase/nocobase/pull/9024" rel="noopener noreferrer"&gt;#9024&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Sort]&lt;/strong&gt; fix(field-sort): prevent crash when scopeKey attribute is undefined (&lt;a href="https://github.com/nocobase/nocobase/pull/9019" rel="noopener noreferrer"&gt;#9019&lt;/a&gt;) by gaston98765&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: GridCard]&lt;/strong&gt; Fixed the problem that the button is not refreshed when the grid card is refreshed (&lt;a href="https://github.com/nocobase/nocobase/pull/9021" rel="noopener noreferrer"&gt;#9021&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fix action whitelist for in-app message updates to prevent unauthorized updates by non-owners. (&lt;a href="https://github.com/nocobase/nocobase/pull/9001" rel="noopener noreferrer"&gt;#9001&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: SQL node]&lt;/strong&gt; Fix security issue in SQL node (&lt;a href="https://github.com/nocobase/nocobase/pull/8989" rel="noopener noreferrer"&gt;#8989&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When using variable-based filters, charts fail to resolve variable values correctly on the initial render (&lt;a href="https://github.com/nocobase/nocobase/pull/8964" rel="noopener noreferrer"&gt;#8964&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;fixed the abnormal data statistics of the root role chart after enabling the space plugin (&lt;a href="https://github.com/nocobase/nocobase/pull/8969" rel="noopener noreferrer"&gt;#8969&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import records]&lt;/strong&gt; fixed the problem of import failure after opening plugin-space (&lt;a href="https://github.com/nocobase/nocobase/pull/8968" rel="noopener noreferrer"&gt;#8968&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fix security issues (&lt;a href="https://github.com/nocobase/nocobase/pull/8967" rel="noopener noreferrer"&gt;#8967&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Export records]&lt;/strong&gt; Limit import and export configuration of multi-layer related fields (&lt;a href="https://github.com/nocobase/nocobase/pull/8893" rel="noopener noreferrer"&gt;#8893&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Custom variables]&lt;/strong&gt; skip auth notify (&lt;a href="https://github.com/nocobase/nocobase/pull/8942" rel="noopener noreferrer"&gt;#8942&lt;/a&gt;) by chenos&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Localization]&lt;/strong&gt; prevent localizationTexts:missing request on permission denial (&lt;a href="https://github.com/nocobase/nocobase/pull/8903" rel="noopener noreferrer"&gt;#8903&lt;/a&gt;) by chenos&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Authentication]&lt;/strong&gt; fix acl to support custom state filtering parameters (&lt;a href="https://github.com/nocobase/nocobase/pull/8918" rel="noopener noreferrer"&gt;#8918&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Remove legacy event copied from uiSchema repository to avoid error thrown when triggering (&lt;a href="https://github.com/nocobase/nocobase/pull/8957" rel="noopener noreferrer"&gt;#8957&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;limit import and export configuration of multi-layer related fields by jiannx&lt;/li&gt;
&lt;li&gt;Fix the issue where option of "Trigger workflow" not works when not checked by mytharcher&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External Oracle]&lt;/strong&gt; Fix an error that occurs when loading the Oracle external data source by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix version limit of legacy migrations to avoid error thrown when start in latest version deployment by mytharcher&lt;/li&gt;
&lt;li&gt;Add fault-tolerant on workflow deleted, to avoid load error in tasks list by mytharcher&lt;/li&gt;
&lt;li&gt;Fix translation, node selection, and return target issues in the v2 approval form return button by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Add fault-tolerant for no &lt;code&gt;latestRound&lt;/code&gt; by mytharcher&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed signature being overwritten when using templates by jiannx&lt;/li&gt;
&lt;li&gt;no closing confirmation is displayed after the email is sent by jiannx&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&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%2Fow9jd2rkp6w0rmrzuzwl.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%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-alpha.14" rel="noopener noreferrer"&gt;v2.1.0-alpha.14&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date:2026-04-07&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Add the ability to invoke sub agents for AI employees (&lt;a href="https://github.com/nocobase/nocobase/pull/8935" rel="noopener noreferrer"&gt;#8935&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI: MCP server]&lt;/strong&gt; Provides a generic data collection query API, callable via MCP (&lt;a href="https://github.com/nocobase/nocobase/pull/8985" rel="noopener noreferrer"&gt;#8985&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add table of contents to README (&lt;a href="https://github.com/nocobase/nocobase/pull/8878" rel="noopener noreferrer"&gt;#8878&lt;/a&gt;) by gaston98765&lt;/li&gt;
&lt;li&gt;Reduced log noise during server startup by silencing unzip commands for LibreOffice and Oracle Instant Client (&lt;a href="https://github.com/nocobase/nocobase/pull/8984" rel="noopener noreferrer"&gt;#8984&lt;/a&gt;) by Rishabh1925&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Add new apis for ui building. (&lt;a href="https://github.com/nocobase/nocobase/pull/8992" rel="noopener noreferrer"&gt;#8992&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Change enabled switch size to small (&lt;a href="https://github.com/nocobase/nocobase/pull/9010" rel="noopener noreferrer"&gt;#9010&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Optimize prompts for deepseek when handling unsupported file types (&lt;a href="https://github.com/nocobase/nocobase/pull/9003" rel="noopener noreferrer"&gt;#9003&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Custom request]&lt;/strong&gt; add action models for custom request (&lt;a href="https://github.com/nocobase/nocobase/pull/8890" rel="noopener noreferrer"&gt;#8890&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Add &lt;code&gt;isolated-vm&lt;/code&gt; as default JavaScript execute engine for JavaScript node (&lt;a href="https://github.com/nocobase/nocobase/pull/8973" rel="noopener noreferrer"&gt;#8973&lt;/a&gt;) by mytharcher&lt;br&gt;&lt;br&gt;
Reference: &lt;a href="https://docs.nocobase.com/cn/workflow/nodes/javascript" rel="noopener noreferrer"&gt;JavaScript Node&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[server]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add serving check to avoid app status updated by non-serving instance (&lt;a href="https://github.com/nocobase/nocobase/pull/8959" rel="noopener noreferrer"&gt;#8959&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Support getting the target application by hostname (&lt;a href="https://github.com/nocobase/nocobase/pull/8978" rel="noopener noreferrer"&gt;#8978&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;subform relationship field failed to save (&lt;a href="https://github.com/nocobase/nocobase/pull/9004" rel="noopener noreferrer"&gt;#9004&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;the subforms of the fields do not display data (&lt;a href="https://github.com/nocobase/nocobase/pull/9008" rel="noopener noreferrer"&gt;#9008&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed the issue where the copy of the associated fields in the table was not displayed correctly in the first rendering. (&lt;a href="https://github.com/nocobase/nocobase/pull/9007" rel="noopener noreferrer"&gt;#9007&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed incorrect secondary confirmation message when closing multi-level popup after modifying form data. (&lt;a href="https://github.com/nocobase/nocobase/pull/8944" rel="noopener noreferrer"&gt;#8944&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fix the issue where space in variable expression cause label not display (&lt;a href="https://github.com/nocobase/nocobase/pull/8988" rel="noopener noreferrer"&gt;#8988&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix clipped settings menus in popup (&lt;a href="https://github.com/nocobase/nocobase/pull/9005" rel="noopener noreferrer"&gt;#9005&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed an issue where menu items could not be selected when the UI component width in the configuration state was too small. (&lt;a href="https://github.com/nocobase/nocobase/pull/8954" rel="noopener noreferrer"&gt;#8954&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Add js snippets for setting form item and details item (&lt;a href="https://github.com/nocobase/nocobase/pull/8974" rel="noopener noreferrer"&gt;#8974&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: mailer node]&lt;/strong&gt; Fix validation for variable fields (&lt;a href="https://github.com/nocobase/nocobase/pull/9047" rel="noopener noreferrer"&gt;#9047&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Sort]&lt;/strong&gt; fix(field-sort): prevent crash when scopeKey attribute is undefined (&lt;a href="https://github.com/nocobase/nocobase/pull/9019" rel="noopener noreferrer"&gt;#9019&lt;/a&gt;) by gaston98765&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix the issue where AI employees were unable to use skills (&lt;a href="https://github.com/nocobase/nocobase/pull/9023" rel="noopener noreferrer"&gt;#9023&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fix the issue where the LLM still attempts to load skills after the getSkill tool is disabled (&lt;a href="https://github.com/nocobase/nocobase/pull/9013" rel="noopener noreferrer"&gt;#9013&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed the issue of abnormal web search behavior when using the Qwen  LLM (&lt;a href="https://github.com/nocobase/nocobase/pull/9012" rel="noopener noreferrer"&gt;#9012&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Add ownership verification to the AI conversation API (&lt;a href="https://github.com/nocobase/nocobase/pull/8993" rel="noopener noreferrer"&gt;#8993&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: GridCard]&lt;/strong&gt; Fixed the problem that the button is not refreshed when the grid card is refreshed (&lt;a href="https://github.com/nocobase/nocobase/pull/9021" rel="noopener noreferrer"&gt;#9021&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix incorrect validation rule of condition instruction (&lt;a href="https://github.com/nocobase/nocobase/pull/9017" rel="noopener noreferrer"&gt;#9017&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fix the issue where mode of collection trigger can not be set to "create or update" (&lt;a href="https://github.com/nocobase/nocobase/pull/8980" rel="noopener noreferrer"&gt;#8980&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fix action whitelist for in-app message updates to prevent unauthorized updates by non-owners. (&lt;a href="https://github.com/nocobase/nocobase/pull/9001" rel="noopener noreferrer"&gt;#9001&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Optimized MCP tool naming and reduce redundant API responses to avoid excessive consumption of AI conversation context (&lt;a href="https://github.com/nocobase/nocobase/pull/9000" rel="noopener noreferrer"&gt;#9000&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: SQL node]&lt;/strong&gt; Fix security issue in SQL node (&lt;a href="https://github.com/nocobase/nocobase/pull/8989" rel="noopener noreferrer"&gt;#8989&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; When using variable-based filters, charts fail to resolve variable values correctly on the initial render (&lt;a href="https://github.com/nocobase/nocobase/pull/8964" rel="noopener noreferrer"&gt;#8964&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add fault-tolerant on workflow deleted, to avoid load error in tasks list by mytharcher&lt;/li&gt;
&lt;li&gt;Add fault-tolerant for no &lt;code&gt;latestRound&lt;/code&gt; by mytharcher&lt;/li&gt;
&lt;li&gt;Fix version limit of legacy migrations to avoid error thrown when start in latest version deployment by mytharcher&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt; no closing confirmation is displayed after the email is sent by jiannx&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  About NocoBase
&lt;/h3&gt;

&lt;p&gt;NocoBase is the most extensible AI-powered no-code platform.&lt;br&gt;
Total control. Infinite extensibility. AI collaboration.&lt;br&gt;
Enable your team to adapt quickly and cut costs dramatically.&lt;br&gt;
No years of development. No millions wasted.&lt;br&gt;
Deploy NocoBase in minutes — and take control of everything.&lt;/p&gt;

&lt;p&gt;Discover NocoBase in 3 Minutes!&lt;/p&gt;

&lt;h3&gt;
  
  
  👇 Get NocoBase
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://demo.nocobase.com/new" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://v2.docs.nocobase.com/" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>news</category>
    </item>
    <item>
      <title>4 Ways to Quickly Build Web Apps from Excel Data</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Fri, 03 Apr 2026 13:13:27 +0000</pubDate>
      <link>https://dev.to/nocobase/4-ways-to-quickly-build-web-apps-from-excel-data-420i</link>
      <guid>https://dev.to/nocobase/4-ways-to-quickly-build-web-apps-from-excel-data-420i</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/excel-to-web-app-4-methods" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/excel-to-web-app-4-methods&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Many companies do not start with formal systems for their internal processes.&lt;/p&gt;

&lt;p&gt;As we recently reviewed customer cases, we noticed a very common pattern. In the early stages of a business, or before internal systems are fully in place, many companies rely on Excel to manage customers, track orders, follow projects, handle approvals, and maintain inventory records.&lt;/p&gt;

&lt;p&gt;💡Read more: &lt;a href="https://www.nocobase.com/en/blog/how-to-quickly-build-a-real-system-to-replace-excel" rel="noopener noreferrer"&gt;How to Quickly Build a System to Replace Excel? (Complete Guide)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But as more and more business data and workflow logic are pushed into spreadsheets, Excel’s limitations gradually become harder to ignore. Many spreadsheets that were originally used only for recordkeeping eventually begin to take on part of the role of CRM, ERP, ticketing, or project management tools.&lt;/p&gt;

&lt;p&gt;That is exactly why turning Excel-based workflows into web applications has become a practical need for more and more companies. Still, different approaches fit different business stages, involve different levels of implementation effort, and offer different levels of long-term flexibility. In the following sections, we will walk through several common approaches and look at which one may fit your current stage best.&lt;/p&gt;

&lt;p&gt;💡Featured case: &lt;a href="https://www.nocobase.com/en/blog/medical-device-manufacturer-builds-self-hosted-management-system-with-nocobase" rel="noopener noreferrer"&gt;From Paper to Digital: How This Medical Manufacturer Chose NocoBase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before we get into the details, the table below gives a quick overview of the 4 approaches covered in this article.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Method 1: No-code platform&lt;/th&gt;
&lt;th&gt;Method 2: Online data platform&lt;/th&gt;
&lt;th&gt;Method 3: AI generation tools&lt;/th&gt;
&lt;th&gt;Method 4: Online spreadsheets&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Core focus&lt;/td&gt;
&lt;td&gt;Business system&lt;/td&gt;
&lt;td&gt;Data structure&lt;/td&gt;
&lt;td&gt;App prototypes / pages&lt;/td&gt;
&lt;td&gt;Spreadsheet file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Main goal&lt;/td&gt;
&lt;td&gt;Turn Excel into a formal system&lt;/td&gt;
&lt;td&gt;Move data online and structure it first, then gradually build apps&lt;/td&gt;
&lt;td&gt;Quickly create demos, prototypes, or lightweight apps&lt;/td&gt;
&lt;td&gt;Support online collaborative editing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Typical capabilities&lt;/td&gt;
&lt;td&gt;Data modeling, page building, permissions, workflows, plugin extensions&lt;/td&gt;
&lt;td&gt;Related tables, views, forms, lightweight automation&lt;/td&gt;
&lt;td&gt;Natural language page generation, front-end and back-end scaffolding, rapid iteration&lt;/td&gt;
&lt;td&gt;Sharing, collaboration, comments, basic filtering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Representative tools&lt;/td&gt;
&lt;td&gt;NocoBase, Appsmith, Budibase, ToolJet&lt;/td&gt;
&lt;td&gt;Airtable, Feishu Bitable, Baserow&lt;/td&gt;
&lt;td&gt;Lovable, Bolt, v0&lt;/td&gt;
&lt;td&gt;Excel for the web, Google Sheets, WPS Online Sheets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best for&lt;/td&gt;
&lt;td&gt;Formal business scenarios such as CRM, ERP, ticketing, and project management&lt;/td&gt;
&lt;td&gt;The transition stage from Excel to a more structured system&lt;/td&gt;
&lt;td&gt;Prototype validation, internal demos, rapid experimentation&lt;/td&gt;
&lt;td&gt;Lightweight collaboration and short-term sharing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strengths&lt;/td&gt;
&lt;td&gt;Highly extensible and well suited for long-term use&lt;/td&gt;
&lt;td&gt;Faster to start with and useful for organizing data first&lt;/td&gt;
&lt;td&gt;Fastest to launch and lowest cost for testing ideas&lt;/td&gt;
&lt;td&gt;Easy to learn and the lightest switch from Excel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Limits&lt;/td&gt;
&lt;td&gt;Requires some upfront work to sort out data structure and processes&lt;/td&gt;
&lt;td&gt;Good for transition, but not always suitable for complex business operations&lt;/td&gt;
&lt;td&gt;Not always suitable for complex permissions or long-term maintenance&lt;/td&gt;
&lt;td&gt;Still a spreadsheet at its core, not a formal application&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. →&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt; Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Method 1: Use an extensible no-code platform to turn Excel into a formal business system
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core idea
&lt;/h3&gt;

&lt;p&gt;The core of this approach is to upgrade the business data already stored in Excel into a real web application, instead of continuing to rely on spreadsheets as the main way to run the business.&lt;/p&gt;

&lt;p&gt;Typical tools for this approach include no-code or low-code platforms that support app building, data modeling, permission settings, and workflow extensions, such as NocoBase, Appsmith, Budibase, and ToolJet.&lt;/p&gt;

&lt;p&gt;This article uses NocoBase as the main example because it is designed for building enterprise applications, internal tools, and many kinds of business systems. It also supports private deployment, plugin-based extensions, and long-term system growth.&lt;/p&gt;

&lt;p&gt;Unlike many tools that generate pages directly from spreadsheets, NocoBase is built around a data model driven approach. Data structure and page presentation are separated. You define the data model first, then decide how the pages should appear. The advantage is that as the business continues to grow, the team does not have to stay tied to Excel. Whether you need to optimize your database structure, add table relationships, or connect to other data sources such as MySQL, PostgreSQL, MongoDB, REST API, or GraphQL, the system can keep expanding.&lt;/p&gt;

&lt;p&gt;If this type of platform also includes native AI capabilities, it becomes even more useful for later business upgrades. NocoBase’s AI employee is not just a chat interface. It can understand context based on the current page, data, and table structure, and then perform real actions such as querying data, filling in forms, and updating records. This can be especially valuable for operations, customer service, data analysis, or repetitive workflow tasks.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Related links&lt;/p&gt;

&lt;p&gt;NocoBase official website: &lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;https://www.nocobase.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NocoBase documentation: &lt;a href="https://docs.nocobase.com/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Suitable teams
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Already using Excel to manage customers, orders, projects, tickets, or approval workflows&lt;/li&gt;
&lt;li&gt;Want to upgrade gradually based on existing spreadsheets instead of rebuilding everything from scratch&lt;/li&gt;
&lt;li&gt;Expect to add permissions, workflows, automation, or cross-team collaboration later&lt;/li&gt;
&lt;li&gt;Have requirements around data security, private deployment, or long-term scalability&lt;/li&gt;
&lt;li&gt;Have basic implementation capability, or are willing to sort out the business structure first&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Implementation approach
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Start by creating tables and fields&lt;/strong&gt; Break the customer, order, project, ticket, approval, and other data in Excel into separate tables, then define field types and relationships between the tables.&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%2Fwfwzyp3uaath9qfn49b8.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%2Fwfwzyp3uaath9qfn49b8.png" alt="nocobase1.png" width="800" height="500"&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%2Fmcfisa429dwl089h3r22.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%2Fmcfisa429dwl089h3r22.png" alt="nocobase2.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Then import the Excel data into those tables&lt;/strong&gt; Once the table structure is ready, import the existing Excel data so the records that were scattered across spreadsheets are placed into properly structured tables and fields.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Configure list, form, and detail pages&lt;/strong&gt; After the data is in the system, set up list pages, form pages, and detail pages so the records can be viewed, added, edited, and maintained.&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%2F4xpo413p4ti00wygo1of.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%2F4xpo413p4ti00wygo1of.png" alt="nocobase3.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Configure roles and permissions&lt;/strong&gt; Once the pages are usable, define menu access, action permissions, and data scope by role, so different users can see different content and handle different data.&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%2F30t0v1f4iltbron8yk6k.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%2F30t0v1f4iltbron8yk6k.png" alt="nocobase4.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Add workflows and extension capabilities&lt;/strong&gt; Then add status flows, automatic reminders, process handling, notifications, and any APIs, databases, or AI capabilities you may want to connect later, so the system can truly begin supporting day-to-day business operations.&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%2F6hmp1jsj74uglzknai0s.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%2F6hmp1jsj74uglzknai0s.png" alt="nocobase5.png" width="800" height="500"&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%2F6okzbmblenbsjhuc28zo.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%2F6okzbmblenbsjhuc28zo.png" alt="nocobase6.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Usage limits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It usually requires more upfront work, since you need to sort out the data structure and business processes first&lt;/li&gt;
&lt;li&gt;It does not require heavy coding, but someone still needs to understand data models, page structure, and permission logic&lt;/li&gt;
&lt;li&gt;It is better suited to medium and long-term use, not to quickly building a temporary page&lt;/li&gt;
&lt;li&gt;The software itself may not be the biggest cost. In many cases, the real cost comes from implementation, process design, migration, and ongoing maintenance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎉 &lt;a href="https://docs.nocobase.com/tutorials/v2/" rel="noopener noreferrer"&gt;NocoBase 2.0 Tutorial&lt;/a&gt; is now available. Using a ticketing system as an example, it shows how to build a complete business system from zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method 2: Move data into an online data platform first, then gradually build applications
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core idea
&lt;/h3&gt;

&lt;p&gt;The idea behind this approach is to first move data scattered across spreadsheets into an online, structured platform, and then build views, collaboration features, and lightweight workflows around that data. It works as a transition layer between Excel and a more complete business system. You start by organizing the data clearly, then decide whether to keep evolving it into a fuller application later.&lt;/p&gt;

&lt;p&gt;Suitable tools for this approach usually include online data platforms that support spreadsheet-style management, field settings, multiple views, and basic automation, such as Airtable, Baserow, Coda, and Smartsheet.&lt;br&gt;
💡Read more: &lt;a href="https://www.nocobase.com/en/blog/nocobase-vs-airtable" rel="noopener noreferrer"&gt;NocoBase vs Airtable: A Flexible and Customizable Open-Source Alternative &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For many teams already using online collaboration tools, Airtable is often an easy place to start. On one side, it retains a spreadsheet-style experience, so the learning curve is relatively low. On the other, it also offers fields, views, linked records, and lightweight automation, which makes it a good fit for many lighter business scenarios that were previously handled in Excel.&lt;/p&gt;

&lt;p&gt;It can be used to organize and maintain customer information, project progress, campaign schedules, content management, lead follow-up, simple ticketing, operational records, and similar data. It also supports different views, forms, comments, and basic automation on top of that. For organizations that are not yet ready to build complex systems, but already want to make Excel data more structured and collaborative online, tools like this are often sufficient.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Related links&lt;/p&gt;

&lt;p&gt;Airtable official website: &lt;a href="https://www.airtable.com/" rel="noopener noreferrer"&gt;https://www.airtable.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Airtable documentation: &lt;a href="https://support.airtable.com/" rel="noopener noreferrer"&gt;https://support.airtable.com/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Suitable teams
&lt;/h3&gt;

&lt;p&gt;Already using Excel to manage customers, orders, projects, or operational data, but mainly struggling with sharing and maintenance&lt;br&gt;
Want to move data online and structure it first, then gradually add pages or workflows&lt;br&gt;
Need clearer field management, filtered views, and collaboration methods than Excel can offer&lt;br&gt;
Want to validate a business structure at low cost before deciding whether to move toward a more systematic solution&lt;br&gt;
Currently care more about speed of adoption and collaboration efficiency than building a complete system all at once&lt;/p&gt;

&lt;h3&gt;
  
  
  Implementation approach
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. First import Excel data into Airtable&lt;/strong&gt;&lt;br&gt;
Move your existing customer, order, project, ticket, or operational data into Airtable, so information that was previously scattered across local files becomes shared online tables that multiple people can maintain together.&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%2Fz5u60jmpxsswzbmjpi9z.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%2Fz5u60jmpxsswzbmjpi9z.png" alt="airtable1.png" width="800" height="552"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Then organize fields, views, and table relationships&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After importing, you will usually need to clean up field names, data types, and basic relationships first, then configure views such as Grid, Kanban, Calendar, Gallery, or Form for different users or use cases. This helps the data move beyond a spreadsheet file and become a structure better suited to online collaboration.&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%2F28rsfxx5bpmujk9fffn8.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%2F28rsfxx5bpmujk9fffn8.png" alt="airtable2.png" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Add collaboration and lightweight workflows as needed&lt;/strong&gt;&lt;br&gt;
Once the data structure is relatively stable, you can continue adding comments, reminders, simple automations, lightweight approvals, or Interface pages, allowing the platform to gradually support more collaboration and daily operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usage limits
&lt;/h3&gt;

&lt;p&gt;Better suited to the transition stage of putting data online and structuring it, but not always suitable for complex business operations&lt;br&gt;
As permissions, workflows, and cross-table relationships become more complex, the limits of the platform itself become more visible&lt;br&gt;
Useful for bringing data together first, but not always enough to support the ongoing operation of a complete system&lt;br&gt;
If you later need to connect more complex databases, APIs, business modules, or finer-grained permission controls, another upgrade step is often still needed&lt;/p&gt;

&lt;h2&gt;
  
  
  Method 3: Use AI tools to generate applications or pages directly
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core idea
&lt;/h3&gt;

&lt;p&gt;This approach does not begin by fully sorting out data structures, permissions, and workflows. Instead, it uses natural language to quickly generate pages, prototypes, or simple applications, making it easier to validate ideas and experiment at a lower initial cost.&lt;/p&gt;

&lt;p&gt;Typical tools in this category include Lovable, Bolt, and v0. These are better suited to quickly turning an idea into a page or application that can be viewed, clicked, and revised. Lovable, for example, is a representative tool in this category. It is particularly useful for quickly generating web app prototypes, pages, and lightweight tools through natural language. Based on text descriptions, it can generate front-end interfaces, and it can also work with back-end, database, and authentication features to help create a first version of the application and support later changes and publishing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable teams
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Need to quickly create a demo, prototype, or internal presentation version&lt;/li&gt;
&lt;li&gt;Are still exploring requirements, and many features or workflows are not fully defined yet&lt;/li&gt;
&lt;li&gt;Want to validate page structure, interaction design, or product direction first&lt;/li&gt;
&lt;li&gt;Care more about speed than building a complete system architecture from the beginning&lt;/li&gt;
&lt;li&gt;Have room for experimentation and can accept later rebuilding or migration&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Implementation approach
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Use natural language to generate the first version of the page or app framework&lt;/strong&gt; Start by clearly describing the need in natural language, such as a customer management page, a project tracking dashboard, or a simple internal tool, and generate the first version directly.&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%2Fyoxnoslp7fpp6iviobi7.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%2Fyoxnoslp7fpp6iviobi7.png" alt="Lovable1.png" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Then continue refining fields, interactions, and logic&lt;/strong&gt; Once the first version is generated, keep adding forms, buttons, page structure, and basic interactions step by step so it gets closer to the real scenario you want to validate or present.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Finally use it for validation, demos, or short-term trials&lt;/strong&gt; If the goal is only prototype validation, project proposals, lightweight pages, or a short-term online version, this is often enough. In many cases, the real value of these tools is that they help teams move into discussion and testing much faster.&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%2F7vmkhzxyw1rewktfb6mn.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%2F7vmkhzxyw1rewktfb6mn.png" alt="Lovable2.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Usage limits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Better suited to prototypes, demos, and rapid experimentation, but not always to complex production use&lt;/li&gt;
&lt;li&gt;Page generation is very fast, but data structures, permission systems, and workflow logic often still need substantial follow-up work&lt;/li&gt;
&lt;li&gt;It is easy to create the interface and interaction first, but that does not mean the underlying structure is ready for long-term operation&lt;/li&gt;
&lt;li&gt;If the product later needs to support complex permissions, cross-table relationships, database design, or long-term maintenance, it usually still needs to be redesigned&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡Read more: &lt;a href="https://www.nocobase.com/en/blog/6-developer-tools-with-rbac-support" rel="noopener noreferrer"&gt;Comparison and Use Cases of 6 Development Tools with RBAC Support &lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For many organizations, this approach is better suited to early exploration and validation than to serving directly as the final system form&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Related links&lt;/p&gt;

&lt;p&gt;Lovable official website: &lt;a href="https://lovable.dev/" rel="noopener noreferrer"&gt;https://lovable.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lovable documentation: &lt;a href="https://docs.lovable.dev/" rel="noopener noreferrer"&gt;https://docs.lovable.dev/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Method 4: Use online spreadsheets for sharing and collaboration
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core idea
&lt;/h3&gt;

&lt;p&gt;The purpose of this approach is not to turn Excel into an application or system, but to move spreadsheets online and continue using them for sharing, editing, and collaboration.&lt;/p&gt;

&lt;p&gt;Typical tools in this category include Microsoft Excel for the web, Google Sheets, and WPS Online Sheets. These are essentially online spreadsheets. The work still revolves around the spreadsheet file itself, but it happens in an online environment rather than a local one.&lt;/p&gt;

&lt;p&gt;This article uses Google Sheets as the example. It is better suited to scenarios that do not yet require full system-level transformation, but already need better support for shared access and online collaboration. For teams that are already used to Excel, this approach requires almost no relearning and very little structural redesign, so the switching cost is lower.&lt;/p&gt;

&lt;p&gt;💡Read more: &lt;a href="https://www.nocobase.com/en/blog/the-8-best-google-sheets-alternatives-with-full-cost-and-capability-analysis" rel="noopener noreferrer"&gt;The 8 Best Google Sheets Alternatives with Full Cost and Capability Analysis&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It can support online co-editing, shared links, comments, simple filtering, and basic access control. It is also a practical option for moving routine maintenance spreadsheets online so teams can continue collaborating more easily.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable teams
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mainly need multiple people to share and edit the same spreadsheet at the same time&lt;/li&gt;
&lt;li&gt;Are mostly facing problems such as files being passed around, version confusion, and inconsistent updates&lt;/li&gt;
&lt;li&gt;Do not yet have a clear need for formal system building&lt;/li&gt;
&lt;li&gt;Have relatively simple business logic focused on recording, summarizing, and maintenance&lt;/li&gt;
&lt;li&gt;Care more about low barriers and immediate usability than long-term extensibility or system capability&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Implementation approach
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Import local Excel files into an online environment&lt;/strong&gt; Move the Excel files that were originally stored locally or on a shared drive into an online workspace, so the team can access and maintain them from one shared entry point.&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%2F199fpb0zsnzptldf51j9.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%2F199fpb0zsnzptldf51j9.png" alt="Google Sheets1.png" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Use sharing, permissions, and comments to collaborate&lt;/strong&gt; Replace email attachments and repeated version updates with online sharing, multi-person editing, comment discussions, and real-time syncing, so the most immediate collaboration issues are addressed first.&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%2Fxzg6oyi09t3wnvv62y1m.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%2Fxzg6oyi09t3wnvv62y1m.png" alt="Google Sheets2.png" width="800" height="743"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Add basic management methods as needed&lt;/strong&gt; From there, you can further organize the spreadsheet through worksheets, simple permission settings, filtering, and views, making it easier for multiple people to maintain together.&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%2Fcs9kych0lksfklfk258i.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%2Fcs9kych0lksfklfk258i.png" alt="Google Sheets3.png" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Usage limits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It is still a spreadsheet at its core, not a formal web application&lt;/li&gt;
&lt;li&gt;Better suited to lightweight collaboration and online sharing than to handling complex business processes&lt;/li&gt;
&lt;li&gt;It can solve version control and collaboration issues first, but may not solve deeper problems related to permissions, workflows, or system structure&lt;/li&gt;
&lt;li&gt;For many organizations, this is the lightest first step, but it is usually not the final destination in the move from Excel to systems&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Related links&lt;/p&gt;

&lt;p&gt;Google Sheets official website: &lt;a href="https://workspace.google.com/products/sheets/" rel="noopener noreferrer"&gt;https://workspace.google.com/products/sheets/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google Sheets documentation: &lt;a href="https://support.google.com/docs/?hl=en" rel="noopener noreferrer"&gt;https://support.google.com/docs/?hl=en&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Excel permissions are not detailed enough. What should we switch to?
&lt;/h3&gt;

&lt;p&gt;If you already need to define who can view, edit, or approve, then it may be time to upgrade directly and use a platform like &lt;strong&gt;NocoBase&lt;/strong&gt; to build CRM, ticketing, approval, or internal management systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Are AI app generation tools suitable for formal business systems?
&lt;/h3&gt;

&lt;p&gt;They are better suited to prototypes, demos, MVPs, or early experimentation, and not ideal as the final solution for complex business systems. If you simply want to create a first version quickly, tools like &lt;strong&gt;Lovable&lt;/strong&gt; can work well.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. If multiple Excel sheets need to maintain relationships with each other, which method is more suitable?
&lt;/h3&gt;

&lt;p&gt;If your data has already been split into customer tables, order tables, project tables, and ticket tables, and those relationships need to be maintained continuously, then ordinary spreadsheets are usually no longer enough. In that case, a data model driven platform like &lt;strong&gt;NocoBase&lt;/strong&gt; is a better fit for structured system-level management.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. At what point should Excel users start considering a move to a real system?
&lt;/h3&gt;

&lt;p&gt;Once Excel starts handling multi-person collaboration, permission control, status changes, and cross-table relationships, it is usually a sign that an upgrade is worth considering. If the workflow is already close to CRM, ERP, ticketing, or project management scenarios, then an extensible no-code platform such as &lt;strong&gt;NocoBase&lt;/strong&gt; may be a suitable next step.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. If the requirements are still unclear, which tool is the safest place to start?
&lt;/h3&gt;

&lt;p&gt;If the current goal is simply to organize data online and sort out the structure first, then &lt;strong&gt;Airtable&lt;/strong&gt; or &lt;strong&gt;Feishu Bitable&lt;/strong&gt; would usually be a better starting point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Excel is still an effective tool for many teams in everyday work. But as business needs continue to grow, spreadsheets alone often become less able to support the full workflow. In that situation, introducing more suitable tools or systems is usually the more practical choice. We hope this article gives you a useful reference, and feel free to share it with others who are thinking about the same issue.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/5-no-code-low-code-platforms-supporting-external-databases-mysql-mongodb-api" rel="noopener noreferrer"&gt;Not Just PostgreSQL: Comparing 5 No-Code/Low-Code Platforms with External Database Support &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-project-management-tool-selection-guide-2026-edition" rel="noopener noreferrer"&gt;Open Source Project Management Tool Selection Guide, 2026 Edition &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/how-to-build-a-custom-crm-with-postgresql" rel="noopener noreferrer"&gt;How to Build a Custom CRM with PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-open-source-ai-projects-github-2026" rel="noopener noreferrer"&gt;Top 20 AI Projects on GitHub to Watch in 2026: Not Just OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-ai-crm-open-source-nocobase-twenty-krayin" rel="noopener noreferrer"&gt;Best Open Source AI CRM: NocoBase vs Twenty vs Krayin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/top-3-open-source-erp-with-ai-on-github-nocobase-vs-odoo-vs-erpnext" rel="noopener noreferrer"&gt;Top 3 Open Source ERP with AI on GitHub: NocoBase vs Odoo vs ERPNext&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/5-most-popular-open-source-ai-project-management-tools-on-github" rel="noopener noreferrer"&gt;5 Most Popular Open-Source AI Project Management Tools on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/6-best-open-source-ai-ticketing-systems" rel="noopener noreferrer"&gt;6 Best Open-Source AI Ticketing Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/4-open-source-data-management-tools-for-business-systems" rel="noopener noreferrer"&gt;4 Open Source Data Management Tools for Business Systems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>automation</category>
    </item>
    <item>
      <title>Weekly Updates Add JS variables to event flow</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Thu, 02 Apr 2026 06:41:50 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updatesadd-js-variables-to-event-flow-29dp</link>
      <guid>https://dev.to/nocobase/weekly-updatesadd-js-variables-to-event-flow-29dp</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/weekly-updates-20260402" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/weekly-updates-20260402&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated with three branches: &lt;code&gt;main&lt;/code&gt; , &lt;code&gt;next&lt;/code&gt; and &lt;code&gt;develop&lt;/code&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%2F66qf0fuohv233at2nnzv.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%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;：The most stable version to date, recommended for installation;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;：Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It's mainly for test users to collect feedback and optimize functions further. Ideal for test users who want to experience new features early and give feedback;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;：Alpha version, contains the latest feature code, may be incomplete or unstable, mainly for internal dev and rapid iteration. Suited for tech users interested in product's cutting-edge, but with potential issues and incomplete functions. Not for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&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%2Fgjmnc6cb7az5ofw9t1ip.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%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.31" rel="noopener noreferrer"&gt;v2.0.31&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-04-01&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Optimize prompts for deepseek when handling unsupported file types (&lt;a href="https://github.com/nocobase/nocobase/pull/9003" rel="noopener noreferrer"&gt;#9003&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Change enabled switch size to small (&lt;a href="https://github.com/nocobase/nocobase/pull/9010" rel="noopener noreferrer"&gt;#9010&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fixed the issue where the copy of the associated fields in the table was not displayed correctly in the first rendering. (&lt;a href="https://github.com/nocobase/nocobase/pull/9007" rel="noopener noreferrer"&gt;#9007&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fix clipped settings menus in popup (&lt;a href="https://github.com/nocobase/nocobase/pull/9005" rel="noopener noreferrer"&gt;#9005&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fix action whitelist for in-app message updates to prevent unauthorized updates by non-owners. (&lt;a href="https://github.com/nocobase/nocobase/pull/9001" rel="noopener noreferrer"&gt;#9001&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Fixed the issue of abnormal web search behavior when using the Qwen  LLM (&lt;a href="https://github.com/nocobase/nocobase/pull/9012" rel="noopener noreferrer"&gt;#9012&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.30" rel="noopener noreferrer"&gt;v2.0.30&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-03-30&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Add &lt;code&gt;isolated-vm&lt;/code&gt; as default JavaScript execute engine for JavaScript node (&lt;a href="https://github.com/nocobase/nocobase/pull/8973" rel="noopener noreferrer"&gt;#8973&lt;/a&gt;) by @mytharcher
Reference: &lt;a href="https://docs.nocobase.com/cn/workflow/nodes/javascript" rel="noopener noreferrer"&gt;JavaScript Node&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fixed incorrect secondary confirmation message when closing multi-level popup after modifying form data. (&lt;a href="https://github.com/nocobase/nocobase/pull/8944" rel="noopener noreferrer"&gt;#8944&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: SQL node]&lt;/strong&gt; Fix security issue in SQL node (&lt;a href="https://github.com/nocobase/nocobase/pull/8989" rel="noopener noreferrer"&gt;#8989&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Add ownership verification to the AI conversation API (&lt;a href="https://github.com/nocobase/nocobase/pull/8993" rel="noopener noreferrer"&gt;#8993&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix version limit of legacy migrations to avoid error thrown when start in latest version deployment by @mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.29" rel="noopener noreferrer"&gt;v2.0.29&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-03-30&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Reduced log noise during server startup by silencing unzip commands for LibreOffice and Oracle Instant Client (&lt;a href="https://github.com/nocobase/nocobase/pull/8984" rel="noopener noreferrer"&gt;#8984&lt;/a&gt;) by @Rishabh1925&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fix the issue where space in variable expression cause label not display (&lt;a href="https://github.com/nocobase/nocobase/pull/8988" rel="noopener noreferrer"&gt;#8988&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed an issue where menu items could not be selected when the UI component width in the configuration state was too small. (&lt;a href="https://github.com/nocobase/nocobase/pull/8954" rel="noopener noreferrer"&gt;#8954&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data visualization]&lt;/strong&gt; When using variable-based filters, charts fail to resolve variable values correctly on the initial render (&lt;a href="https://github.com/nocobase/nocobase/pull/8964" rel="noopener noreferrer"&gt;#8964&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.28" rel="noopener noreferrer"&gt;v2.0.28&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-03-27&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Import records]&lt;/strong&gt; fixed the problem of import failure after opening plugin-space (&lt;a href="https://github.com/nocobase/nocobase/pull/8968" rel="noopener noreferrer"&gt;#8968&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data visualization]&lt;/strong&gt; fixed the abnormal data statistics of the root role chart after enabling the space plugin (&lt;a href="https://github.com/nocobase/nocobase/pull/8969" rel="noopener noreferrer"&gt;#8969&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fix security issues (&lt;a href="https://github.com/nocobase/nocobase/pull/8967" rel="noopener noreferrer"&gt;#8967&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Adjust the gap between the tool card components in the AI Conversation (&lt;a href="https://github.com/nocobase/nocobase/pull/8965" rel="noopener noreferrer"&gt;#8965&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records]&lt;/strong&gt; Limit import and export configuration of multi-layer related fields (&lt;a href="https://github.com/nocobase/nocobase/pull/8893" rel="noopener noreferrer"&gt;#8893&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt; limit import and export configuration of multi-layer related fields by @jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.0.27" rel="noopener noreferrer"&gt;v2.0.27&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-03-26&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Add variable for page size parameter (&lt;a href="https://github.com/nocobase/nocobase/pull/8951" rel="noopener noreferrer"&gt;#8951&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Subflow]&lt;/strong&gt; Add defensive logic to avoid workflow hangs when exception occurs by @mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fixed the exception when adding child nodes to the tree table in the pop-up window (&lt;a href="https://github.com/nocobase/nocobase/pull/8872" rel="noopener noreferrer"&gt;#8872&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[server]&lt;/strong&gt; Avoid to handle sync-message after app stopped (&lt;a href="https://github.com/nocobase/nocobase/pull/8940" rel="noopener noreferrer"&gt;#8940&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Flow engine]&lt;/strong&gt; Remove legacy event copied from uiSchema repository to avoid error thrown when triggering (&lt;a href="https://github.com/nocobase/nocobase/pull/8957" rel="noopener noreferrer"&gt;#8957&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Authentication]&lt;/strong&gt; fix acl to support custom state filtering parameters (&lt;a href="https://github.com/nocobase/nocobase/pull/8918" rel="noopener noreferrer"&gt;#8918&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Email manager]&lt;/strong&gt; Fixed signature being overwritten when using templates by @jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&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%2Fow9jd2rkp6w0rmrzuzwl.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%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.0-alpha.13" rel="noopener noreferrer"&gt;v2.1.0-alpha.13&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-03-27&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Add JS variables to event flow (&lt;a href="https://github.com/nocobase/nocobase/pull/8938" rel="noopener noreferrer"&gt;#8938&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; support setting field styles through runjs (&lt;a href="https://github.com/nocobase/nocobase/pull/8933" rel="noopener noreferrer"&gt;#8933&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Improve schema validation for ui building api. (&lt;a href="https://github.com/nocobase/nocobase/pull/8881" rel="noopener noreferrer"&gt;#8881&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Pre-action event]&lt;/strong&gt; Add validation rules for triggers and nodes (&lt;a href="https://github.com/nocobase/nocobase/pull/8971" rel="noopener noreferrer"&gt;#8971&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Add variable for page size parameter (&lt;a href="https://github.com/nocobase/nocobase/pull/8951" rel="noopener noreferrer"&gt;#8951&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Webhook]&lt;/strong&gt; Add validation for creating trigger / node API by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Subflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add validation for creating node API by @mytharcher&lt;/li&gt;
&lt;li&gt;Add defensive logic to avoid workflow hangs when exception occurs by @mytharcher&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Add validation for trigger / node API by @mytharcher&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fixed the exception when adding child nodes to the tree table in the pop-up window (&lt;a href="https://github.com/nocobase/nocobase/pull/8872" rel="noopener noreferrer"&gt;#8872&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[server]&lt;/strong&gt; Avoid to handle sync-message after app stopped (&lt;a href="https://github.com/nocobase/nocobase/pull/8940" rel="noopener noreferrer"&gt;#8940&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records]&lt;/strong&gt; Limit import and export configuration of multi-layer related fields (&lt;a href="https://github.com/nocobase/nocobase/pull/8893" rel="noopener noreferrer"&gt;#8893&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data visualization]&lt;/strong&gt; fixed the abnormal data statistics of the root role chart after enabling the space plugin (&lt;a href="https://github.com/nocobase/nocobase/pull/8969" rel="noopener noreferrer"&gt;#8969&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Import records]&lt;/strong&gt; fixed the problem of import failure after opening plugin-space (&lt;a href="https://github.com/nocobase/nocobase/pull/8968" rel="noopener noreferrer"&gt;#8968&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fix security issues (&lt;a href="https://github.com/nocobase/nocobase/pull/8967" rel="noopener noreferrer"&gt;#8967&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Adjust the gap between the tool card components in the AI Conversation (&lt;a href="https://github.com/nocobase/nocobase/pull/8965" rel="noopener noreferrer"&gt;#8965&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Flow engine]&lt;/strong&gt; Remove legacy event copied from uiSchema repository to avoid error thrown when triggering (&lt;a href="https://github.com/nocobase/nocobase/pull/8957" rel="noopener noreferrer"&gt;#8957&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Authentication]&lt;/strong&gt; fix acl to support custom state filtering parameters (&lt;a href="https://github.com/nocobase/nocobase/pull/8918" rel="noopener noreferrer"&gt;#8918&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt; limit import and export configuration of multi-layer related fields by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Email manager]&lt;/strong&gt; Fixed signature being overwritten when using templates by @jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  About NocoBase
&lt;/h3&gt;

&lt;p&gt;NocoBase is the most extensible AI-powered no-code platform.&lt;br&gt;
Total control. Infinite extensibility. AI collaboration.&lt;br&gt;
Enable your team to adapt quickly and cut costs dramatically.&lt;br&gt;
No years of development. No millions wasted.&lt;br&gt;
Deploy NocoBase in minutes — and take control of everything.&lt;/p&gt;

&lt;p&gt;Discover NocoBase in 3 Minutes!&lt;/p&gt;

&lt;h3&gt;
  
  
  👇 Get NocoBase
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://demo.nocobase.com/new" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://v2.docs.nocobase.com/" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>news</category>
    </item>
    <item>
      <title>Case Study: Digitizing Medical Manufacturing Workflows with NocoBase</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Wed, 01 Apr 2026 12:12:18 +0000</pubDate>
      <link>https://dev.to/nocobase/case-study-digitizing-medical-manufacturing-workflows-with-nocobase-1dp1</link>
      <guid>https://dev.to/nocobase/case-study-digitizing-medical-manufacturing-workflows-with-nocobase-1dp1</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/medical-device-manufacturer-builds-self-hosted-management-system-with-nocobase" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/medical-device-manufacturer-builds-self-hosted-management-system-with-nocobase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidentiality Note:&lt;/strong&gt; To protect the privacy and security of the organization, this study is shared anonymously. The workflows and outcomes described below accurately reflect a real-world implementation in the medical device sector.&lt;/p&gt;




&lt;p&gt;In medical device manufacturing, internal processes require more than just basic management—they demand long-term data retention, rigorous traceability, and audit-ready verification.&lt;/p&gt;

&lt;p&gt;Despite these requirements, many organizations still rely on paper logs and fragmented spreadsheets. A leading medical manufacturer recently moved away from high-cost custom development and rigid SaaS vendors, choosing &lt;strong&gt;NocoBase&lt;/strong&gt; as a flexible foundation to build their own internal management systems.&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%2Fp5b1f8hxuegf1r9g9efj.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%2Fp5b1f8hxuegf1r9g9efj.png" alt="image.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Context &amp;amp; Problem
&lt;/h2&gt;

&lt;p&gt;The IT department at this manufacturing firm faced a common dilemma. They needed to modernize three core operational areas: &lt;strong&gt;Equipment Management&lt;/strong&gt;, &lt;strong&gt;IT Asset Tracking&lt;/strong&gt;, and &lt;strong&gt;Validation Records&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Their constraints were specific:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Regulatory Compliance:&lt;/strong&gt; Data must be traceable and retrievable for long-term audits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security &amp;amp; Sovereignty:&lt;/strong&gt; Due to industry regulations, the systems had to be &lt;strong&gt;self-hosted&lt;/strong&gt; on a private intranet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Development Cost:&lt;/strong&gt; Building from scratch was too resource-intensive, while off-the-shelf SaaS products lacked the necessary local deployment options and flexibility to match their specific business logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Solution: An Open-Source, Self-Hosted Foundation
&lt;/h2&gt;

&lt;p&gt;The team chose NocoBase to balance the control of custom software with the speed of a platform. By opting for an open-source, extensible architecture, they achieved:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Data Sovereignty:&lt;/strong&gt; Full control over their database and application environment on-premise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterative Development:&lt;/strong&gt; Instead of a "big bang" implementation, they built and deployed systems incrementally as business needs evolved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extensibility:&lt;/strong&gt; The ability to adjust data models and workflows without being locked into a vendor's roadmap.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key Implementation Details
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Equipment Management &amp;amp; Knowledge Base
&lt;/h3&gt;

&lt;p&gt;Previously, maintenance logs and acceptance documents were scattered across Excel files and physical folders.&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%2Fuobzi6up6xiozi8iz6jj.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%2Fuobzi6up6xiozi8iz6jj.png" alt="NocoBase1.png" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;System Design:&lt;/strong&gt; The team built a centralized equipment ledger using NocoBase’s &lt;strong&gt;Data sources&lt;/strong&gt; and &lt;strong&gt;Collection&lt;/strong&gt; features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow:&lt;/strong&gt; Every piece of hardware now has a digital twin containing its status, technical manuals, and historical maintenance records.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge Retention:&lt;/strong&gt; They implemented a "Maintenance Wiki" within the system to document common faults and spare-part lifespans, transforming individual technician "know-how" into a searchable corporate asset.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. IT Asset Lifecycle Tracking
&lt;/h3&gt;

&lt;p&gt;Managing hardware like computers and networking gear through paper trails led to frequent discrepancies during audits.&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%2Fd78ge3hjswtu9cwvrv2l.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%2Fd78ge3hjswtu9cwvrv2l.png" alt="NocoBase2.png" width="800" height="451"&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%2Fz3xxj8dtfjvvf8wt7ise.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%2Fz3xxj8dtfjvvf8wt7ise.png" alt="NocoBase3.png" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Model:&lt;/strong&gt; A lifecycle-based model was implemented to track assets from &lt;strong&gt;procurement (inbound)&lt;/strong&gt; to &lt;strong&gt;assignment (transfer)&lt;/strong&gt; and &lt;strong&gt;retirement&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditability:&lt;/strong&gt; By using NocoBase's built-in logging, the IT team can now perform digital inventories and verify the chain of custody for any asset in real-time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Validation Record Management (V&amp;amp;V)
&lt;/h3&gt;

&lt;p&gt;Verification and Validation (V&amp;amp;V) records for equipment and processes are critical in medical manufacturing.&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%2F1mb3dnjfuu8ojfdfjl1z.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%2F1mb3dnjfuu8ojfdfjl1z.png" alt="NocoBase4.png" width="800" height="357"&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%2Fjtu24fc7pgepqlgae77q.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%2Fjtu24fc7pgepqlgae77q.png" alt="NocoBase5.png" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Traceability:&lt;/strong&gt; This module focuses on document collection and versioning. By structuring these records in a unified database, the firm replaced fragmented document storage with a relational system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Permissions (RBAC):&lt;/strong&gt; Using NocoBase’s Role-Based Access Control, they ensured that sensitive validation data is only accessible to authorized QA and technical personnel, meeting internal compliance standards.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Outcome &amp;amp; Impact
&lt;/h2&gt;

&lt;p&gt;By moving from manual processes to a structured digital environment, the manufacturer has established a "single source of truth" for their operations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"In the medical industry, our systems must operate within a private network. By using NocoBase to build our own tools, we ensured operational efficiency while keeping our business data entirely under our own control." — &lt;strong&gt;IT Director&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;This case reflects a common pattern in traditional industries:&lt;/p&gt;

&lt;p&gt;Start by structuring &lt;strong&gt;core operational data and workflows&lt;/strong&gt;, especially those still dependent on manual processes. Once the foundation is stable, systems become &lt;strong&gt;queryable, traceable, and extensible by design&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For enterprise applications, reliability at the data and system level remains the prerequisite. Only after that foundation is in place can more advanced capabilities, such as AI-driven automation, deliver meaningful impact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More Customer Stories:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/software-vendor-boosts-delivery-efficiency-with-nocobase" rel="noopener noreferrer"&gt;Software Vendor Boosts Delivery Efficiency by 70% with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/an-erp-built-with-nocobase" rel="noopener noreferrer"&gt;Community Spotlight: Building a Real-World ERP with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/shenzhen-chuanglianyun-tech-development-methodology" rel="noopener noreferrer"&gt;Inside: How an 8-Person Team Delivers at Enterprise Speed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/ai-multimodal-platform" rel="noopener noreferrer"&gt;Built an AI Multimodal R&amp;amp;D Platform in Days — with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/nocobase-in-russia" rel="noopener noreferrer"&gt;NocoBase in Russia: Multi-Scenario Digital Solutions in Action&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/university-course" rel="noopener noreferrer"&gt;NocoBase Enters German University Classrooms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/ed" rel="noopener noreferrer"&gt;NocoBase as ED’s Technology Foundation: From Internal Systems to Commercial Products&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/classact" rel="noopener noreferrer"&gt;Sub-Second Response at Scale: Classact Runs NocoBase on Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>Not Just PostgreSQL: Comparing 5 No-Code/Low-Code Platforms with External Database Support</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Mon, 30 Mar 2026 17:34:06 +0000</pubDate>
      <link>https://dev.to/nocobase/not-just-postgresql-comparing-5-no-codelow-code-platforms-with-external-database-support-3f5k</link>
      <guid>https://dev.to/nocobase/not-just-postgresql-comparing-5-no-codelow-code-platforms-with-external-database-support-3f5k</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/5-no-code-low-code-platforms-supporting-external-databases-mysql-mongodb-api" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/5-no-code-low-code-platforms-supporting-external-databases-mysql-mongodb-api&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;p&gt;If you need to build a full business system on top of your existing database, such as CRM, ERP, approval workflows, or ticketing, &lt;strong&gt;NocoBase&lt;/strong&gt; is the best fit. It supports multi source data management, cross source relationships, and deep business modeling. If you simply want to build internal tools or admin interfaces quickly, &lt;strong&gt;Retool, Appsmith, and ToolJet&lt;/strong&gt; are easier to adopt. If your main focus is workflow driven applications such as approvals and ticketing, &lt;strong&gt;Budibase&lt;/strong&gt; is a better choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before We Begin
&lt;/h2&gt;

&lt;p&gt;As business needs become more diverse, many teams want to quickly add an application layer on top of their existing data and systems to build internal operating systems such as CRM, ERP, approvals, and ticketing. In this context, no code and low code platforms that can connect flexibly to existing data sources without changing the underlying system have become a priority for many companies.&lt;/p&gt;

&lt;p&gt;We have previously published two types of content around PostgreSQL. One is a practical guide, &lt;a href="https://www.nocobase.com/cn/blog/how-to-build-a-custom-crm-with-postgresql" rel="noopener noreferrer"&gt;How to Build a Usable CRM Based on PostgreSQL&lt;/a&gt;. The other focuses on tool selection, &lt;a href="https://www.nocobase.com/cn/blog/6-no-code-tools-supporting-postgresql" rel="noopener noreferrer"&gt;6 No Code Tools That Support PostgreSQL&lt;/a&gt;, comparing how different platforms support PostgreSQL across areas such as native integration, relationship modeling, and self hosted deployment.&lt;/p&gt;

&lt;p&gt;PostgreSQL is only one common option. Many teams may already be working with MySQL, MariaDB, or MongoDB. In some cases, data is not stored directly in a database at all, but exposed through REST APIs or GraphQL interfaces.&lt;/p&gt;

&lt;p&gt;In this article, we compare several mainstream no code and low code platforms across four key dimensions: support for external data sources and depth of integration, handling of complex business relationships, workflows and permissions, efficiency in building business systems, and long term extensibility.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note: Sources used in this article&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The product capabilities, data source support, and related information covered here are mainly compiled from each product’s official website, official documentation, GitHub repository, and other public materials.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. →&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt; Explore NocoBase on GitHub&lt;/a&gt;]&lt;/p&gt;




&lt;p&gt;For this article, we selected five low code and no code platforms that are drawing strong attention right now:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;NocoBase&lt;/strong&gt;
&lt;/h3&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%2F0hbxq6iw4zc19uqpu5hm.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%2F0hbxq6iw4zc19uqpu5hm.png" alt="nocobase1.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An open source AI no code and low code platform built around a data model driven architecture. It brings complex data relationships, permissions, workflows, and plugin extensions into one unified system foundation, making it well suited for continuously building enterprise applications, internal tools, and complex business systems on top of existing data.&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;https://www.nocobase.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;https://github.com/nocobase/nocobase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Data source documentation: &lt;a href="https://docs.nocobase.com/data-sources/data-source-manager/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/data-sources/data-source-manager/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Retool&lt;/strong&gt;
&lt;/h3&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%2Fznv0obkm0znfz1qzy7j5.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%2Fznv0obkm0znfz1qzy7j5.png" alt="Retool1.png" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An internal tool and operations platform designed for teams. It can quickly combine databases, APIs, workflows, and front end components into usable internal software, making it a good fit for admin panels, operations dashboards, and data tools.&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://retool.com/" rel="noopener noreferrer"&gt;https://retool.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/retool" rel="noopener noreferrer"&gt;https://github.com/retool&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Data source documentation: &lt;a href="https://docs.retool.com/data-sources/" rel="noopener noreferrer"&gt;https://docs.retool.com/data-sources/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Appsmith&lt;/strong&gt;
&lt;/h3&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%2Fqybefps4jwai8ph1akxa.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%2Fqybefps4jwai8ph1akxa.png" alt="Appsmith1.png" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A developer friendly low code front end layer that helps engineering teams build CRUD apps, admin pages, and custom internal tools faster on top of existing databases, APIs, and scripts, while keeping strong control over JavaScript and Git workflows.&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://www.appsmith.com/" rel="noopener noreferrer"&gt;https://www.appsmith.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/appsmithorg/appsmith" rel="noopener noreferrer"&gt;https://github.com/appsmithorg/appsmith&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Data source documentation: &lt;a href="https://docs.appsmith.com/connect-data/overview" rel="noopener noreferrer"&gt;https://docs.appsmith.com/connect-data/overview&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Budibase&lt;/strong&gt;
&lt;/h3&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%2Fq5n3eguijnl1rvq3ivnz.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%2Fq5n3eguijnl1rvq3ivnz.png" alt="Budibase1.png" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Best known for form based, approval based, request based, and workflow driven applications. Its product focus is clearly closer to internal process automation, so it is especially suitable for service requests, ticket routing, approval handling, and data collection.&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://budibase.com/" rel="noopener noreferrer"&gt;https://budibase.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Budibase/budibase" rel="noopener noreferrer"&gt;https://github.com/Budibase/budibase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Data source documentation: &lt;a href="https://docs.budibase.com/docs/data-sources" rel="noopener noreferrer"&gt;https://docs.budibase.com/docs/data-sources&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ToolJet
&lt;/h3&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%2Fx3khgz06zxaimhe0ms53.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%2Fx3khgz06zxaimhe0ms53.png" alt="ToolJet1.png" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A platform focused on multi source connectivity and rapid internal tool building. It supports databases, APIs, SaaS tools, and cloud services, making it a strong choice for teams that need to bring multiple existing systems into one unified interface quickly.&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://www.tooljet.com/" rel="noopener noreferrer"&gt;https://www.tooljet.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/ToolJet/ToolJet" rel="noopener noreferrer"&gt;https://github.com/ToolJet/ToolJet&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Data source documentation: &lt;a href="https://docs.tooljet.com/docs/data-sources/overview/" rel="noopener noreferrer"&gt;https://docs.tooljet.com/docs/data-sources/overview/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. External Data Source Support and Integration Depth
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Supported Data Source Types&lt;/th&gt;
&lt;th&gt;Typical Data Sources&lt;/th&gt;
&lt;th&gt;Integration Depth&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;Relational databases, NoSQL, APIs, file based sources&lt;/td&gt;
&lt;td&gt;MySQL, MariaDB, PostgreSQL, MSSQL, Oracle, KingbaseES, REST API&lt;/td&gt;
&lt;td&gt;More than simple data connection and read or write access. It also supports unified multi source management, cross source relationships, and continued modeling on top of existing data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retool&lt;/td&gt;
&lt;td&gt;Relational databases, NoSQL, data warehouses, APIs&lt;/td&gt;
&lt;td&gt;PostgreSQL, MySQL, MongoDB, Snowflake, BigQuery, REST API, GraphQL, Google Sheets&lt;/td&gt;
&lt;td&gt;More focused on bringing existing data sources into one interface, then using queries, components, and workflows for reading, updating, and orchestration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Appsmith&lt;/td&gt;
&lt;td&gt;Relational databases, NoSQL, search engines, APIs&lt;/td&gt;
&lt;td&gt;PostgreSQL, MySQL, MongoDB, Microsoft SQL Server, Oracle, Redis, Snowflake, GraphQL&lt;/td&gt;
&lt;td&gt;More focused on configuring queries, pages, and interaction logic on top of existing databases and APIs to quickly form an application front end&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budibase&lt;/td&gt;
&lt;td&gt;Relational databases, NoSQL, cache, APIs, object storage&lt;/td&gt;
&lt;td&gt;PostgreSQL, MySQL / MariaDB, MongoDB, MS SQL Server, Oracle, Redis, S3, Google Sheets&lt;/td&gt;
&lt;td&gt;Supports both external data source connections and app building through queries, forms, and workflow configuration, though it still centers mainly on data driven pages and workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet&lt;/td&gt;
&lt;td&gt;Relational databases, NoSQL, data warehouses, APIs, SaaS data sources&lt;/td&gt;
&lt;td&gt;PostgreSQL, MySQL, MongoDB, MS SQL Server, Snowflake, BigQuery, REST API, GraphQL&lt;/td&gt;
&lt;td&gt;More focused on connecting many kinds of data sources for reading, updating, and unified operations, with support for both SQL and visual query building&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Highlights&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Retool, Appsmith, and ToolJet are best suited to quickly adding an operations layer or tool layer on top of existing databases and APIs, so teams can connect, query, and update data more easily&lt;/li&gt;
&lt;li&gt;Budibase goes a step further toward workflow driven applications&lt;/li&gt;
&lt;li&gt;NocoBase is positioned closer to building systems on top of existing data, with stronger extensibility in multi source management, cross source relationships, and continued modeling&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%2F23r4fe78pvzdbp9kri6r.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%2F23r4fe78pvzdbp9kri6r.png" alt="NocoBase2.png" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Complex Business Relationships, Workflows, and Permissions
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Handling Complex Relationships&lt;/th&gt;
&lt;th&gt;Workflows / Automation&lt;/th&gt;
&lt;th&gt;Permission Granularity&lt;/th&gt;
&lt;th&gt;Suitable Business Complexity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;Strong, well suited for multi table relationships and complex business objects&lt;/td&gt;
&lt;td&gt;Built in workflows, supports data driven processes&lt;/td&gt;
&lt;td&gt;Role, action, data, and field level permissions&lt;/td&gt;
&lt;td&gt;Medium to high complexity business systems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retool&lt;/td&gt;
&lt;td&gt;Moderately strong, more focused on internal tool orchestration&lt;/td&gt;
&lt;td&gt;Mature workflows, suitable for multi step tasks&lt;/td&gt;
&lt;td&gt;Role permissions, permission groups, and object level control&lt;/td&gt;
&lt;td&gt;Medium complexity internal software&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Appsmith&lt;/td&gt;
&lt;td&gt;Moderate, with relationship handling relying more on developer configuration&lt;/td&gt;
&lt;td&gt;Supports workflow orchestration through queries, scripts, and events&lt;/td&gt;
&lt;td&gt;Fine grained control at the app, page, and query level&lt;/td&gt;
&lt;td&gt;Medium complexity custom applications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budibase&lt;/td&gt;
&lt;td&gt;Moderate, more focused on forms and workflow relationships&lt;/td&gt;
&lt;td&gt;Well suited for approvals, requests, and status transitions&lt;/td&gt;
&lt;td&gt;Role, dataset, and field level control&lt;/td&gt;
&lt;td&gt;Medium complexity workflow driven applications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet&lt;/td&gt;
&lt;td&gt;Moderate, more focused on tool layer integration&lt;/td&gt;
&lt;td&gt;Supports workflows, conditional logic, and notifications&lt;/td&gt;
&lt;td&gt;Role, workspace, and custom group permissions&lt;/td&gt;
&lt;td&gt;Low to medium complexity tools&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Highlights&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If your business is complex and you want to continue building complete business systems such as CRM, ERP, approvals, or ticketing on top of your existing database, NocoBase is the better fit.&lt;/li&gt;
&lt;li&gt;If your needs are lighter and your priority is to quickly build an internal tool, operations backend, or workflow app, platforms like Retool are easier to adopt.
&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%2Fwlp7lp2cpe65gtckohgn.png" alt="Retool2.png" width="800" height="434"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Efficiency in Building Business Pages
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Page Support&lt;/th&gt;
&lt;th&gt;Build Method&lt;/th&gt;
&lt;th&gt;Code Involvement&lt;/th&gt;
&lt;th&gt;Suitable Scenarios&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;Tables, forms, detail views, kanban boards, charts, action pages&lt;/td&gt;
&lt;td&gt;Block configuration + JS block extension + action configuration + AI employee assisted generation&lt;/td&gt;
&lt;td&gt;Low, with scripts or plugins available for more complex needs&lt;/td&gt;
&lt;td&gt;Data driven business pages and complex backends&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retool&lt;/td&gt;
&lt;td&gt;Tables, forms, charts, panels, admin backends&lt;/td&gt;
&lt;td&gt;Canvas + drag and drop components + code&lt;/td&gt;
&lt;td&gt;Medium, with common scenarios often combining SQL and JS&lt;/td&gt;
&lt;td&gt;Operations consoles, data tools, and internal backends&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Appsmith&lt;/td&gt;
&lt;td&gt;Tables, forms, charts, dashboards, CRUD pages&lt;/td&gt;
&lt;td&gt;Drag and drop components + JS customization&lt;/td&gt;
&lt;td&gt;Medium to high, better suited for developer involvement&lt;/td&gt;
&lt;td&gt;Custom internal apps and developer led pages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budibase&lt;/td&gt;
&lt;td&gt;Forms, tables, approval pages, request pages, backend pages&lt;/td&gt;
&lt;td&gt;Low code configuration + form workflows&lt;/td&gt;
&lt;td&gt;Low to medium, with extra configuration added for complex logic&lt;/td&gt;
&lt;td&gt;Form driven and workflow driven pages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet&lt;/td&gt;
&lt;td&gt;Tables, forms, charts, dashboards, internal tool pages&lt;/td&gt;
&lt;td&gt;Drag and drop front end builder&lt;/td&gt;
&lt;td&gt;Medium, with complex tool pages usually requiring query and event setup&lt;/td&gt;
&lt;td&gt;Multi source tool pages and operations backends&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Highlights&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Retool, Appsmith, and ToolJet&lt;/strong&gt; are a better fit for teams with engineering resources that want to keep room for customization and logic control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budibase&lt;/strong&gt; is better for teams with a lower technical barrier that want to build pages and workflows quickly through configuration.&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%2Fstatic-docs.nocobase.com%2FBudibase2-jzwsgn.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%2Fstatic-docs.nocobase.com%2FBudibase2-jzwsgn.png" alt="Budibase2.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NocoBase&lt;/strong&gt; is more flexible. It supports visual configuration while also lowering the setup barrier further through &lt;strong&gt;JS blocks&lt;/strong&gt; and &lt;strong&gt;AI employees&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Long Term Extensibility
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Extension Method&lt;/th&gt;
&lt;th&gt;Openness&lt;/th&gt;
&lt;th&gt;Long Term Maintainability&lt;/th&gt;
&lt;th&gt;Typical Fit Scenarios&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;Plugin extensions and extending pages, blocks, actions, and APIs around the data model&lt;/td&gt;
&lt;td&gt;High, with a microkernel and fully plugin based architecture&lt;/td&gt;
&lt;td&gt;Strong, suitable for gradual module expansion and long term development&lt;/td&gt;
&lt;td&gt;Complex business systems, workflow driven applications, and enterprise apps under continuous iteration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retool&lt;/td&gt;
&lt;td&gt;Module reuse, custom components, code extensions, version control&lt;/td&gt;
&lt;td&gt;High, with reusable components and queries and support for custom React components&lt;/td&gt;
&lt;td&gt;Strong, suitable for continuous internal software iteration by multiple team members&lt;/td&gt;
&lt;td&gt;Internal software, operations tools, data applications, and continuously evolving projects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Appsmith&lt;/td&gt;
&lt;td&gt;JavaScript customization, custom components, Git workflows, package version management&lt;/td&gt;
&lt;td&gt;High, with room for deep developer involvement&lt;/td&gt;
&lt;td&gt;Strong, but relies more on continued support from the development team&lt;/td&gt;
&lt;td&gt;Custom internal apps, developer led projects, and continuously evolving backend systems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budibase&lt;/td&gt;
&lt;td&gt;Automation, custom plugins, custom data sources, self hosted extensions&lt;/td&gt;
&lt;td&gt;Medium to high, with more flexibility for plugin and data source extension in self hosted environments&lt;/td&gt;
&lt;td&gt;Moderately strong, suitable for gradually expanding workflows and applications&lt;/td&gt;
&lt;td&gt;Workflow driven applications, approval and request systems, and internal operations apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet&lt;/td&gt;
&lt;td&gt;Component configuration, query logic, workflow extensions, custom components&lt;/td&gt;
&lt;td&gt;Medium to high, supports extension but remains more focused on expanding the tool layer&lt;/td&gt;
&lt;td&gt;Medium, suitable for continuing to add pages and integrate more data sources&lt;/td&gt;
&lt;td&gt;Tool based apps, multi system integration, internal backends, and operations tools&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Highlights&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NocoBase has a particularly strong plugin mechanism, making it more suitable for teams that need a high degree of control and deep customization. It also offers more room for ongoing maintenance and continued expansion.&lt;/li&gt;
&lt;li&gt;Appsmith also allows developers to take deeper control of page and logic behavior, and it performs well in long term iteration and customization.&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%2Fux93o7cteo0qsyuqyhma.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%2Fux93o7cteo0qsyuqyhma.png" alt="Appsmith2.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. AI Capabilities
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Current AI Capabilities&lt;/th&gt;
&lt;th&gt;How AI Connects with Business Data / Workflows&lt;/th&gt;
&lt;th&gt;Future AI Integration Potential&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;Built in AI employees, with support for defining AI roles and capabilities in the system based on business needs&lt;/td&gt;
&lt;td&gt;Can understand business context through the current page, data, and table structure, and can directly perform real business actions such as querying databases, filling forms, and updating data&lt;/td&gt;
&lt;td&gt;Strong, well suited for connecting AI directly into existing business systems and workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retool&lt;/td&gt;
&lt;td&gt;Supports AI generated apps, AI generated workflows, and Retool Agents&lt;/td&gt;
&lt;td&gt;Agents can connect to external systems, workflows, and data sources, and can also be called directly from apps or workflows&lt;/td&gt;
&lt;td&gt;Strong, suitable for bringing AI into internal software, workflows, and operational layers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Appsmith&lt;/td&gt;
&lt;td&gt;Provides Appsmith AI query capabilities&lt;/td&gt;
&lt;td&gt;More focused on using AI at the application layer to add text generation, classification, analysis, and similar functions&lt;/td&gt;
&lt;td&gt;Medium to high, suitable for adding AI interaction to existing apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budibase&lt;/td&gt;
&lt;td&gt;Already offers Agents, Agent Chat, and AI automation&lt;/td&gt;
&lt;td&gt;Agents can connect to automation flows and also work with data and tools inside the workspace&lt;/td&gt;
&lt;td&gt;Strong, suitable for bringing AI into approvals, request handling, and workflow driven applications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet&lt;/td&gt;
&lt;td&gt;Supports generating apps, queries, and workflows with natural language, and also offers an OpenAI plugin&lt;/td&gt;
&lt;td&gt;Can use AI to generate applications and then continue building logic with workflows and data sources&lt;/td&gt;
&lt;td&gt;Medium to high, suitable for using AI as a build accelerator and support capability in the tool layer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Highlights&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retool, ToolJet, and Appsmith&lt;/strong&gt; focus their AI capabilities more on app generation, query generation, or development efficiency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Budibase&lt;/strong&gt; is better suited for putting AI directly into business pages and workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase&lt;/strong&gt; can use AI both during setup to lower the configuration barrier and later inside business pages and workflows.&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%2Fcc0ajnudy8rspazzcmsg.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%2Fcc0ajnudy8rspazzcmsg.png" alt="NocoBase3.png" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;NocoBase&lt;/strong&gt; is centered on a data model and plugin architecture. It supports a wide range of external data sources and is especially well suited for continuing to build more complete business systems such as CRM, ERP, approvals, and ticketing on top of existing databases. It is also positioned to bring AI into the system over time. If you have a technical team and want deeper control and customization on top of your existing data, NocoBase is the stronger choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retool&lt;/strong&gt; is a strong option for quickly connecting databases, APIs, and workflows into an internal operations layer. Its main advantage is the delivery speed of internal software, operations backends, and data tools. If your priority is to build a usable internal system quickly and your team already has some development capability, Retool will likely feel more efficient. Its official website also emphasizes connecting data, systems, and rules to build internal software, with support for databases, APIs, workflows, and version control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Appsmith&lt;/strong&gt; is more of a developer friendly low code front end layer, making it a good fit for quickly building custom internal apps on top of existing databases and APIs. If your team wants to keep strong control over JavaScript, custom components, and Git workflows, Appsmith is more suitable. Its official positioning is also that of an open source low code application platform that enables developers to build custom applications on top of existing systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Budibase&lt;/strong&gt; is a better fit for forms, approvals, request handling, and workflow driven applications. Its strength lies in helping teams organize internal applications more quickly around data and workflows. If your technical threshold is lower and your focus is on approvals, ticketing, and operational workflows, Budibase will feel more natural. Its official website also places internal tools, workflows, and business process automation at the center.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ToolJet&lt;/strong&gt; can connect databases, APIs, and third party systems into a unified tool layer interface. Its key advantage lies in building enterprise internal tools across multiple data sources. If your needs focus more on multi system integration, operations backends, or tool based apps, ToolJet is a more direct option. Its official website positions it as a platform for quickly building enterprise applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  If we care more about complex business relationships, not just simple CRUD, which platform should we focus on?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;NocoBase.&lt;/strong&gt; If your business involves many multi table relationships, related objects, role differences, and business actions, NocoBase is better suited for continuing to build the system around the data model.&lt;/p&gt;

&lt;h3&gt;
  
  
  If we have more than one data source, with databases and APIs mixed together, what should we pay most attention to when choosing?
&lt;/h3&gt;

&lt;p&gt;Whether the platform supports &lt;strong&gt;multiple data sources at the same time&lt;/strong&gt;, whether it can connect both databases and APIs together, whether pages and workflows become harder to maintain as more data sources are added, and whether it stays easy to connect new sources later.&lt;/p&gt;

&lt;h3&gt;
  
  
  If our database will continue to add fields, add tables, or even change relationships later, what should we look at when choosing a platform?
&lt;/h3&gt;

&lt;p&gt;The key is whether the platform’s data layer and page layer are tightly bound together. In this kind of scenario, a &lt;strong&gt;data model driven&lt;/strong&gt; platform is usually more suitable, such as NocoBase. When the data structure changes, pages, workflows, and permissions are easier to adjust and carry forward.&lt;/p&gt;

&lt;h3&gt;
  
  
  If we only want to build an admin backend or internal tool first, and then gradually add approvals, ticketing, and more modules later, how should we choose?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Retool&lt;/strong&gt; is better suited for first turning an existing database into a tool layer or operations interface, so you can quickly build admin backends, data tools, and internal apps. &lt;strong&gt;NocoBase&lt;/strong&gt; is more suitable if you want to keep adding workflows, permissions, and modules over time. If you already know the project will eventually grow into a more complete business system, then a platform like &lt;strong&gt;NocoBase&lt;/strong&gt; that is better at supporting business structure is the more recommended choice.&lt;/p&gt;

&lt;h3&gt;
  
  
  If my needs are mainly workflow driven applications such as approvals, request handling, and ticket routing, what should I choose?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Budibase&lt;/strong&gt;. In this kind of application, the database is more of a foundational data source. What really shapes the user experience is usually the platform’s support for forms, status transitions, workflow automation, and permission settings.&lt;/p&gt;

&lt;h3&gt;
  
  
  My team already knows JavaScript, and we also want developers to lead page and logic control. What kind of platform is suitable?
&lt;/h3&gt;

&lt;p&gt;If your team already has front end or JavaScript capability and wants developers to stay in control of pages, queries, and interaction logic, then platforms like &lt;strong&gt;Appsmith&lt;/strong&gt; and &lt;strong&gt;Retool&lt;/strong&gt; are a better fit. These products are usually more suitable for developer led internal tools, operations consoles, and custom pages built on top of existing databases and APIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can use the official websites, documentation, and data source links collected in this article to further review how each platform supports your current data sources. Once you confirm that your data sources can be connected smoothly, you can then choose the platform that best fits your business workflows, page requirements, and future expansion plans.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-project-management-tool-selection-guide-2026-edition" rel="noopener noreferrer"&gt;Open Source Project Management Tool Selection Guide, 2026 Edition &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/how-to-build-a-custom-crm-with-postgresql" rel="noopener noreferrer"&gt;How to Build a Custom CRM with PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-open-source-ai-projects-github-2026" rel="noopener noreferrer"&gt;Top 20 AI Projects on GitHub to Watch in 2026: Not Just OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/best-ai-crm-open-source-nocobase-twenty-krayin" rel="noopener noreferrer"&gt;Best Open Source AI CRM: NocoBase vs Twenty vs Krayin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/top-3-open-source-erp-with-ai-on-github-nocobase-vs-odoo-vs-erpnext" rel="noopener noreferrer"&gt;Top 3 Open Source ERP with AI on GitHub: NocoBase vs Odoo vs ERPNext&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/5-most-popular-open-source-ai-project-management-tools-on-github" rel="noopener noreferrer"&gt;5 Most Popular Open-Source AI Project Management Tools on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/6-best-open-source-ai-ticketing-systems" rel="noopener noreferrer"&gt;6 Best Open-Source AI Ticketing Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/4-open-source-data-management-tools-for-business-systems" rel="noopener noreferrer"&gt;4 Open Source Data Management Tools for Business Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/4-lightweight-enterprise-software-for-business-processes" rel="noopener noreferrer"&gt;4 Lightweight Enterprise Software for Business Processes (With Real-World Cases)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>postgressql</category>
    </item>
    <item>
      <title>NocoBase 2.0 Beginner Tutorial - Chapter 7: Dashboard</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Sat, 28 Mar 2026 16:23:32 +0000</pubDate>
      <link>https://dev.to/nocobase/nocobase-20-beginner-tutorial-chapter-7-dashboard-4ffo</link>
      <guid>https://dev.to/nocobase/nocobase-20-beginner-tutorial-chapter-7-dashboard-4ffo</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://docs.nocobase.com/tutorials/v2/07-dashboard" rel="noopener noreferrer"&gt;https://docs.nocobase.com/tutorials/v2/07-dashboard&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Chapter 7: Dashboard — The Big Picture at a Glance
&lt;/h1&gt;

&lt;p&gt;In the last chapter, we used workflows to make the system send notifications and record timestamps automatically. The system is getting smarter, but we're still missing one thing — &lt;strong&gt;a bird's-eye view&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;How many tickets are there? How many have been resolved? Which category has the most issues? How many new tickets come in each day? You can't answer these questions by scrolling through a list. In this chapter, we'll use &lt;a href="https://dev.to/data-visualization"&gt;chart blocks&lt;/a&gt; (pie, line, bar charts) and &lt;a href="https://dev.to/interface-builder/blocks/other/markdown"&gt;Markdown blocks&lt;/a&gt; to build a &lt;strong&gt;data dashboard&lt;/strong&gt; that turns raw data into something you can understand at a glance.&lt;/p&gt;

&lt;h2&gt;
  
  
  7.1 Adding a Dashboard Page
&lt;/h2&gt;

&lt;p&gt;First, let's add a new &lt;a href="https://dev.to/interface-builder/menus"&gt;menu&lt;/a&gt; item to the top navigation bar.&lt;/p&gt;

&lt;p&gt;Enter &lt;a href="https://dev.to/get-started/how-nocobase-works"&gt;configuration mode&lt;/a&gt;, click &lt;strong&gt;"Add menu item"&lt;/strong&gt; (&lt;code&gt;+&lt;/code&gt; icon) on the top menu bar, select &lt;strong&gt;"Modern page (v2)"&lt;/strong&gt;, and name it "Dashboard."&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%2Fti4sv6toa2uv52ofawqo.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%2Fti4sv6toa2uv52ofawqo.png" alt="07-dashboard-2026-03-15-21-39-35" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This &lt;a href="https://dev.to/interface-builder/pages"&gt;page&lt;/a&gt; is dedicated to charts — it's our dashboard home base.&lt;/p&gt;

&lt;h2&gt;
  
  
  7.2 Pie Chart: Ticket Status Distribution
&lt;/h2&gt;

&lt;p&gt;For our first chart, we'll use a pie chart to show how many tickets are "Pending," "In Progress," and "Completed."&lt;/p&gt;

&lt;p&gt;On the Dashboard page, click &lt;strong&gt;Add block → &lt;a href="https://dev.to/data-visualization"&gt;Chart&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;After adding it, click the &lt;strong&gt;Configure&lt;/strong&gt; button in the top-right corner of the &lt;a href="https://dev.to/interface-builder/blocks"&gt;block&lt;/a&gt;. A chart configuration panel will open on the right side.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring the Data Query
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/data-sources/main/collection"&gt;Collection&lt;/a&gt;&lt;/strong&gt;: Select "Tickets"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measures&lt;/strong&gt;: Select any unique &lt;a href="https://dev.to/data-sources/field"&gt;field&lt;/a&gt; (e.g., ID), set the aggregation to &lt;strong&gt;Count&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dimensions&lt;/strong&gt;: Select the "Status" field&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%2Foc1prpcuhxdo1bkdeb5h.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%2Foc1prpcuhxdo1bkdeb5h.png" alt="07-dashboard-2026-03-15-21-44-32" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Run query&lt;/strong&gt; to preview the returned data below.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring Chart Options
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chart type&lt;/strong&gt;: Select &lt;strong&gt;Pie&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Field mapping&lt;/strong&gt;: Set Category to "Status" and Value to the count value&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Labels&lt;/strong&gt;: Turn on the toggle&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A nice-looking pie chart should now appear on the page. Each slice represents a status, showing the exact count and percentage by default.&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%2Fnran80uy2ofcmkm7xjrm.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%2Fnran80uy2ofcmkm7xjrm.png" alt="07-dashboard-2026-03-15-21-45-40" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Save&lt;/strong&gt; — your first chart is done.&lt;/p&gt;

&lt;h2&gt;
  
  
  7.3 Line Chart: Daily New Ticket Trend
&lt;/h2&gt;

&lt;p&gt;The pie chart shows "how things are distributed right now." A line chart shows "how things change over time."&lt;/p&gt;

&lt;p&gt;Add another chart block to the page with the following configuration:&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Query
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Collection&lt;/strong&gt;: Select "Tickets"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measures&lt;/strong&gt;: ID, Count&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dimensions&lt;/strong&gt;: Select the "Created at" field, set the format to &lt;strong&gt;YYYY-MM-DD&lt;/strong&gt; (group by day)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip&lt;/strong&gt;: The date dimension format matters. Choosing &lt;code&gt;YYYY-MM-DD&lt;/code&gt; groups by day; choosing &lt;code&gt;YYYY-MM&lt;/code&gt; groups by month. Pick the right granularity based on your data volume.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Chart Options
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chart type&lt;/strong&gt;: Select &lt;strong&gt;Line&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Field mapping&lt;/strong&gt;: Set xField to "Created at" and yField to the count value&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%2Fgwk0jadr8wke13xlpx6c.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%2Fgwk0jadr8wke13xlpx6c.png" alt="07-dashboard-2026-03-15-21-48-33" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After saving, you'll see how ticket volume changes over time. If there's a sudden spike on a particular day, something happened worth looking into.&lt;/p&gt;

&lt;h2&gt;
  
  
  7.4 Bar Chart: Tickets by Category
&lt;/h2&gt;

&lt;p&gt;For our third chart, let's see which category has the most tickets. We'll use a &lt;strong&gt;horizontal bar chart&lt;/strong&gt; instead of a vertical column chart — when there are many categories, vertical X-axis labels tend to overlap and get hidden, so horizontal display is much clearer.&lt;/p&gt;

&lt;p&gt;Add a third chart block:&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Query
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Collection&lt;/strong&gt;: Select "Tickets"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measures&lt;/strong&gt;: ID Count&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dimensions&lt;/strong&gt;: Select the "Category" relation field (choose the category's Name field)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Chart Options
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chart type&lt;/strong&gt;: Select &lt;strong&gt;Bar&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Field mapping&lt;/strong&gt;: Set xField to the count value (ID Count) and yField to "Category Name"&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%2Fozizdxfef9wvrk4hgq32.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%2Fozizdxfef9wvrk4hgq32.png" alt="07-dashboard-2026-03-15-22-05-11" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After saving, it's immediately clear which category has the most issues. If the "Network Failure" bar stretches far beyond the rest, maybe it's time to upgrade the network equipment.&lt;/p&gt;

&lt;h2&gt;
  
  
  7.5 Table Block: Unresolved Tickets
&lt;/h2&gt;

&lt;p&gt;Charts give a summary view, but admins usually need to see specific details too. Let's add an &lt;strong&gt;Unresolved Tickets&lt;/strong&gt; table that shows all tickets that haven't been completed yet.&lt;/p&gt;

&lt;p&gt;Add a &lt;strong&gt;Table block&lt;/strong&gt; to the page, selecting the "Tickets" collection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure Filter Conditions
&lt;/h3&gt;

&lt;p&gt;Click the table block's settings and find &lt;strong&gt;Set data scope&lt;/strong&gt;. Add a &lt;a href="https://dev.to/interface-builder/blocks/filter-blocks/form"&gt;filter&lt;/a&gt; condition:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Status&lt;/strong&gt; is not equal to &lt;strong&gt;Completed&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This way the table only shows unfinished tickets — once a ticket is completed, it automatically disappears from the list.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure Fields
&lt;/h3&gt;

&lt;p&gt;Select the columns to display: Title, Status, Priority, Assignee, Created at.&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%2F0vh4jd32ivv8rxahwecv.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%2F0vh4jd32ivv8rxahwecv.png" alt="07-dashboard-2026-03-15-22-20-11" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip&lt;/strong&gt;: You can also add a &lt;strong&gt;default sort&lt;/strong&gt; (by Created at, descending) so the newest tickets appear at the top.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  7.6 Markdown Block: System Announcements
&lt;/h2&gt;

&lt;p&gt;Beyond charts, we can also put some text information on the dashboard.&lt;/p&gt;

&lt;p&gt;Add a &lt;strong&gt;&lt;a href="https://dev.to/interface-builder/blocks/other/markdown"&gt;Markdown block&lt;/a&gt;&lt;/strong&gt; and write a system announcement or usage instructions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## IT HelpDesk System&lt;/span&gt;

Welcome! If you run into any issues, please submit a ticket and the tech team will handle it ASAP.

&lt;span class="gs"&gt;**For urgent issues**&lt;/span&gt;, call the IT hotline directly: 8888
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F09wz0veffy0vnzq12sgx.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%2F09wz0veffy0vnzq12sgx.png" alt="07-dashboard-2026-03-15-21-53-54" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Place the Markdown block at the top of the dashboard — it works as both a welcome message and a bulletin board. The content can be updated anytime, making it very flexible.&lt;/p&gt;

&lt;h2&gt;
  
  
  7.7 JS Block: Personalized Welcome Banner
&lt;/h2&gt;

&lt;p&gt;Markdown has a fairly fixed format — what if you want richer effects? NocoBase provides a &lt;strong&gt;JS Block (JavaScript Block)&lt;/strong&gt; that lets you freely customize display content with code.&lt;/p&gt;

&lt;p&gt;We'll use it to create a business-style welcome banner that shows a personalized greeting based on the current user and time of day.&lt;/p&gt;

&lt;p&gt;Add a &lt;strong&gt;JS block&lt;/strong&gt; to the page (Add block → Other blocks → JS block).&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%2F4n84bl34rv314r8d1cns.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%2F4n84bl34rv314r8d1cns.png" alt="07-dashboard-2026-03-15-22-33-24" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the JS block, you can use &lt;code&gt;ctx.getVar("ctx.user.username")&lt;/code&gt; to get the current user's username. Here's a clean, business-style welcome banner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;uname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getVar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ctx.user.username&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;uname&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;User&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;hour&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;getHours&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;hi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;hour&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Good morning&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;hour&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Good afternoon&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Good evening&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getFullYear&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="s2"&gt;-&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getMonth&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;padStart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;-&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getDate&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;padStart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;weekDay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLocaleDateString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;en-US&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;weekday&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;long&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`
&amp;lt;div style="padding: 24px 32px; background: #f7f8fa; border-radius: 8px;"&amp;gt;
  &amp;lt;div style="display: flex; justify-content: space-between; align-items: flex-end;"&amp;gt;
    &amp;lt;div&amp;gt;
      &amp;lt;div style="font-size: 22px; font-weight: 600; color: #1d2129;"&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;hi&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/div&amp;gt;
      &amp;lt;div style="font-size: 14px; color: #86909c; margin-top: 4px;"&amp;gt;Welcome back to IT HelpDesk&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div style="font-size: 14px; color: #86909c;"&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;　&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;weekDay&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fmsxmhmw9wwnxhgi72crf.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%2Fmsxmhmw9wwnxhgi72crf.png" alt="07-dashboard-2026-03-15-22-51-27" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The result is a light gray card with the greeting on the left and date on the right. Clean, practical, and unobtrusive.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip&lt;/strong&gt;: &lt;code&gt;ctx.getVar("ctx.user.xxx")&lt;/code&gt; is how you access current user info in JS blocks. Common fields include &lt;code&gt;nickname&lt;/code&gt;, &lt;code&gt;username&lt;/code&gt;, and &lt;code&gt;email&lt;/code&gt;. JS blocks can also call APIs to query data — you can use them for much more custom content later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  7.8 Action Panel: Quick Links + Popup Reuse
&lt;/h2&gt;

&lt;p&gt;A dashboard isn't just for viewing data — it should also be a starting point for actions. Let's add an &lt;strong&gt;Action Panel&lt;/strong&gt; so users can submit tickets and jump to the ticket list directly from the homepage.&lt;/p&gt;

&lt;p&gt;Add an &lt;strong&gt;Action Panel&lt;/strong&gt; block (Add block → Other blocks → Action Panel), then add two &lt;a href="https://dev.to/interface-builder/actions"&gt;actions&lt;/a&gt; inside it:&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%2Fmkjgiavx62jv04xiw0u0.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%2Fmkjgiavx62jv04xiw0u0.png" alt="07-dashboard-2026-03-15-22-54-06" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Link: Go to ticket list&lt;/strong&gt; — Add a "Link" action and configure the URL to point to the ticket list page (e.g., &lt;code&gt;/admin/camcwbox2uc&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8eqi563gyepc7zres5w.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%2Fs8eqi563gyepc7zres5w.png" alt="07-dashboard-2026-03-15-22-57-49" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Button: Add Ticket&lt;/strong&gt; — Add a "Popup" action button and change the title to "Add Ticket"&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%2Fxs6bywqia6njahlr2kb5.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%2Fxs6bywqia6njahlr2kb5.png" alt="07-dashboard-2026-03-15-23-00-36" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But clicking "Add Ticket" opens an empty popup — we need to configure its content. Rebuilding the entire new ticket form from scratch would be tedious. This is where a very handy feature comes in: &lt;strong&gt;Popup Reuse&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Saving a Popup Template
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: Popup templates are different from the "block templates" we covered in Chapter 4. Block templates save a single form block's fields and layout, while popup templates save the &lt;strong&gt;entire popup&lt;/strong&gt; — including all blocks, fields, and action buttons inside it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;strong&gt;Tickets list page&lt;/strong&gt; and find the "Add Ticket" button&lt;/li&gt;
&lt;li&gt;Click the button's settings and find &lt;strong&gt;"Save as template"&lt;/strong&gt; — save the current popup&lt;/li&gt;
&lt;li&gt;Give the template a name (e.g., "New Ticket Popup")&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%2F9egc1gr8pe172euax7jj.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%2F9egc1gr8pe172euax7jj.png" alt="07-dashboard-2026-03-15-23-05-17" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Reusing the Popup on the Dashboard
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go back to the Dashboard page and click the "Add Ticket" button's settings in the action panel&lt;/li&gt;
&lt;li&gt;Find &lt;strong&gt;"Popup settings"&lt;/strong&gt; and select the "New Ticket Popup" template you just saved&lt;/li&gt;
&lt;li&gt;After saving, clicking the button will open the exact same new ticket form popup as on the ticket list page&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%2Fak5f7842g4fw94lbpgw9.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%2Fak5f7842g4fw94lbpgw9.png" alt="07-dashboard-2026-03-15-23-06-33" width="800" height="500"&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%2Ft88emi0k8svuxxc2xtdq.gif" 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%2Ft88emi0k8svuxxc2xtdq.gif" alt="07-dashboard-2026-03-15-23-07-20" width="760" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Click Title to Open Detail Popup
&lt;/h3&gt;

&lt;p&gt;Using the same approach, we can make ticket titles in the unresolved tickets table clickable to open the detail view directly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;First, go to the &lt;strong&gt;Tickets list page&lt;/strong&gt;, find the "View" button's settings, and similarly &lt;strong&gt;"Save as template"&lt;/strong&gt; (e.g., "Ticket Detail Popup")&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%2Fcbs2vc7v4slw9gihejet.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%2Fcbs2vc7v4slw9gihejet.png" alt="07-dashboard-2026-03-15-23-08-02" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go back to the Dashboard page. In the unresolved tickets table, click the "Title" field's settings&lt;/li&gt;
&lt;li&gt;Turn on the &lt;strong&gt;"Enable click to open"&lt;/strong&gt; toggle — a "Popup settings" option will appear&lt;/li&gt;
&lt;li&gt;In the popup settings, select the "Ticket Detail Popup" template you just saved&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%2Fzl0phm64j2jv9p53g960.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%2Fzl0phm64j2jv9p53g960.png" alt="07-dashboard-2026-03-15-23-11-24" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now users can click a ticket title on the dashboard to view its details instantly, without navigating to the ticket list page. The whole dashboard becomes more compact and efficient.&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%2Fbx5t8srkrn0rj1hyqfcp.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%2Fbx5t8srkrn0rj1hyqfcp.png" alt="07-dashboard-2026-03-15-23-12-36" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Benefits of popup reuse&lt;/strong&gt;: The same popup template can be used across multiple pages. When you modify the template, all references update automatically. This is similar to the "Reference" mode from Chapter 4 — maintain in one place, apply everywhere.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  7.9 Adjusting the Layout
&lt;/h2&gt;

&lt;p&gt;We now have 6 blocks on the page (JS welcome banner + Action panel + 3 charts + tickets table). Let's adjust the layout to make it look better.&lt;/p&gt;

&lt;p&gt;In configuration mode, you can &lt;strong&gt;drag and drop&lt;/strong&gt; to reposition and resize each block. Suggested layout:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Row 1&lt;/strong&gt;: JS welcome banner (left) + Action panel (right)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Row 2&lt;/strong&gt;: Pie chart (left) + Tickets table (right)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Row 3&lt;/strong&gt;: Line chart (left) + Bar chart (right)&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%2F11997i0gm519wi64ssbd.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%2F11997i0gm519wi64ssbd.png" alt="07-dashboard-2026-03-15-23-14-19" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: you may find that block heights don't align. You can manually adjust this in Block settings → Block height — for example, set both blocks in row 2 to 500px.&lt;/p&gt;

&lt;p&gt;Drag the edges to adjust block widths so the two charts each take up half the row. Try a few arrangements until you find what looks best.&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%2Fqkvtq8osu5s9ivivalae.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%2Fqkvtq8osu5s9ivivalae.png" alt="07-dashboard-2026-03-15-23-18-57" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;In this chapter, we built a rich and practical data dashboard with 6 blocks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JS welcome banner&lt;/strong&gt;: Personalized greeting based on current user and time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action panel&lt;/strong&gt;: Quick link to ticket list + one-click ticket creation (popup reuse)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pie chart&lt;/strong&gt;: See the ticket status distribution at a glance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Line chart&lt;/strong&gt;: Track how ticket volume changes over time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bar chart&lt;/strong&gt;: Compare ticket counts across categories horizontally — no label overlap even with many categories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unresolved tickets table&lt;/strong&gt;: All pending tickets at a glance, click title to view details (popup reuse)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also learned an important technique — &lt;strong&gt;Popup Reuse&lt;/strong&gt;: save a popup from one page as a template and reference it on other pages, avoiding repetitive configuration.&lt;/p&gt;

&lt;p&gt;Data visualization is a built-in NocoBase plugin — no additional installation needed. Configuring it is just as simple as building a page: pick your data, choose a chart type, map the fields — three steps and you're done.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;At this point, our ticket system is quite feature-complete: data modeling, page building, form entry, access control, automated workflows, and a data dashboard — we've got it all. We're planning an &lt;strong&gt;AI Agent version of this tutorial&lt;/strong&gt; — using AI Agents to build the system locally and automatically. Stay tuned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/data-visualization"&gt;Data Visualization&lt;/a&gt; — Chart configuration guide&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/interface-builder/blocks/other/markdown"&gt;Markdown Block&lt;/a&gt; — Markdown block usage&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/interface-builder/blocks"&gt;Block Layout&lt;/a&gt; — Page layout and block configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  About NocoBase
&lt;/h3&gt;

&lt;p&gt;NocoBase is the most extensible AI-powered no-code platform.&lt;br&gt;
Total control. Infinite extensibility. AI collaboration.&lt;br&gt;
Enable your team to adapt quickly and cut costs dramatically.&lt;br&gt;
No years of development. No millions wasted.&lt;br&gt;
Deploy NocoBase in minutes — and take control of everything.&lt;/p&gt;

&lt;p&gt;Discover NocoBase in 3 Minutes!&lt;/p&gt;

&lt;h3&gt;
  
  
  👇 Get NocoBase
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://demo.nocobase.com/new" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://v2.docs.nocobase.com/" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
