Back to Articles

NocoDB: How a TypeScript Middleware Turns PostgreSQL Into Airtable Without Touching Your Data

[ View on GitHub ]

NocoDB: How a TypeScript Middleware Turns PostgreSQL Into Airtable Without Touching Your Data

Hook

What if you could point a tool at your database and instantly get a spreadsheet interface and REST API—without writing a single migration or moving your data?

Context

The no-code movement promised to democratize software development, but most platforms lock you into proprietary databases and closed ecosystems. Airtable popularized the spreadsheet-database hybrid, but with vendor lock-in and limited data portability. Meanwhile, development teams sit on perfectly good PostgreSQL, MySQL, or SQLite databases that non-technical stakeholders can’t touch without SQL knowledge or custom admin panels that take weeks to build.

NocoDB emerged to bridge this gap: a self-hosted, open-source platform that appears to transform existing databases into collaborative spreadsheets with auto-generated APIs. With over 62,000 GitHub stars, it represents a fundamentally different approach than traditional no-code tools. Instead of asking you to migrate data into yet another proprietary system, NocoDB is described as ‘the fastest and easiest way to build databases online’—acting as an interface layer that preserves your database while adding user-friendly access on top.

Technical Insight

Optional Services

NocoDB Platform

Spreadsheet UI

REST/GraphQL

Read/Write Data

Store Metadata

Cache Queries

Store Files

Data Unchanged

User Browser

Vue.js Frontend

nc-gui

Node.js Backend

nc-core

Metadata DB

Views/Relations/UI

Redis Cache

MinIO Storage

Your Database

PostgreSQL/MySQL/SQLite

System architecture — auto-generated

NocoDB’s architecture is built on a crucial design principle: your actual data stays in your database. The platform is written in TypeScript and provides multiple deployment options that reveal its production intentions.

Deployment options range from simple to sophisticated. The simplest option is Docker with SQLite for testing:

docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 8080:8080 \
  nocodb/nocodb:latest

For PostgreSQL, you can specify a connection string:

docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 8080:8080 \
  -e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" \
  -e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
  nocodb/nocodb:latest

The standout feature is ‘auto-upstall’—a single command that provisions a production-grade stack:

bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)

According to the README, auto-upstall performs several automated tasks:

  • Automatically installs prerequisites like Docker and Docker Compose
  • Automatically installs NocoDB with PostgreSQL, Redis, Minio, and Traefik gateway using Docker Compose
  • Automatically upgrades NocoDB when you run the command again
  • Automatically sets up SSL and renews it (requires a domain or subdomain)

This is opinionated infrastructure-as-code that eliminates typical Docker Compose configuration overhead. The platform also offers binary downloads for local testing across macOS (arm64 and x64), Linux (arm64 and x64), and Windows (arm64 and x64), though the README explicitly states these ‘binaries are only for quick testing locally.’

Once running, you access NocoDB at http://localhost:8080/dashboard. The platform appears to provide API generation capabilities based on your database schema, though specific API formats and features are not detailed in the README. The underlying TypeScript codebase suggests type-safe database interactions, and the multiple database support (at minimum PostgreSQL and SQLite, as shown in examples) indicates database-agnostic abstraction layers.

Gotcha

The README is explicit: binaries are ‘only for quick testing locally,’ not production use. This isn’t just legal hedging—the recommended production deployment via auto-upstall includes PostgreSQL, Redis, Minio, and Traefik, suggesting these components are important for full functionality. If you’re deploying to Kubernetes or custom environments, you’ll need to understand and replicate this stack architecture yourself.

The platform is web-first based on its browser-based dashboard interface (http://localhost:8080/dashboard). The Docker deployment model and web dashboard suggest that offline scenarios may be limited compared to traditional desktop spreadsheet applications.

The auto-upstall script requires a domain or subdomain for SSL setup, which means you can’t use it for purely local or IP-based deployments if you want the automatic SSL configuration. You’ll need to plan your DNS setup before running the installation script.

While the README shows support for PostgreSQL and SQLite explicitly, and mentions multiple database support, the full range of supported databases and any database-specific limitations are not detailed. If you’re using other database systems, you’ll need to consult the documentation referenced in the README for compatibility details.

Verdict

Use NocoDB if you have existing databases that non-technical teams need to access and collaborate on, and you want to maintain full control over your data with self-hosted infrastructure. It’s particularly compelling when you need to avoid vendor lock-in and per-user licensing costs while getting a spreadsheet-like interface for your database. The auto-upstall deployment makes it accessible for teams that want production-ready setup without extensive DevOps configuration. With over 62,000 GitHub stars and active development, it represents a mature open-source option for database visualization and collaboration.

Skip it if you need a pure spreadsheet tool without database backing (use Google Sheets or Excel instead), or if your team lacks the infrastructure knowledge to maintain a self-hosted Docker-based stack. Also consider alternatives if you require guaranteed offline functionality or if you’re uncomfortable with the auto-upstall script’s approach of automatically installing Docker and other dependencies on your server. The platform’s focus on web-based access may not suit workflows that require native desktop applications or extensive offline capabilities.

// ADD TO YOUR README
[![Featured on Starlog](https://starlog.is/api/badge/data-knowledge/nocodb-nocodb.svg)](https://starlog.is/api/badge-click/data-knowledge/nocodb-nocodb)