Skip to content

Developer Setup ​

Ark is an Expo SDK 57 and React Native 0.86 app using Bun, Expo Router, Uniwind, Zustand, SQLite, and local Expo modules.

Requirements ​

  • Nix and devenv for the repo-standard shell and CI parity
  • Android SDK/platform tools or Xcode/CocoaPods only when doing explicit native work

The devenv shell pins the official Bun 1.3.3 linux-x64-baseline build so it works on older x86-64 NAS CPUs that cannot run the Nixpkgs Bun build. Keep the checkout under /workspace on Hermes/NAS hosts; node_modules is installed there with Bun's NAS-safe copyfile backend and does not rely on /tmp surviving.

Setup ​

sh
devenv shell
setup

setup and install both run a frozen install. They never create or overwrite .env or .env.local. Interactive Bun commands parse existing .env and .env.local as dotenv data via Node, then start raw Bun with --no-env-file; the files are never sourced, evaluated, or copied into the Nix store.

Run ​

sh
dev

Run bun run android or bun run ios only when native work is intentional. Expo Go is useful for JS-only work; native-heavy features need a development build.

Checks ​

sh
format-check
typecheck
lint
test
build-or-docs
verify

check runs typecheck, lint, and tests. verify adds formatting plus documentation checks/build, and explicitly does not run Expo prebuild, Gradle, Android, iOS, simulator, or device work. Ark installs no commit hook; checks are explicit and run once. GitHub CI keeps its iOS simulator build as a separate job.

Ark is beta software. Verify critical information with official sources and field training.