Building from Source
Clone the development branch
Section titled “Clone the development branch”The repository’s default branch is dev. The alpha branch is used for
release snapshots; do not assume a main branch exists.
git clone https://github.com/Rheosoph/flow-like.gitcd flow-likegit checkout devFork the repository first if you plan to contribute.
Install the toolchain
Section titled “Install the toolchain”Flow-Like uses mise to pin and run the repository
toolchain. The root mise.toml currently installs Rust, Bun, Node.js 22,
Python 3.12, and uv.
Host builds use Rust 1.97.1, pinned in rust-toolchain.toml, mise, CI, and
Docker builders. This satisfies Wasmtime 48’s Rust 1.95 minimum.
Use the repository pin when building Flow-Like. Guest WASM packages have
separate compiler requirements documented in their templates.
mise trustmise installbun installThe desktop build also needs:
- the Tauri 2 system prerequisites for your operating system;
protoc, because Rust build scripts compile the repository’s protobuf definitions;- a working C/C++ build toolchain for native dependencies.
Platform-specific native libraries and mobile toolchains have additional requirements. Use the task you intend to run as the final source of truth.
Run the desktop app
Section titled “Run the desktop app”The top-level task detects the current operating system and architecture:
mise run dev:desktopUse an explicit task only when you need to override that detection:
mise run dev:desktop:mac:armmise run dev:desktop:mac:intelmise run dev:desktop:win:x64mise run dev:desktop:win:armmise run dev:desktop:linux:x64mise run dev:desktop:linux:armTo run the desktop app with the local API and runtime:
mise run dev:desktop:localBuild a release bundle
Section titled “Build a release bundle”mise run build:desktopTauri writes binaries and installers below target/release/; the precise
bundle directory and extension depend on the platform.
Maintain desktop release tooling
Section titled “Maintain desktop release tooling”The frontend release job installs the full workspace and exports its assets
for the native targets. Native jobs install the smaller package set in
.github/release-tools into the runner’s temporary directory.
Keep its Tauri CLI and dotenv CLI versions aligned with the versions resolved
in the root bun.lock. Update the release-tools lockfile in a temporary
directory outside the repository so Bun does not discover the monorepo
workspace. Commit that directory’s package.json and bun.lock together.
The native release workflow
runs apps/desktop/scripts/sync-version.ts explicitly. It does not install the
desktop workspace, so it cannot rely on the desktop postinstall script to
synchronize versions.
Other useful tasks
Section titled “Other useful tasks”mise tasksmise run dev:webmise run dev:docsmise run build:webmise run build:docsmise run checkmise run fixmise.toml is the authoritative task list. Several tasks wrap package-local
scripts, so run them from the repository root unless a page explicitly says
otherwise.
Linux rendering issues
Section titled “Linux rendering issues”Tauri uses the system WebKitGTK stack on Linux. If a window fails to render, confirm the Tauri prerequisites for your distribution and check the upstream Tauri issues for your WebKitGTK or graphics-driver combination.