Skip to content

Getting Started

Welcome to Dalang. This guide gets you from zero to your first pull request in under 30 minutes.

Prerequisites

Rust (via rustup)

Terminal window
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Verify:

Terminal window
rustc --version
cargo --version

Bun (JavaScript runtime & package manager)

Terminal window
curl -fsSL https://bun.sh/install | bash

Verify:

Terminal window
bun --version

Just (task runner)

Terminal window
cargo install just

Verify:

Terminal window
just --version

First-Time Setup

Terminal window
git clone https://github.com/dalangHQ/dalang.git
cd dalang
bun install
just ci

If just ci passes, you’re ready.

Repo Layout

DirectoryContentsLanguage
product/crates/Core Wasm runtime cratesRust
product/cli/dalang CLI binaryRust
product/wit/WIT contract definitionsWIT
docs/Astro Starlight documentation siteTypeScript/Astro
handbook/Public handbook subset (strategy, GTM, sales, legal)Markdown
ops/Infrastructure templates (Terraform, Helm)HCL/YAML
marketing/Public marketing copyMarkdown

Common Tasks

Run all checks locallyjust ci (Rust tests + lint + docs build).

Start docs dev serverjust dev-docs → live preview at http://localhost:4321.

Run only Rust checksjust test-fast (build + clippy + tests).

Build docs for deploymentjust build-docs.

List all available commandsjust --list.

Your First Contribution

Fix a docs typo

  1. Edit any .md file under content/ or handbook/
  2. Run just build-docs to verify the Astro build
  3. Commit: git commit -m "docs: fix typo in getting-started guide"
  4. Push and open a PR

Add a Rust feature

  1. git checkout -b feat/my-feature
  2. Add code in product/crates/dalang-core/src/
  3. Add tests inline (#[cfg(test)] mod tests { ... })
  4. Run just ci to verify everything
  5. Commit: git commit -m "feat(core): add my-feature"
  6. Push and open a PR

Update the handbook

  1. Edit a file in handbook/ (e.g. handbook/company/master-plan.md)
  2. Ensure YAML frontmatter has at least title and description
  3. Run just dev-docs to preview at http://localhost:4321
  4. Commit: git commit -m "docs(handbook): update master plan"
  5. Push and open a PR

CI Pipeline

PRs trigger GitHub Actions that only test changed paths:

Changed pathCI runs
product/** or Cargo.tomlRust tests + clippy + fmt
docs/**, handbook/**, marketing/**, README.mdAstro build only

Cycle time under 2 minutes for the common case.

Releases

No manual version bumps. CI automates via release-plz:

  1. Merge a PR with conventional commit (e.g. feat(core): ...)
  2. release-plz opens a chore: release PR with bumped versions + changelog
  3. A maintainer merges it
  4. release-plz publishes to crates.io and creates a GitHub Release

See the Releases runbook for details.

Next Steps