Introduction

Welcome to Laravel Streams

What is Laravel Streams?

Laravel Streams is an open-source set of Laravel packages which provide simple but poweful interfaces to fundamental application standards like data modeling, API interaction, UI, control panels, and more. Streams uses code-configured json files to configure your application and data structures.

Motivation

The ever-changing and widening landscape of web applications, websites, and the like, have stressed the traditions and ideology of popular CMS options. After digging into our own CMS engine we discovered that the problem is in the CMS paradigm. This project results from the complete deconstruction of that paradigm and establishes a new one built upon new fundamental values and principles.

Use Cases

Laravel Streams and its components are well suited to build a wide variety of applications:

  • Websites
  • Prototyping
  • PWA Backbone
  • Headless CMS
  • Integrated CMS
  • Code Generator
  • Application Core
  • Project Bootstraps
  • Development Automation

How does it work?

Laravel Streams focuses primarily on basic JSON descriptions of your data. We call them streams.

// streams/music.json
{
    "name": "Music",
    "fields": {
	    "id": "slug",
        "title": "string",
        "mp3": "file",
        "artist": {
            "type": "relationship",
            "related": "artist"
        }
    }
}

By default, Laravel Streams leverages a flat-file database engine. All databases supported by Laravel are inherently supported. An adapter interface allows you to tap into any data source you need.

Building Upon Data

By building upon data structure, we can use stream configurations to help drastically reduce the time required to do things like:

  • Validating the data.
  • CRUD'ing the data via a fluent and extensive API.
  • Generate code from stream configurations.
  • Generate stream configurations from data.
  • Serving and consuming the data via API.
  • Building comprehensive control panels.
  • Generating quality fake data.

Development Abstraction

Our overarching focus is to abstract, normalize, and optimize systems and work required from a wide range of Laravel projects. We try and restrict this to within the lens of our core focus of data abstraction and access.

Principle Concerns

Laravel Streams focuses on these fundamental areas of application development.

What's Next?

Time to get your feet wet.

Core Packages

Know what you are looking for already? Dive right into our core packages.

Community Resources