Skip to content

Run AudienceKit locally

Toolchains and tasks for every component are defined with mise in the repository’s mise.toml.

  • mise
  • PostgreSQL with PostGIS, running locally. On macOS: brew install postgresql@17 postgis.
  • Redis is not needed for local development.

From the repository root:

Terminal window
mise install # Ruby 4.0.7, Node 22 and Bun
mise run setup # install dependencies and create hotmess_development and hotmess_test
Terminal window
mise run api:dev # Rails on http://localhost:3000
mise run admin:dev # the admin console on http://localhost:4000

GraphQL 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.

Terminal window
mise run test # every component; the API specs need PostgreSQL running
mise run api:test # one component
mise run lint
mise tasks # list every task

Swift 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.