Skip to content

Project structure

Where stream definitions, content, views, and app code live.

Top-level layout

streams.dev/
├── app/                    # Minimal Laravel app code
├── streams/                # Stream JSON definitions
├── streams/data/           # Filebase content for streams
├── resources/views/        # Blade templates
├── routes/                 # Laravel routes (mostly defaults)
├── config/                 # Laravel + streams config
└── composer.json           # Core, UI, path repos

streams/ — configuration

Each .json file defines one stream. Examples in this repo:

File Stream handle Purpose
pages.json pages Site pages at /, /docs, /addons
docs.json docs Hub documentation at /docs/{id}
docs_categories.json docs_categories Sidebar and index groupings
packages.json packages Add-on catalog (type: self)
core_docs.json core_docs Core reference at /docs/core/{id}
ui_docs.json ui_docs UI reference at /docs/ui/{id}
api_docs.json api_docs API reference at /docs/api/{id}

Stream JSON holds fields, routes, source adapters, and optional UI admin config. See Streams for the full schema.

streams/data/ — content

Filebase entries live beside stream definitions:

streams/data/
├── docs/              # Hub guides (*.md)
├── core_docs/         # Core package docs
├── ui_docs/           # UI package docs
├── api_docs/          # API package docs
├── pages/             # HTML pages (*.html)
└── packages/          # Package catalog entries (if used)

Entry filenames become entry IDs (for example introduction.md → /docs/introduction).

resources/views/

Path Used by
docs.blade.php All documentation routes
page.blade.php, blank.blade.php Site pages stream
partials/sidebar.blade.php Docs sidebar navigation
partials/topbar.blade.php Site header

Application code

AppServiceProvider registers the admin panel:

UI::panel(
    Panel::make('admin')
        ->default()
        ->path('admin')
        ->brandName('Streams')
        ->middleware(['web'])
);

Most domain logic lives in the packages under vendor/streams/, which Composer installs as git clones from GitHub.

Composer repositories

composer.json points each Streams package at its GitHub repository and pins the branch:

{
    "require": {
        "streams/core": "dev-rc/prep as 2.0.x-dev",
        "streams/ui": "1.0.x-dev"
    },
    "repositories": [
        { "type": "vcs", "url": "https://github.com/laravel-streams/streams-core.git", "no-api": true }
    ]
}

The as 2.0.x-dev alias lets packages that require streams/core ^2.0 accept the branch. For local package work, php scripts/composer-local.php writes a gitignored composer.local.json with symlinked path repositories; see Local development.

Related