# AGENTS This document provides context for AI agents working on this codebase. ## Project Overview HAMView is an online Amateur Radio digital protocol live viewer. It features: - Displaying online radio receivers in near real-time - Streaming of popular Amateur Radio protocols such as APRS, MeshCore, etc. - A live packet stream for each of the protocols - Packet inspection ## Tech Stack Used technologies: - **Framework**: React 19 with TypeScript - **Build Tool**: Vite 7 - **User Interface**: React-Bootstrap with Bootstrap version 5 - **Code Editor**: Visual Studio Code - **Backend**: Go with labstack echo router - **Libraries used**: Axios for API requests, mqtt.js for streaming - **Testing**: use `npm run build` Relevant documents: - API documentation is in `../server` ## Testing Requirements **Always run tests before completing a task.** Run `npm run build`. ## Coding Guidelines ### General - Prefer ESM imports (`import`/`export`) - Use builtins from React, React-Boostrap where possible - Follow existing code patterns in the code base - Never make changes outside of the `ui` directory, if you think this is necessary prompt me for approval. ### Styling - Use React-Bootstrap components where appropriate - Follow existing CSS patterns - Add reusable style elements to the `src/App.scss` - Order imports: - React import first; then any react plugin - Third-party libraries; - Services; - Local types imports; - Local imports; - Stylesheets - Long import statements (> 3 imports) should use multiline import - Sort import imports alphabetically ## Protected files **Never modify files inside the `data/` directory.** This directory contains game data that should remain unchanged. Never add secrets to code.