Stack
From docs/SYSTEM_OVERVIEW.md § Stack and CLAUDE.md.
- Runtime: Bun (never
node/npm/npx/ts-node) - Language: TypeScript, strict mode
- Database: PostgreSQL 15 with pgvector extension
- Queue: BullMQ on Redis 7
- Scraper: Crawlee + Playwright (Chromium headless)
- Maps: Google Places API (direct, not via Serper)
- Auth: Keycloak 22 (JWT)
- Infra: Docker Compose for local dev (see Local Development)
Bun-native APIs in use
Bun.sqlfor Postgres (project rule: neverpgorpostgres.js)Bun.redisfor Redis (project rule: neverioredis)Bun.fileovernode:fsBun.serve()for HTTP (no Express)- Bun auto-loads
.env— nodotenvimport
Notable dependencies
@crawlee/playwright, @mendable/firecrawl-js, bullmq, zod.
Warning
Legacy
pgandioredisimports still exist in several files. Project CLAUDE.md says to migrate toBun.sql/Bun.redis. P2 issue in Known Issues.