top of page

A powerful CMS to build content-rich sites, smarter

Create dynamic, content-driven sites without code. Manage collections behind the scenes, sync with the design and hand over knowing clients can’t touch your work.

An animation to demonstrate how the Wix Studio CMS works. There’s a project page for an architecture firm on the right, and to the left there’s a CMS collection. Several new projects get added to the CMS and the project page design updates to show the new projects.
An animation to demonstrate how the Wix Studio CMS works. There’s a project page for an architecture firm on the right, and to the left there’s a CMS collection. Several new projects get added to the CMS and the project page design updates to show the new projects.

Lay the groundwork

Build the content structure you need with presets, templates or from scratch. Import content from a CSV or manually upload text, images, rich content and more.

Connect to the design

Design with full control in the Wix Studio Editor, then connect collections to display dynamic content. Create repeating layouts, add filters and gather content from site visitors—all without code.

Hand over seamlessly

Give clients the freedom to manage their content from an intuitive dashboard, while keeping your design intact. They can make updates on desktop, or from the mobile app.

Create once, scale endlessly with dynamic pages

Turn one page into hundreds with the same layout but unique content, URLs and SEO settings. Easily update content or add pages right from your CMS collections.

An example dynamic page for one of the art gallery’s exhibitions called Mineral Treasures.
An example dynamic page for a gallery exhibition called Modular Visions. All the pages for the different exhibitions have exactly the same layout, but different images, text and unique URLs.
An example dynamic page for a contemporary art gallery that shares information about a specific exhibition called Organic Impressions.

Ramp up creation with presets

Build faster with ready-made layouts and prebuilt collections that you can customize with your own content and design. 

An example layout for a website section featuring team members.
A example layout for the “Our projects” section of a website with images, text and a description displayed in a uniform layout.
An example layout for a blog listing page.

Extend beyond built-in capabilities

Use Wix Data APIs to manage CMS content with code. Fully control filters and sorting, query items, intercept interactions using hooks, aggregate data from collections and much more to build exactly the functionality clients need. 

1   import wixData from 'wix-data';

2   import { addDays } from 'public/utils';

3   $w.onReady(function () {

4     $w("#search").onClick(async () => {

5       const origin = $w("#origin").value;

6       const destination = $w("#destination").value;

7       const departDate = new Date($w("#depart").value);

8       const returnDate = new Date($w("#return").value);

9       const numberOfTravelers = $w("#travelers").value;

10      const { items: foundFlights } = await wixData

11        .query("availableFlights")

12        .eq("origin", origin)

13        .eq("destination", destination)

14        .between('departDate'addDays(departDate1),

15        addDays(departDate, -1))

16        .between('returnDate'addDays(returnDate1),

17        addDays(returnDate, -1))

18        .ge("availableSeats", numberOfTravelers)

19        .find()

20      renderResults(foundFlights);

21      });

22  });

import wixData from 'wix-data';

import { addDays } from 'public/utils';

$w.onReady(function () {

  $w("#search").onClick(async () => {

    const origin = $w("#origin").value;

    const destination = $w("#destination").value;

    const departDate = new Date($w("#depart").value);

    const returnDate = new Date($w("#return").value);

    const numberOfTravelers = $w("#travelers").value;

    const { items: foundFlights } = await wixData

      .query("availableFlights")

      .eq("origin", origin)

      .eq("destination", destination)

      .between('departDate', addDays(departDate1),

      addDays(departDate-1))

      .between('returnDate', addDays(returnDate1),

      addDays(returnDate-1))

      .ge("availableSeats", numberOfTravelers)

An example website for a luxury travel agency. There’s a search bar where users can enter their destination, dates and number of travelers, demonstrating the ways you can use the Wix Data API to work with complex content.

Your hard work can’t be undone

Hand over a site clients can manage while keeping your design safe from any mishaps. Assign permissions so they can update content from an intuitive dashboard—or on the go from the Wix Owner app.

A mockup of the back end of the travel agency website, where the client has permission to edit the CMS and add destination details.

Bring Wix’s Headless CMS to any tech stack

Take the CMS to any platform so you can manage data for multiple websites and apps, all from a single dashboard.

1   import { createClient, OAuthStrategy } from '@wix/sdk';

2   import { items } from '@wix/data';

3

4   const wixClient = createClient({

5   modules: { items },

6   auth: OAuthStrategy({ clientId: 'MY-CLIENT_ID' }),

7   });

8   

9   const dataItemsList = await wixClient.items.queryDataItems({

10  dataCollectionId: 'Billing/PriceQuotes',

11     // Please specify the dataCollectionId you require

12   }).find();

13   console.log('My Data items:');

14   console.log('Total: ', dataItemsList.items.length);

import { createClient, OAuthStrategy }

from '@wix/sdk';

import { items } from '@wix/data';

const wixClient = createClient({

  modules: { items },

  auth: OAuthStrategy({ clientId:

  'MY-CLIENT_ID' }),

});

const dataItemsList = await wixClient.items.queryDataItems({

  dataCollectionId: 'Billing/PriceQuotes',

  // Please specify the dataCollectionId

  you require

}).find();

console.log('My Data items:');

console.log('Total: ',

dataItemsList.items.length);

An example of the CMS interface, which is organized into columns and rows. Each row is a separate project, with a field for title, photo, description and more.
An example of the CMS interface, which is organized into columns and rows. Each row is a separate project, with a field for title, photo, description and more.

Popular supported
technologies

Popular supported technologies

Fast track complex creation, hand over with confidence.

bottom of page