Thank you for your interest in contributing!
Choose your development path:
- Front-end only (no Java/Docker): Quick Start with MSW - Mock Service Worker for UI development
- Full-stack (zero cloud deps): Quick Start with Emulators - Firebase emulators for backend integration
- Production setup: Production Setup Guide - Real Firebase/Google Cloud configuration
Monorepo with three main directories:
/web- Next.js application (frontend + API routes)/ingest- Data pipeline (crawlers, AI processing, geocoding)/api- Public REST API server (Hono,/v1routes)
Each has its own .env.local configuration.
- AGENTS.md - Required code patterns and standards for AI agents and developers
- APM Agent Resources - How agent primitives (instructions, prompts, agents, skills) are managed via APM
- Public API -
/api/v1contract, API key auth, and client onboarding - External API Mocks - Mock Gemini, Geocoding, Overpass, Cadastre
- Geocoding - Hybrid geocoding system documentation
- Follow patterns in AGENTS.md
- TypeScript strict mode, named exports, no barrel files
- Tailwind theme colors from
web/lib/colors.ts- never hardcode - Never use
eslint-disablecomments - fix the issue instead - Add Vitest tests for new functionality (at least for the pure functions)
- Fork and create feature branch
- Follow AGENTS.md patterns
- Add tests for new functionality
- Run
pnpm test:runinweb/,ingest/, andapi/ - Submit PR with clear description