# NocoDB — Open Source No-Code Database Platform > NocoDB turns any SQL database into a smart spreadsheet with REST APIs. Open-source Airtable alternative with views, automations, and team collaboration. ## Install Save in your project root: ## Quick Use ```bash docker run -d --name nocodb -p 8080:8080 nocodb/nocodb:latest ``` Open `http://localhost:8080` — sign up and start building your first database. ## Intro **NocoDB** is an open-source no-code platform that turns any MySQL, PostgreSQL, SQL Server, SQLite, or MariaDB database into a smart spreadsheet. It serves as a self-hosted Airtable alternative, providing spreadsheet-like views, forms, kanban boards, galleries, and auto-generated REST APIs on top of your existing databases. With 62.7K+ GitHub stars, NocoDB is the most popular open-source Airtable alternative, empowering teams to manage data visually without coding while maintaining standard SQL database reliability underneath. ## What NocoDB Does - **Spreadsheet Interface**: Familiar grid view with sorting, filtering, grouping, and conditional formatting - **Multiple Views**: Grid, Kanban, Gallery, Form, and Calendar views for the same data - **Connect Any Database**: Works with existing MySQL, PostgreSQL, SQL Server, SQLite, and MariaDB databases - **Auto-Generated API**: REST and GraphQL APIs created automatically for every table - **Field Types**: 20+ types including text, number, date, attachment, checkbox, rating, barcode, QR code, and formula - **Automations**: Webhook triggers and workflow automations for notifications and integrations - **Collaboration**: Real-time multi-user editing with comments and audit trail - **Forms**: Public forms for data collection with customizable fields and validation - **Import/Export**: Import from Airtable, CSV, Excel, and JSON ## Architecture ``` ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Web UI │────▶│ NocoDB │────▶│ Your SQL DB │ │ (Vue.js) │ │ Server │ │ MySQL / │ └──────────────┘ │ (Node.js) │ │ PostgreSQL /│ └──────────────┘ │ SQLite │ └──────────────┘ ``` ## Self-Hosting ### Docker Compose ```yaml services: nocodb: image: nocodb/nocodb:latest ports: - "8080:8080" environment: NC_DB: "pg://db:5432?u=nocodb&p=nocodb&d=nocodb" depends_on: - db volumes: - nocodb-data:/usr/app/data db: image: postgres:16-alpine environment: POSTGRES_USER: nocodb POSTGRES_PASSWORD: nocodb POSTGRES_DB: nocodb volumes: - pg-data:/var/lib/postgresql/data volumes: nocodb-data: pg-data: ``` ### Connect Existing Database ```bash # Connect to your existing PostgreSQL docker run -d --name nocodb -p 8080:8080 -e NC_DB="pg://your-db-host:5432?u=user&p=password&d=dbname" nocodb/nocodb:latest ``` NocoDB reads your existing tables and presents them as spreadsheets — no data migration needed. ## Key Features ### Views | View | Best For | |------|----------| | Grid | Spreadsheet-like data editing | | Kanban | Project management, status tracking | | Gallery | Visual cards (products, contacts) | | Form | Data collection, surveys | | Calendar | Date-based scheduling | ### Formula Fields ``` // String operations CONCAT({First Name}, " ", {Last Name}) UPPER({Email}) LEFT({Phone}, 3) // Date operations DATEADD({Start Date}, 30, "days") DATETIME_DIFF({End Date}, {Start Date}, "hours") // Conditional IF({Status} = "Active", "✅", "❌") SWITCH({Priority}, "High", "🔴", "Medium", "🟡", "Low", "🟢") ``` ### REST API ```bash # List records curl "http://localhost:8080/api/v1/db/data/noco/project/table" -H "xc-token: YOUR_API_TOKEN" # Create record curl -X POST "http://localhost:8080/api/v1/db/data/noco/project/table" -H "xc-token: YOUR_API_TOKEN" -H "Content-Type: application/json" -d '{"Name": "New Item", "Status": "Active"}' # Filter and sort curl "http://localhost:8080/api/v1/db/data/noco/project/table?where=(Status,eq,Active)&sort=-Created" -H "xc-token: YOUR_API_TOKEN" ``` ### Airtable Migration One-click import from Airtable: 1. Get your Airtable API key 2. Paste it in NocoDB import wizard 3. Select bases to import 4. All data, views, and field types are preserved ## NocoDB vs Alternatives | Feature | NocoDB | Airtable | Teable | Baserow | |---------|--------|----------|--------|---------| | Open Source | Yes | No | Yes | Yes (MIT) | | GitHub Stars | 62.7K | N/A | 21.1K | 12K | | Connect existing DB | Yes | No | External only | No | | Auto API | REST + GraphQL | REST | REST | REST | | Self-hosted | Yes | No | Yes | Yes | | Row limit | Unlimited | 125K/base | Unlimited | Unlimited | | Airtable import | Yes | N/A | No | Limited | ## FAQ **Q: How does NocoDB differ from Teable?** A: NocoDB connects to existing databases and adds a visual UI on top, making it great for adding a frontend to legacy systems. Teable uses PostgreSQL as native storage so you can query data directly with SQL. Their positioning differs slightly. **Q: Will connecting to an existing database modify my data?** A: Read-only connections won't modify anything. If you edit data through the NocoDB UI, changes are written directly to your database. NocoDB creates a small number of metadata tables (prefixed with `nc_`) in your database. **Q: How does it handle performance on large tables?** A: NocoDB uses pagination and virtual scrolling, so browsing large tables (millions of rows) stays smooth. Query performance depends on the underlying database and its indexes. ## Sources & Credits - GitHub: [nocodb/nocodb](https://github.com/nocodb/nocodb) — 62.7K+ ⭐ - Website: [nocodb.com](https://nocodb.com) --- Source: https://tokrepo.com/en/workflows/dddaecfa-34b7-11f1-9bc6-00163e2b0d79 Author: AI Open Source