Reference implementation of a StreetMesh Server — the Laravel host that StreetMesh Browsers connect to in order to render Places, voice NPCs, run Scenes, and bridge into the StreetMesh Protocol.
This repository is intentionally thin. The server itself is close to a stock Laravel install; all StreetMesh capability is delivered as Laravel packages mounted as git submodules under packages/. That keeps each capability portable into other Laravel hosts and gives every package its own history, issues, and release cadence.
For the bigger picture — the values, the vocabulary, and how this fits into Avatars / Protocol / MeshObject / StreetTiles / Hub / Browser — see The Dream at https://github.com/StreetMesh.
- PHP
^8.3 - Laravel
^13.0(Framework 13.7.x) - SQLite by default (swap via
.env)
| Path | Repo | Status |
|---|---|---|
packages/story-engine |
StreetMesh/StoryEngine |
Skeleton scaffolded — Milestone 1 (Skateboard) in progress |
Each package is a git submodule and a Composer package consumed via a path repository declared in the host composer.json, so edits inside packages/<name>/ are picked up immediately without re-installing.
git clone --recurse-submodules git@github.com:StreetMesh/Server.git
cd Server
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan serveIf you cloned without --recurse-submodules:
git submodule update --init --recursiveSubmodules track their own main. To work on a package:
cd packages/story-engine
git checkout main
# ...edit, commit, push to StreetMesh/<Package>...
cd ../..
git add packages/story-engine
git commit -m "Bump story-engine to <sha>"git submodule add git@github.com:StreetMesh/<Package>.git packages/<package-slug>
composer config repositories.<package-slug> path packages/<package-slug>
composer require streetmesh/<package-slug>:@devThe package's composer.json should declare its service provider under extra.laravel.providers so Laravel's package discovery wires it up automatically.
The host application code in this repository is MIT-licensed. Individual packages declare their own licenses inside packages/<name>/LICENSE. The StreetMesh prose and documentation at the org level are CC BY-NC-SA 4.0.