Installation
This guide covers setting up Tarkov Kappa Navi for local development. If you just want to use the application, see the Quickstart guide.Prerequisites
Before you begin, ensure you have the following installed:- Node.js >= 18
- npm >= 9 (or equivalent package manager)
Local development setup
Install dependencies
Install all required npm packages:This will install:
- React 18 and React DOM
- Vite 7 for development and building
- TanStack Query for server state management
- Dexie for IndexedDB operations
- Zustand for UI state management
- React Router for navigation
- All other dependencies and dev tools
Start the development server
Run the development server with hot module replacement:The application will be available at
http://localhost:5173 by default.Vite will automatically open your browser and provide hot reload during development.
Verify the installation
Open your browser to
http://localhost:5173 and verify:- The application loads without errors
- You can navigate between Dashboard, Tasks, Map, Hideout, Items, and Settings
- The browser console shows no critical errors
Development commands
The following npm scripts are available for development:Start development server
http://localhost:5173.
Build for production
dist/ directory.
Preview production build
Run linting
Run tests
Project structure
Understanding the codebase organization:Technology stack
Key dependencies and their purposes:| Category | Technology | Purpose |
|---|---|---|
| Framework | React 18 + TypeScript | Type-safe UI development |
| Build | Vite 7 | Fast development server and optimized builds |
| State Management | Zustand v5 | UI state management |
| Server State | TanStack Query v5 | API data caching and synchronization |
| Local Database | Dexie v4 | IndexedDB wrapper for user data persistence |
| Validation | Zod v4 | Runtime type validation |
| Routing | React Router v7 | Client-side navigation |
| Styling | CSS Modules | Component-scoped styling |
| Testing | Vitest | Unit and integration testing |
| Linting | ESLint | Code quality enforcement |
| Icons | Lucide React | Icon library |
Data sources
The application fetches game data from the tarkov.dev GraphQL API, a community-run unofficial API for Escape from Tarkov game data.API data is cached in memory with a 12-hour TTL. User progress data is stored separately in IndexedDB and persists across sessions.
Architecture overview
Tarkov Kappa Navi uses a local-first architecture:Key architectural decisions
- API data is cached in memory only (TTL 12 hours, with fallback to stale cache)
- User data is persisted to IndexedDB (profile, progress, notes, pins)
- Lock states are computed dynamically (
playerLevel >= minPlayerLeveland all prerequisite tasks complete) - No backend - entire application runs client-side in the browser
Next steps
Quickstart
Learn how to use the application
Contributing
Contribute to the project on GitHub