Run AudienceKit locally
Toolchains and tasks for every component are defined with mise in the repository’s mise.toml.
Prerequisites
Section titled “Prerequisites”- mise
- PostgreSQL with PostGIS, running locally. On macOS:
brew install postgresql@17 postgis. - Redis is not needed for local development.
Set up
Section titled “Set up”From the repository root:
mise install # Ruby 4.0.7, Node 22 and Bunmise run setup # install dependencies and create hotmess_development and hotmess_testRun the API and admin console
Section titled “Run the API and admin console”mise run api:dev # Rails on http://localhost:3000mise run admin:dev # the admin console on http://localhost:4000GraphQL is served at http://localhost:3000/v1/audience/:audience_id/graphql, tenant management at http://localhost:3000/v1/tenants/graphql, and the admin console calls the API at http://localhost:3000 by default. To see the console as a specific audience would, set VITE_TENANT_HOST, for example VITE_TENANT_HOST=admin.hotmess.social.
Test and lint
Section titled “Test and lint”mise run test # every component; the API specs need PostgreSQL runningmise run api:test # one componentmise run lintmise tasks # list every taskSwift is not managed by mise. Use Xcode on macOS or the swift:6.1 image on Linux, and run swift build and swift test from the repository root.
The repository’s README also covers setting up JetBrains IDEs, with run configurations for the API, admin console and tests.