Community analytics and conduct casework for Hack Club, built on Slack metadata.
Mnemosyne is an internal Hack Club tool. It turns Slack metadata into community analytics and gives the fire department a place to manage reports and cases.
| Community (nemo) | Aggregate analytics for onboarding, replies, retention, activity and channels. |
| Fire engine | Cases, mirrored threads, notes, reports, actions, alt account detection and an audit trail. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Community
- Member journey: joining, getting replies, coming back and who is active.
- Per-channel analytics.
- Charts built with d3.
Fire engine
- Cases with assignees, participants, tags, resolutions, replies, notes, actions and reversals.
- Case merges, member standing and member guards.
- Reporter conversations and mirrored Slack threads, with deep links in both directions.
- Alt account detection: links, clusters and a review queue with verdicts.
- Audit log with saved queries and CSV export.
- Slack bot:
relaytakes reports andnemoworks them.
flowchart LR
slack[Slack] --> ingest[pipeline: ingest and jobs]
ingest --> pg[(Postgres)]
pg --> dbt[warehouse: dbt]
dbt --> pg
pg --> web[web: Rails]
web --> staff([Staff])
slack <--> bot[pipeline: bot]
bot --> pg
web --> proxy[proxy: FastAPI]
proxy --> slack
| Path | Contents |
|---|---|
web/ |
Rails app: community analytics, fire engine, admin and the public API |
pipeline/ |
Python: Slack ingestion, nightly jobs, the Slack bot and the seeder |
warehouse/ |
dbt project: staging models and marts |
proxy/ |
FastAPI service wrapping the Slack API clients |
db/ |
SQL migrations and the YAML tables for capabilities, actions and flags |
deploy/ |
Compose file and per-role env examples |
Requirements: Docker, Ruby, Python 3.13 with uv, and Postgres 18. devenv.nix provides all of them if you use devenv.
cp deploy/.env.example deploy/.envIn deploy/.env, set POSTGRES_DB=mnemosyne_seed (the seeder only writes to databases ending in _dev, _test or _seed) and BOOTSTRAP_ADMIN_SLACK_ID=USEED0000001.
(cd pipeline && uv sync)
(cd web && bundle install && bin/rails tailwindcss:build)
make up # Postgres
make provision # schemas, roles, grants, migrations
make seed SCALE=dev # synthetic community data
make serve # http://localhost:3000In development, /dev/be/USEED0000001 signs you in as the bootstrap admin.
make test # pytest and rails test
make lint # ruff and rubocop
make doctor # environment a role needs (ROLE=serve)- Palantir Foundry and its data protection and governance guidance were an inspiration. Mnemosyne is independent, and Hack Club is not affiliated with Palantir.
- d3 for the charts.








