Getting started

Introduction

What Vlozi Collections is, and the core concepts you need before you start.

Vlozi Collections is a structured-content backend. You define the shape of a content type in the dashboard — a collection — then add individual records called entries, publish them, and render them on any website through a public read-only API or a drop-in script widget. There is no backend of your own to run, and no database to manage.

Collections is the display-oriented sibling of Vlozi Forms. Forms collects structured input from visitors; Collections publishes structured content that the site owner writes. Both are multi-tenant, tenant-scoped backends fronted by the Vlozi gateway.

Core concepts

Collection

A collection is a named content type with a fixed schema — for example Team Members, Testimonials, Services, FAQ, or Hero Section. A collection lives inside one workspace (tenant) and has a stable, per-tenant slug (e.g. team-members) that you can reference in code.

Cardinality: single vs many

Cardinality Meaning Typical use
single Exactly one entry Whole-page regions — a hero banner, an About blurb, contact info
many (default) A repeating list of entries Team, testimonials, services, FAQ

Cardinality is immutable after creation — collapsing several existing entries into one would be ambiguous, so it can't be changed later.

Collection schema

The schema is the list of field definitions that give an entry its shape. Each field has a name, a type, and optional validation/label props. Because entries render on strangers' public sites, schemas are validated and sanitized at write time — see Field types for the full list and Security for how input is tamed.

{
  "fields": [
    { "name": "name", "type": "text", "label": "Full name", "required": true },
    { "name": "photo", "type": "image", "label": "Headshot" },
    { "name": "role", "type": "select", "options": ["Engineer", "Designer", "Sales"] }
  ]
}

Entry

An entry is one record in a collection — the actual content. An entry holds a data object whose keys match the collection's field names. Every entry has a lifecycle:

Status Meaning
draft Only visible to the workspace through the admin surface. Never served publicly.
published Visible through the public API and the embed widget.

Entries in a many collection also carry a manual sort order (drag-and-drop in the dashboard), which drives the default render order everywhere.

Public vs administrative surfaces

Collections ships two very different surfaces, which matter for how you use it:

  • Public read-only API (/collections/c/…) — no authentication. The collection_id in the URL is the credential. Only published entries are served. This is what a website, or the embed widget, calls.
  • Admin REST + MCP (/collections/admin/…, /collections/mcp/…) — JWT-authenticated for the seller dashboard and AI agents, guarded by role-based permissions.

What you get

  • A graph of content types you fully control — field types, validation, relations between collections.
  • Draft → publish workflow — author content without making it live until you're ready.
  • Drop-in embed widget — plain <script> markup that renders your published entries, no build step.
  • Public JSON API — fetch published entries from any language; optional relation resolution.
  • Relations & groups — link a collection's entries to entries of another collection (self-reference allowed), and nest repeating sub-fields for complex data.
  • Site synchronization — when published content changes, Vlozi's site-sync integration can rebuild your static site automatically.

TIP

Jump to the Quickstart to put your first collection on a website in a few minutes.

Collections · Getting startedEdit on GitHub