Contributing
Set up the repository, run the tests, and work on the docs.
Upwell is MIT licensed and developed on GitHub. Issues and pull requests are welcome.
The repository
core/ (decision engine, validation, versions)
controller.ts
react/
ui/
expo-updates/
simulation/
android/ (Kotlin, Play Core)
ios/ (Swift, StoreKit)
plugin/ (config plugin)
schemas/ (JSON Schemas)
example/ (example app)
website/ (this site)
Library
npm install
npm test # engine table tests, controller, hooks, UI, plugin
npm run lint && npm run typecheck
npx changeset # describe your change for the changelogEngine changes start with a table test in src/core/__tests__. decide() is pure, so every rule
can be covered without a device.
Android native code needs JDK 21 for Gradle. iOS native code is compiled in CI on macOS.
Docs
This site is a Fumadocs app in website/, deployed separately from the library.
cd website
npm install
npm run dev # http://localhost:3000/docs
npm run buildPages are MDX files in website/content/docs, and meta.json files set the sidebar order. Every page
has an "Open in GitHub" link, so fixing a typo is one click away.