Skip to content

Developers · Data

Schema Overview

Last updated 1 November 2026

This document discusses how data is stored and handled in Insites. Three schemas are used by the platform:

  • Users
  • User Profiles
  • Records

Users

Users are accounts that any of your users can have and are identified by their unique email addresses. You can define properties for all users in the user.yml file.

User Profiles

User Profiles are roles in the application. Each User Profile can be associated with any number of Properties and Tables. The difference between User Profile and Table is that each user can have a maximum of one profile of a given name (but can have many different profiles), whereas they can have many custom records with the same name. From a practical perspective, it is very simple to create an operation on a UserProfile (i.e. create a user profile, or if it exists, update it).

Example directory structure of with sample files:

app
├── user.yml
└── user_profile_types
    ├── developer.yml
    └── client.yml

Records

A Table is an object that describes all Record objects that belong to it. Think of Tables as a custom database table, which allows you to build highly customized features. Use them to group Properties, and allow the user to provide multiple values for each of them.

Properties are fields that you attach to a User Profile, Table, etc. Think of them as custom database columns (though complex types, like attachments and images, should be treated as separate database tables). Some database fields (Properties) are also provided to jumpstart development.

Example directory structure of with sample files:

app
└── schema
    └── blog_post.yml