Agnostic design system for web and React Native. Monorepo powered by Yarn workspaces and Turborepo.
| Package | Description |
|---|---|
@majornutcracker/design-system-core |
Framework-agnostic tokens and theme helpers |
@majornutcracker/design-system-react |
React components |
@majornutcracker/design-system-react-native |
React Native components |
- Node
>=20(see.nvmrc, currently22.23.1) - Yarn
1.22 - Turborepo
^2.5with Terminal UI ("ui": "tui"inturbo.json) for interactive dev/native tasks
Turbo forwards these from your shell to tasks (globalPassThroughEnv):
| Variable | Purpose |
|---|---|
ANDROID_HOME |
Android SDK (required for dev:react-native:android) |
ANDROID_SDK_ROOT |
Same as ANDROID_HOME (compatibility) |
JAVA_HOME |
JDK 17 for Gradle |
HOME |
User home |
PATH |
Must include Java, Android SDK tools, and Node |
Android tasks pass through the same set. iOS tasks pass through PATH only.
Configure SDK/JDK vars in .zshrc (or your shell profile) before running native commands via Turbo.
Gradle home: scripts/android.sh may set GRADLE_USER_HOME to repo-local gradle-home-local/ for an allowlisted OS username only (see docs/android-gradle.md). Optional; most contributors use default ~/.gradle.
These Turbo tasks run with "persistent": true and "interactive": true (Expo/Next need a real TTY):
dev— Next.js and Expo Metroandroid—expo run:androidios—expo run:ios
Run them from a terminal (not a non-interactive runner). Turbo uses its TUI to attach stdin to the child process.
yarn install
yarn build
yarn typecheck
yarn clean
yarn dev:react # Next.js example on :3000
yarn dev:react-native # Expo Metro (bare workflow)
yarn dev:react-native:prebuild # Generate native ios/ android/ projects
yarn dev:react-native:android # expo run:android
yarn dev:react-native:ios # expo run:iosBare Expo workflow for example-react-native:
yarn build— compile workspace packagesyarn dev:react-native:prebuild— first time or after native config changesyarn dev:react-native:androidoryarn dev:react-native:ios— native build + runyarn dev:react-native— Metro only (when native projects already exist)
| App | Stack | Command |
|---|---|---|
apps/example-react |
Next.js 15 | yarn dev:react |
apps/example-react-native |
Expo 57 + Router (bare) | yarn dev:react-native / :prebuild / :android / :ios |
Run yarn build first so workspace packages emit dist/ before starting the examples.
apps/
example-react/
example-react-native/
packages/
core/
react/
react-native/
See CONTRIBUTING.md for setup, Turbo, Prettier, git hooks, and a link to docs/versioning.md.
- docs/versioning.md — SemVer for
coreand adapters - docs/publishing.md — CI + manual npm publish workflows
- docs/android-gradle.md — Android Gradle home / cache caveats
- CODE_OF_CONDUCT.md
- SECURITY.md