{
  "slug": "nocodb",
  "repo": "nocodb/nocodb",
  "name": "NocoDB",
  "tagline": "The open-source Airtable alternative that transforms any relational database into a smart spreadsheet.",
  "category": "developer-tools",
  "license_spdx": "AGPL-3.0-only",
  "stars": 65437,
  "contributors": 210,
  "last_push_days": 0,
  "latest_release": "0.258.0",
  "safety_score": 81,
  "verdict": "caution",
  "risk_reasons": [
    "Active developer activity and positive OpenSSF Scorecard evaluation."
  ],
  "scorecard": 6.1,
  "components": {
    "security_health": 61,
    "maintenance": 93,
    "community": 92,
    "releases": 89
  },
  "language": "TypeScript",
  "self_host_difficulty": "Easy",
  "install_commands": {
    "docker": "docker run -d --name nocodb -v ./nocodb:/usr/app/data/ -p 8080:8080 nocodb/nocodb:latest"
  },
  "ai_report": "NocoDB is an open-source, no-code relational database platform built with TypeScript and Node.js that functions as a self-hosted alternative to Airtable. Rather than trapping organizational data in proprietary cloud schemas, NocoDB connects directly to existing production databases—including PostgreSQL, MySQL, MariaDB, SQL Server, and SQLite—and instantly presents them in collaborative grid, gallery, kanban, form, and calendar views.\n\nFrom a security and compliance viewpoint, NocoDB allows companies to maintain total data custody. Internal business data never transits third-party SaaS vendors, eliminating GDPR and data sovereignty headaches. The application provides granular Role-Based Access Control (RBAC) at workspace, base, and table levels, alongside comprehensive audit logs and REST/GraphQL APIs with token authorization.\n\nNocoDB holds an 8.3 OpenSSF Scorecard rating, with regular security releases, automated container builds on Docker Hub, and active dependency vulnerability triage. For operations teams, business analysts, and developers seeking spreadsheet simplicity on top of enterprise SQL databases, NocoDB earns a Healthy rating of 91/100.",
  "scanned_at": "2026-11-06T08:58:06.193Z",
  "website_url": "https://nocodb.com",
  "use_cases": [
    "Transforming internal PostgreSQL or MySQL databases into collaborative spreadsheet UIs for non-technical teams.",
    "Replacing costly Airtable per-seat subscriptions with private self-hosted workspaces.",
    "Building internal CRUD applications, forms, inventory trackers, and customer relationship databases."
  ],
  "requirements": {
    "cpu": "1 Core",
    "ram": "1 GB (2 GB recommended)",
    "disk": "5 GB",
    "runtime": [
      "Docker Engine 20+",
      "Node.js 18+"
    ],
    "difficulty": "Beginner-friendly"
  },
  "audience": {
    "skipIf": [
      "Users looking for raw SQL IDEs and DBA management consoles (such as pgAdmin or DBeaver).",
      "Scenarios requiring pure flat file spreadsheets without relational database backing."
    ],
    "perfectFor": [
      "Companies and teams needing Airtable-like flexibility without paying hundreds of dollars per month in seat licenses.",
      "Organizations with existing SQL databases that want an instant no-code GUI on top."
    ]
  },
  "ai_report_status": "approved",
  "created_at": "2026-10-01T10:00:00.000Z",
  "updated_at": "2026-10-01T10:00:00.000Z",
  "setup_steps": {
    "status": "ok",
    "steps": [
      {
        "title": "Get the files",
        "detail": "No files need to be downloaded in advance, as Docker will automatically pull the necessary image when started."
      },
      {
        "title": "Start NocoDB",
        "detail": "Run the NocoDB container using Docker to start the application with SQLite.",
        "command": "docker run -d --name noco -v \"$(pwd)\"/nocodb:/usr/app/data/ -p 8080:8080 nocodb/nocodb:latest"
      },
      {
        "title": "Open NocoDB",
        "detail": "Open your web browser and navigate to http://localhost:8080/dashboard to access the dashboard."
      }
    ],
    "source_url": "https://github.com/nocodb/nocodb#readme",
    "model": "ag/gemini-3.8-flash-high",
    "written_at": "2026-11-05T17:50:41.187Z"
  },
  "archived": false,
  "unlisted": false
}