saltcorn is a free, open source automation project written in JavaScript and released under MIT. It has 2,071 GitHub stars, 353 forks and 737 open issues, and was last pushed 12 hours ago. On this registry it ranks #42 of 54 tracked projects in Automation, with 5 head-to-head comparisons available.

What is saltcorn?

Saltcorn is a free and open source no-code application builder, licensed under MIT and written in JavaScript, for people who need to build database-backed web and mobile applications without writing application code.

What it is

Saltcorn is an extensible open source no-code database application builder that runs on Node.js and stores data in PostgreSQL or, for desktop trials, in a single SQLite file. It builds web and mobile database applications from flexible views, datatypes, layouts and actions, and the repository contains the core codebase together with the code needed both to self-host a single instance and to host a multitenant instance serving many applications from subdomains. Dependencies acknowledged in the README include PostgreSQL, node-postgres and express on the server side, live-plugin-manager for plugins, and craft.js, jQuery-Menu-Editor, Blockly and CodeMirror in the interface.

The problem it solves is concrete: someone needs a database-backed application with forms over tables, list and detail views, layouts and actions, and the alternative is writing that application code by hand along with the administrative scaffolding around it. Saltcorn replaces that bespoke development work with configuration, because schema, views and actions are assembled in the browser rather than in source files. The same core runs a single self-hosted instance or many tenant applications on one deployment, so the platform is not re-engineered for each new application.

Key capabilities

  • Builds web and mobile database applications from flexible views, datatypes, layouts and actions rather than from hand-written code.
  • Extends through a plugin system built on live-plugin-manager, so functionality is added without forking the core.
  • Runs as a multitenant host, with new applications created under their own subdomain at https://saltcorn.com/tenant/create.
  • Ships a command line interface as the @saltcorn/cli npm package, with commands such as saltcorn reset-schema -f and saltcorn serve.
  • Installs on a fresh Linux server with npx saltcorn-install -y, tested on Debian 11 and 12, Ubuntu 18.04 through 24.04, OpenSuSE, AlmaLinux and Fedora.
  • Provides Docker images saltcorn/saltcorn and saltcorn/saltcorn-with-mobile, the latter adding the large mobile build dependencies.
  • Includes a desktop trial path that requires node.js 20+ and npm and points SQLITE_FILEPATH at a local SQLite file.

Who uses it and how

  • Self-hosters running the platform on a virtual private server; 2 GB is described as sufficient unless traffic volumes are high.
  • Teams deploying through one-click marketplace images on DigitalOcean and Linode, where a 2 GB virtual machine is listed at $12 per month.
  • Operators hosting multitenant deployments, giving each application its own subdomain on a shared instance.
  • Builders who need mobile output and therefore deploy saltcorn/saltcorn-with-mobile instead of the standard image.
  • Developers evaluating capabilities locally on node.js 20+ with SQLite, or against the Docker Compose example at ./deploy/examples/test.

Getting started

On a fresh Linux server, install node.js and run npx saltcorn-install -y. For local testing, cd ./deploy/examples/test && docker-compose up -d starts an instance at http://localhost:3000, and the CLI is installable globally from the @saltcorn/cli package.

How it compares

The facts provided name no paid products that Saltcorn replaces, and they name no directly comparable tools either, so this entry stands alone in this registry on that axis. What the facts do support is that Saltcorn is MIT licensed, self-hostable from the core repository, and also available as a free hosted multitenant service at saltcorn.com, with the README warning that the hosted service carries no guarantees about security or availability and should be used only to explore the platform.

When to use it — and when not to

A self-hoster must operate a Node.js runtime and a PostgreSQL database, and should plan on a 2 GB server, since 1 GB machines can run the platform but may have issues during upgrades. Anyone who needs a support contract, or who wants a vendor to hold their data, should look elsewhere, and the free multitenant service at saltcorn.com is explicitly intended for exploration rather than production. The project also carries 737 open issues at the time of writing, which is worth weighing before adopting it for a critical internal system.

project readme (upstream, from github) — read inline

Saltcorn Banner

Build and Test OpenCollective

Saltcorn

Saltcorn is an extensible open source no-code database application builder. Use it to build web and mobile database applications with flexible views, datatypes, layouts and actions

This repository contains the core codebase, including the code necessary to self-host an instance and to host a multitenant instance.

Acknowledgements

Saltcorn is using PostgreSQL, node.js, node-postgres, express, live-plugin-manager, craft.js, jQuery-Menu-Editor, Blockly, CodeMirror and other awesome free and open source projects.

Trying out Saltcorn

Online

A multitenant instance of Saltcorn is running at saltcorn.com, and you can create a new application under a subdomain at https://saltcorn.com/tenant/create. This service is free, but there are no guarantees about the security or availability of your application or the information you are storing. This service should only be used to explore the capabilities of Saltcorn.

Desktop

To try out Saltcorn on your desktop, make sure you have node.js 20+ and npm installed. Then run these commands on the command line:

npm config set prefix ~/.local
npm install -g @saltcorn/cli
export SQLITE_FILEPATH=~/saltcorn.sqlite
.local/bin/saltcorn reset-schema -f
.local/bin/saltcorn serve

Now open http://localhost:3000/ in your browser. When you want to run this again, you need to run the export line and the saltcorn serve line. Or simply run SQLITE_FILEPATH=~/saltcorn.sqlite .local/bin/saltcorn serve.

Server

To install Saltcorn on a fresh virtual machine, simply install node.js and run npx saltcorn-install -y; see Quick install server on Linux. To try out Saltcorn with docker-compose see Quickstart with Docker.

Hosting options

For self-hosting, a 2 GB virtual private server is sufficient to run Saltcorn unless you expect high traffic volumes. Installation instructions are given below. Saltcorn can also run on a 1GB virtual machine, but there can be issues with upgrading.

DigitalOcean and Linode have one-click install options for Saltcorn

If hosting on DigitalOcean, which offers a 2GB virtual machine for $12 per month, please consider using our referral code which will give you $100 credit over 60 days.

Quickstart with Docker

You can run a local instance for quick testing by running the following command:

cd ./deploy/examples/test && docker-compose up -d

and then go to http://localhost:3000 in your web browser.

NOTE: The dependencies to build mobile apps are quite large, they are not installed in the standard docker image (saltcorn/saltcorn). To use an image that includes the mobile dependencies as well, either use 'saltcorn/saltcorn-with-mobile' directly or replace 'saltcorn/saltcorn' with 'saltcorn/saltcorn-with-mobile' in the docker-compose file.

Quick install server on Linux

This has been tested on Debian 11 and 12, Ubuntu 18.04, 20.04, 22.04, 24.04, OpenSuSE, AlmaLinux, and Fedora. All you need is to run these three lines on the command line shell, as root or as a user with sudo access:

wget -qO - https://deb.nodesource.com/setup_24.x | sudo bash -
sudo apt-get install -qqy nodejs
npx saltcorn-install -y

The first two lines will install Node.js 24 (you can also use 20, or 22). The last line will call the Saltcorn install script accepting all the defaults, which installs PostgreSQL and sets up Saltcorn as a service listening on port 80.

If you want a different port, a different database backend, or to not install as a service, you can omit the final -y to get an interactive installation:

wget -qO - https://deb.nodesource.com/setup_24.x | sudo bash -
sudo apt-get install -qqy nodejs
npx saltcorn-install

Install from NPM packages

Instructions have been tested on Ubuntu 20.04 on a 1GB VM.

TL;DR: npm install -g @saltcorn/cli && saltcorn setup

Installing node and npm

For a recent version (v24) of Node.js:

wget -qO - https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs libpq-dev build-essential python-is-python3

You can also use any Node version between 20-24.

Install Saltcorn

npm install -g @saltcorn/cli

If this fails, you may need to tell npm to disregard file permissions during compilation:

npm install -g @saltcorn/cli --unsafe

Sometimes, the above commands fail to install the library sd-notify (which is useful for integrating with systemd) even though it is installable. You can rectify that by installing it subsequently:

npm install -g sd-notify

Setup (automated)

If you are root, create a user with sudo and switch to that user:

adduser saltcorn
adduser saltcorn sudo
su saltcorn
cd
mkdir -p ~/.config/

then run

saltcorn setup and follow the instructions given.

Setup (manual)

NOTE: this is somewhat out of date; see instead https://wiki.saltcorn.com/view/ShowPage?title=Install%20on%20Ubuntu, in particular the last section.

Skip this section if you ran saltcorn setup or npx saltcorn-install

  1. Install PostgreSQL: sudo apt install postgresql postgresql-client

  2. Either,

    • Create a JSON file .saltcorn in your XDG config directory (on Ubuntu this is normally $HOME/.config) with these values:

      • host: address of PostgreSQL server
      • port: port of PostgreSQL server
      • database: PostgreSQL database
      • user: PostgreSQL user name
      • password: PostgreSQL user password
      • sslmode: PostgreSQL SSL Mode
      • sslcert: PostgreSQL SSL Certificate
      • sslkey: PostgreSQL SSL Key
      • sslrootcert: PostgreSQL SSL Root Certificate
      • session_secret: Saltcorn session secret
      • multi_tenant: run as multi-tenant (true/false)
      • multi_node: update other Saltcorn nodes when data changes with Postgres LISTEN/NOTIFY (true/false)

      For example:

      {
         "host":"localhost",
         "port":5432,
         "database":"saltcorn",
         "user":"tomn",
         "password":"dgg2342vfB",
         "session_secret":"hrh64b45b3",
         "multi_tenant":true,
         "multi_node":false
      }
      

      Or,

    • Set environment variables. SALTCORN_SESSION_SECRET, SALTCORN_MULTI_TENANT (defaults to false), SALTCORN_MULTI_NODE (defaults to false), and either DATABASE_URL or PGHOST, PGPORT, PGUSER, PGDATABASE, PGPASSWORD. You can also set PGSSLMODE, PGSSLCERT, PGSSLKEY, PGSSLROOTCERT (see Postgres Documentation)

Run

saltcorn serve

Server install

Install Saltcorn as a service

Installing Saltcorn as a service will mean it runs in the background and restarts automatically if the system reboots.

Create a file /lib/systemd/system/saltcorn.service with these contents:

[Unit]
Description=saltcorn
Documentation=https://saltcorn.com
After=network.target

[Service]
Type=notify
WatchdogSec=30
User=saltcorn
WorkingDirectory=/home/saltcorn
ExecStart=/home/saltcorn/.local/bin/saltcorn serve -p 80
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
Environment="NODE_ENV=production"

[Install]
WantedBy=multi-user.target

run:

sudo systemctl daemon-reload
sudo systemctl start saltcorn
sudo systemctl enable saltcorn

This may be in a different location in non-Debian systems, e.g. in /etc/systemd/system instead.

In order to allow the saltcorn user to open port 80, you need to permission node.js to allow this by running:

sudo setcap 'cap_net_bind_service=+ep' `which node`
SSL certificate

Use [Let's Encrypt](htt

readme truncated — read the full docs on github

Frequently asked questions

Is saltcorn free to use?

saltcorn is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does saltcorn do?

Free and open source no-code application builder

What is saltcorn written in?

saltcorn is primarily written in JavaScript. Its source is publicly available at https://github.com/saltcorn/saltcorn, and it has 2,071 GitHub stars.