KDIGI CMS is built multi-site. One install serves many independent websites: a personal blog, an agency's client sites, a product site. Each website is a record in the Sites collection.
What a site has
Section titled “What a site has”- A domain, branding and display settings.
- Its own SEO templates (title, description, separator, variables such as
%title%and%sitename%). - Optional media storage on Cloudflare R2 (without it, the server disk is used).
- Its own content: posts, pages, categories, menus, FAQs, shortcodes, redirects, comments.
- A list of members allowed to work on that site.
Adding a site means creating a Sites record in the admin panel; the CMS itself is not redeployed. The site's frontend, domain and CDN are still yours to set up.
Working across sites
Section titled “Working across sites”Users who belong to several sites pick the active site in the admin panel; content lists are filtered to it. Super admins see every site.
Fetching content per site from a frontend
Section titled “Fetching content per site from a frontend”Public read access filters by publication status only, not by site. A frontend must always add the site condition to its query, otherwise content from different websites will mix:
curl "https://cms.example.com/api/posts?where[tenant][equals]=<site-id>"In code a "site" is called a tenant. See also Roles and permissions and the multi-site reference.