mirror of
https://github.com/status-im/status-app.git
synced 2026-08-27 15:11:20 +00:00
2.2 KiB
2.2 KiB
Project Guidelines
Architecture
- This repository is the main Status app codebase for desktop and mobile.
- The frontend is primarily Qt/QML, with Nim middleware in
src/coordinating UI-facing modules and services. - Treat the app as local-first: there is no remote application server for core product logic. The backend runs locally on the device, and user data is stored in local databases.
- The effective backend is
vendor/status-go. When investigating behavior, trace through the QML or Nim layer intovendor/status-goinstead of assuming the logic ends in this repository's UI or middleware. - If the root cause or correct implementation belongs in
vendor/status-go, modify it there instead of adding UI-side or Nim-side workarounds. - On Android,
status-gomay run through a separate local service and stub layer rather than directly in the UI process. Consult the Android ADRs before changing mobile service, IPC, login-resume, or notification flows.
Conventions
- Preserve the existing layering described in
docs/architecture.md: QML frontend, Nim middleware, and local backend responsibilities should stay separated. - For QML architecture and component boundaries, follow
guidelines/QML_ARCHITECTURE_GUIDE.md. - Prefer fixes at the owning layer:
- QML or StatusQ for presentation and interaction issues.
- Nim in
src/for app orchestration, signal handling, and module wiring. vendor/status-gofor backend logic, persistence, protocol, and notification behavior.
- Do not describe or implement features as if they depend on a hosted server unless the code or docs explicitly show an external integration.
Build And Test
- Use
BUILDING.md,README.md, and platform-specific docs undermobile/for setup and build commands. - When touching Android service or IPC behavior, consult the ADRs under
docs/adr/, especially the Androidstatus-goservice architecture.
Working Style
- When a change spans QML, Nim, and
vendor/status-go, inspect the full path before editing and keep the final fix in the layer that actually owns the behavior. - Keep instructions and comments aligned with the repo's terminology: local backend, local databases, and
status-goas the backend.