Streams and Entries

What are streams?

We have three distinct concepts that use the term "Streams" in it's name.

Streams Data

Streams when used as a noun is often referring to the structure/information in the Stream's database table(s). The records in a stream are referred to as Entries.

In this context Streams is essentially a database table bound to a model. In PyroCMS streams are grouped into namespaces for organization.

Streams Platform

The Streams Platform is the foundation of PyroCMS. It can be seen as a framework like Laravel. Usually used by name or the abbreviation "SP" in discussion. Sometimes referred to as the Streams API (not to be confused with the API module).

Streams Module

The Streams Module is a PRO addon that let's you manage Streams Data via the control panel. Typically you would run a couple commands to make an addon and scaffold streams. However the Streams Module let's you do the same visually and has configurable overrides to customize UI and even an option to add the namespace to your navigation like a virtual module.

Stream Entries

Stream entries are the database records found within the stream's database table.


Fields are attributes that are assigned to a stream. The often represent a database column and are accessed via the model as an attribute.

Fields use a slug for their attributes. For example a field named First Name would probably have a slug like first_name and could be accessed like this:

{% set entry = entries('users').where('first_name', 'Ryan').first() %}
{{ entry.first_name }}
$entry = $repositoryOrModel->where('first_name', 'Ryan')->fist();

echo "My name is {$entry->first_name}";

Field Types

Field types represent the type of data the field uses. PyroCMS comes with a number of field types out of the box and many others are available through our PRO subscription or our addon marketplace.

Sometimes field types represent relations and define native Laravel relations you can use similarly to attributes:

dump($entry->familyMembers()->where('role', 'dad')->first());