Getting Started with Streamplace Development
So, you’ve decided to contribute to Streamplace development. Here’s how you can get started:
Prerequisites
Section titled “Prerequisites”- Node.js
- pnpm
- A way to install it is with
npm install -g pnpm
if corepack is not enabled in your node install.
- A way to install it is with
- Go (version 1.24)
- If you use
mise
, you can install latest Go 1.24 withmise install go@prefix:1.24
- If you use
- Meson
- Ninja
- pkg-config
- Rust
- Working C and C++ compilers:
gcc
on Linux orclang
(via Xcode) on macOS.
Get Started
Section titled “Get Started”Streamplace Node
Section titled “Streamplace Node”- Install prereqs
make dev-setup
Now you’re ready to start developing! The app can be rebuilt with make dev
, so
as you make changes to the node, you can re-run your app something like this:
macOS:
make dev && ./build-darwin-arm64/streamplace
Linux:
make dev && ./build-linux-amd64/streamplace
The node will be accessible at http://127.0.0.1:38080.
By default, the make dev
Streamplace node will proxy incoming requests
front-end requests — basically every endpoint that’s not at /api
or /xrpc
—
through to the Streamplace app dev server. Usually, you’ll usually want to be
hacking on both of those things at once. If this isn’t the case — like you’re
making exclusively backend changes — and you want to launch the node with the
embedded frontend, you can override the pertinent command line argument:
make dev && ./build-darwin-arm64/streamplace --dev-frontend-proxy=""
Streamplace App
Section titled “Streamplace App”The Streamplace app will require a local Streamplace node to make any substantial changes, so you may want to start by following the Streamplace node section. However, if you’re only working on front-end changes and you’re having trouble building the node locally, you can download a production release of Streamplace and configure it to forward to the dev server with a command like:
curl -O https://git-cloudflare.stream.place/api/v4/projects/1/packages/generic/latest/VERSION/streamplace-VERSION-darwin-arm64.tar.gztar -xzvf streamplace-VERSION-darwin-arm64.tar.gz./streamplace --dev-frontend-proxy=http://127.0.0.1:38081
Either way, once you have a local Streamplace node running, install the prerequisites with:
pnpm install
Then start building all of the packages with:
pnpm run start
iOS Build
Section titled “iOS Build”pnpm run app ios
Android Build
Section titled “Android Build”pnpm run app android
You can also specify a physical device with something like
pnpm run app ios -d 'Stream’s iPhone'
. Note that these commands only run
native builds; you’ll still need the development server booted up with
pnpm run start
.
Note also that react-native-webrtc
, our primary package for streaming in and
playing back on iOS/Android, doesn’t work very well in the iOS Simulator. It may
work, it may crash. Physical devices preferred when possible!
Streamplace Docs
Section titled “Streamplace Docs”You’re looking at them. Boot up the dev server with:
pnpm run docs start
And you can then access them at http://127.0.0.1:38082/docs.