Glossary

Last updated on August 15, 2024.

This article contains definitions for the most commonly used technical terms and jargon on Insites. The article also contains links to learn more about a topic in depth.

Assets

Assets are files an HTTP web server can serve without backend/server processing. They are usually javascript, stylesheets, documents (HTML, pdf, doc), fonts, media (audio, video) etc. files.

Learn more: Assets

Assets, Asset Building Tools

Use any tool you want to provide static assets. Webpack is preferred, which is arguably the most powerful and flexible. You might want to use rollup or any other set of tools you are comfortable with, as long as the output is placed into the directory.

Learn more: Comparison of Build Tools (SurviveJS)

Assets, Static Assets

To upload a static asset into our Content Delivery Network (CDN), place your assets into the directory. They will be propagated in the most efficient way for the user that is currently accessing them.

Learn more: Using Static Assets on Your Pages

Permissions

Permissions (authorization policies) allow you to restrict access to forms and pages flexibly. Each form or page can have multiple policies attached to it.

Each policy is parsed using Liquid, which the system checks in order of its appearance in the code.

The system redirects the user to a URL provided by the developer if the condition is unmet. You can also add a message to be displayed to the user when that happens.

Learn more: Permissions

CDN

Insites use one of the best Content Delivery Networks in the world: CloudFront.

Everything you place in the directory will be served by this CDN. You can nest directories however you want; the directory structure will be kept.

You can access files using either the Liquid filter, hash, or composing the path yourself, since it is deterministic – it consists of + path/to/asset.

Learn more: Amazon CloudFront

'content_for' and 'yield'

Inject dynamic content into a layout from a page or partial using and the tag. Use these to alter content that is higher from the structural point of view (layout). It is often used when setting metadata for a particular page (i.e. title tag contents), loading per-page javascript, and per-page stylesheet.

Usage example:

Define what you want to yield on your page:

Then use yield inside the layout:

Database Fields

Database fields (or Properties) are fields associated with a User Profile, Table, etc.

Some of them are provided by Insites to jumpstart your development – for example, there is a Table called , which has multiple database fields baked in.

Learn more: Database Fields and Tables

Tables

Tables have multiple use cases. These custom database tables, allow you to build highly customized features. Use them to group Database Fields (Properties), and allow the user to provide multiple values for each.

For example, you can build a table storing a user's favourite books. Each book has an author, title, and number of pages. These three fields (or Properties) are grouped in a Table to store custom data.

Now you can build a form that allows users to add multiple books attached to their user profile (using GraphQL).

Learn more: Database Fields and Tables

Form

Forms give you full control over the look and feel of a form and its behaviour. They also allow you to define field validations.

Learn more: Forms

FrontMatter (YAML)

The triple dashes that can be found in various places (e.g. Forms) are called FrontMatter.

These are used to define variables in a YAML format. You can use Liquid and GraphQL inside the FrontMatter, which resolves before the server interprets those variables.

There are various implementations of FrontMatter. Still, they have one aspect in common: they parse YAML embedded in a different file and return the configuration and content of that file. Configuration is between & . The rest of the content follows after the FrontMatter.

Learn more:

GraphQL

A query language used to communicate with our data storage.

Learn more: GraphQL

Instance

The sites created on the Insites Console are called Instances. Instances have a URL, which represents different environments, such as  or .

You most likely would want to use a environment to develop your application, and then use to show the client the progress and get the final sign-off before promoting changes to .

Learn more:

Layout

A Layout is a special kind of Liquid view that stores code that normally repeats on many pages and surrounds page content.

The usual use case for layouts is storing HTML doctype, header, footer, and scripts.

Learn more: Layouts

Liquid

Liquid is a template language used in Insites to build dynamic pages and to provide dynamic configuration (e.g. based on currently logged-in users). Use Liquid to provide Permissions for forms and pages or to specify Notifications (email, SMS, API call).

Insites' Liquid Documentation is a good starting point if you are unfamiliar with Liquid. Many filters and tags have also been added to make development easier.

Learn more: Liquid for Designers

insites-cli

is a command line tool provided by the Insites team to help you:

  • develop applications quickly
  • debug existing applications
  • avoid common programming mistakes
  • import data into your application
  • export data from your application
  • deploy applications to environments

and much more.

Node.js

Node.js is a javascript runtime based on Chrome's V8 engine. It allows developers to write and run javascript in environments other than browsers.

You should use Node's newest Long Term Support (evergreen) version for stability, security and performance reasons.

Learn more: NodeJS.org

Notifications

Notifications are messages sent to application users (including admins) when a certain event happens. A message can be an email, SMS or programmatic call to a 3rd party API. Examples of events that can trigger a notification include file import/export, creation of a contact in the CRM, or other such events as specified by a developer.

They can be delayed; you can use Liquid, GraphQL, and trigger conditions to decide if a Notification should be sent. It is a potent mechanism used, for example, to welcome new users, follow up after they added their first item, or even if they have been inactive for some time.

Learn more: Notifications

NPM and NPM scripts

NPM is a Node Package Manager that allows you to install packages published in the NPM registry. There are many different packages that you can install, some of them written by the Insites team, like the .

Learn more: NPM Official Documentation

Page

Pages are essential components of our platform that define content displayed at a given path (URL).

Pages have to be located in the directory, and their content is rendered in place of the variable in the layout they’re using.

Learn more: Pages

Partial

A Partial is a piece of code extracted to its separate file to maintain readability and the rule of DRY – Don’t Repeat Yourself.

Parameterise partials and use them in various places, e.g. layouts, pages, Permissions, and Forms.

Example usage:

With variable passed to the partial:

Insites Console

The Insites Console is an online interface where users can create, manage, and configure sites built with Insites and manage other users of the Console. The site created on the Console will be the site you deploy and sync your changes to during development.

Learn more: Insites Console

Deploy (insites-cli deploy)

Using means it will:

  • run a static analysis of your code to find errors/deprecations
  • compress your assets and send them to the storage service
  • compress your app and send it to the server

Sync (insites-cli sync)

Syncing to any environment means that is watching your filesystem for changes. Whenever you change a file, it automatically picks it up and sends it to the server. If this operation fails, you will find a message in your console – there are validations on the server side to prevent you from deploying corrupted code and breaking your application.

Translations

Translations are .yml files that define date format or flash messages for multilingual sites.

Learn more: Translations

User Profiles

User Profiles are roles in the application. Each User Profile can be associated with any number of Properties, Categories, and Tables. All users are assigned a User Profile named Default.

Learn more:

Version Control System (Git)

Version Control System is a tool that helps you store a history of your changes to go back to when things go wrong. Additionally, if you work in a team, they help you keep track of who did what, resolve potential code conflicts, discuss code, etc.

Insites recommends Git as it is decentralized and widely supported by many tools.

Learn more: Version Control (Wikipedia)

Views

The usual structure of a webpage with the possibility to use layouts, pages and partials:

  1. Create a layout:
  2. Create pages with different slugs:
  3. Create partials that are used both in layout and pages: ,

Because is a partial, it can be used in multiple places, about-us page, contact-us page, and in a configuration form.

YAML

A human-friendly data serialization standard used in Insites for setting properties in configuration files.

Learn more: Official YAML Documentation

Have a suggestion for this page?

Didn't quite find what you are looking for or have feedback on how we can make the content better then we would love to hear from you. Please provide us feedback and we will get back to you shortly.