SR
Click to open github profile
Composables

useCraftCurrentSite

Learn how to use the useCraftCurrentSite composable.


This composable offers an easy way to retrieve the current site based on the siteMap defined in nuxt.config.ts. It facilitates multisite support and simplifies querying data from your Craft CMS backend.

Usage

const currentSite = useCraftCurrentSite();

By default it returns the current site based on the path defined in the siteMap property in your nuxt.config.ts. You can change this behavior by changing the siteDetectionMode to origin. You can read more about that in the install docs.

siteDetectionMode: path

// Url: http://localhost:3000/de/happy-trying
//
// Nuxt Config:
//  craftcms: {
//    baseUrl: 'https://cms.ddev.site',
//    authToken: 'xxxx',
//    siteDetectionMode: 'path',
//    siteMap: [
//      {
//        handle: 'en',
//        origin: 'http://localhost:3000',
//        path: '/',
//      },
//      {
//        handle: 'de',
//        origin: 'http://localhost:3000',
//        path: '/de',
//      }
//    ],
//  },

const currentSite = useCraftCurrentSite();

// currentSite.value will be:
//  {
//    handle: 'de',
//    origin: 'http://localhost:3000',
//    path: '/de',
//  }

siteDetectionMode: origin

// Url: https://en-site.ddev.site/happy-trying
//
// Nuxt Config:
//  craftcms: {
//    baseUrl: 'https://cms.ddev.site',
//    authToken: 'xxxx',
//    siteDetectionMode: 'origin', 
//    siteMap: [
//      {
//        handle: 'en',
//        origin: 'https://en-site.ddev.site',
//        path: '/',
//      },
//      {
//        handle: 'en',
//        origin: 'https://de-site.ddev.site',
//        path: '/',
//      }
//    ],
//  },

const currentSite = useCraftCurrentSite();

// currentSite.value will be:
//  {
//    handle: 'en',
//    origin: 'https://en-site.ddev.site',
//    path: '/',
//  }
Note

To use this composable, you have to define your sites in the siteMap property in the nuxt.config.ts.

No site found

If no current site is available, it will return the first site defined in the siteMap Array.

Type

function useCraftCurrentSite(): CompoutedRef<CraftSite>;

type CraftSite = {
    handle: string;
    origin: string;
    path: string;
    id?: number;
    label?: string;
    lang?: string;
    primary?: boolean;
};

Copyright © 2025 Samuel Reichör