Anonymous salary sharing at whatdotheymake.com.
No accounts, no paywalls, no ad-tech tracking. Submit salary data, browse what others make.
Nuxt 3 on Cloudflare Workers with D1 for storage. Uses an Anthropic-compatible LLM proxy (we use LiteLLM) for content moderation and salary scoring.
npm install
cp .env.example .env
# fill in the three required vars (see .env.example)
npm run devWithout Cloudflare bindings, data lives in memory.
See .env.example. You need:
NUXT_LLM_BASE_URL- your LLM proxy endpointNUXT_LLM_AUTOMOD_API_KEY- for content moderationNUXT_LLM_SALARY_API_KEY- for salary scoringNUXT_LLM_FAILOVER_API_KEY- optional direct Anthropic fallback key if proxy requests fail
Create your local Wrangler config from the template, then create a D1 database and drop its ID into wrangler.toml:
cp wrangler.example.toml wrangler.toml
npx wrangler d1 create whatdotheymake-dbRun migrations, set secrets, deploy:
npm run db:migrate
npx wrangler secret put NUXT_LLM_BASE_URL
npx wrangler secret put NUXT_LLM_AUTOMOD_API_KEY
npx wrangler secret put NUXT_LLM_SALARY_API_KEY
npx wrangler secret put NUXT_LLM_FAILOVER_API_KEY
npm run deployNo accounts, no sessions, no ad pixels, no analytics scripts. Infrastructure providers may still process technical request data for security/reliability, and text fields are moderated through an Anthropic-compatible API. Submitted salaries can optionally be fuzzed by +/-$1-2k before storage. Edit/delete works via a management code the submitter keeps.
- We will never run ads.
- We will never put salary browsing or salary submission behind a paywall.
- Submission management codes are high-entropy random tokens.
- Tokens are stored hashed (SHA-256) at rest.
- Submission edits are audit logged and visible to the code holder.
See CONTRIBUTING.md. Run npm run ci before opening a PR.
Security issues: SECURITY.md