Most Wix projects need to store structured content beyond what appears in the site design. Common examples include job postings, customer testimonials, FAQs, and any other custom records the project needs to track. Wix bundles a managed content database for this, with APIs that read and write the same data from frontend or backend code.
The Wix CMS is the platform's built-in data layer for site content. Each Wix site and headless project comes with a database where you define collections and store structured items in them. You read and write those items directly through the CMS or through the Wix Data API. Wix manages the storage, replication, and infrastructure, including PII encryption and GDPR support.
A data collection holds items that share a common shape, defined by the collection's schema. The schema lists which fields each item should have and the type of each field. It defines expected structure rather than rigid validation, so items can include fields the schema doesn't declare.
Collections can be defined by you, provided by Wix business apps, or pulled in from external databases:
- Custom collections: You can define your own collections for whatever the project needs to track, like job postings, customer testimonials, or FAQs.
- Wix App collections: Wix business solutions ship their own collections. Wix Stores adds Products, Wix Bookings adds Services, Wix Blog adds Posts, and so on. You can read these collections through the Data APIs or the owning business solution's API. Writes are done through the owning business solution's API, like the Stores API for products or the Bookings API for services.
- External collections: You can connect external databases through adapters. Once connected, the same query model and APIs work against an external collection as against a native CMS collection.
Working with collections in practice goes beyond basic CRUD. The Data APIs include features for collection management, query performance, and access control:
- Querying & filtering: A query language supporting filters, sorts, pagination, and field projection.
- Aggregations: Group, count, sum, average, and other aggregate operations over collection data.
- Indexes: Selected fields can be indexed to speed up queries on large collections.
- Bulk operations: Insert, update, or remove many items in 1 call.
- Permissions: Per-collection rules that control who can insert, update, remove, or read items, based on roles like Wix user, signed-in member, and anonymous visitor.
- Collection management: Create, configure, and delete collections programmatically.
- Eventual consistency: Reads may not immediately reflect recent writes. The APIs include options for stronger consistency when needed.
The Wix CMS has caps on size and throughput. These include the number of collections a site can hold, the maximum size of an individual item, allowed characters in field names, response timeouts for data requests, and limits on caching behavior. Specific numbers depend on the site's Wix plan. External collections are governed by the underlying database for storage and field rules, and use a longer Wix-side request timeout.
For the current limits and timeout values, see About the Data APIs in the API Reference. For plan-specific quotas and scaling guidance, see About Data Feature Limitations.
The development path determines how you create and manage collections, and how your code reads and writes them:
- Sites: Create and manage collections through the CMS in the dashboard, or programmatically through the SDK. Frontend and backend code read and write items using the SDK, and built-in UI elements can bind directly to collection data through datasets.
- Wix-managed headless projects: Create and manage collections through the CMS in the project dashboard, programmatically through the SDK or REST API, or by declaring a data collections extension in the project so collections are created automatically on release. Backend and client code read and write items through the SDK or REST API.
- Self-managed headless projects: Create and manage collections through the CMS in the project dashboard, or programmatically through the SDK or REST API. Backend and client code read and write items through the SDK or REST API.
- Wix-managed apps: Read and write data on the host site's CMS through the SDK or REST API. To ship collections with the app, declare a data collections extension that adds them to the host site at install time.
- Self-managed apps: Read and write data on the host site's CMS through the SDK or REST API. To ship collections with the app, add a data collections extension in the app dashboard that adds them to the host site at install time. You can also create and manage collections on the host site through the CMS or programmatically through the SDK or REST API.
- Blocks apps: Create and manage collections in the Blocks editor. Collections are added to the host site when the app is installed. Read and write data through the SDK or REST API.