mirror of
https://github.com/hoornet/vega.git
synced 2026-05-31 18:23:38 -07:00
455a044ed3
Move all private documents (grant app, specs, research, drafts) into gitignored private_docs/ directory. Update AGENTS.md to reflect current Vega state (was still referencing Wrystr). Simplify gitignore rules.
68 lines
2.0 KiB
Markdown
68 lines
2.0 KiB
Markdown
# AGENTS.md — Vega
|
||
|
||
This file guides AI coding agents working on this codebase.
|
||
**See `CLAUDE.md` for the authoritative, up-to-date architecture and conventions.**
|
||
|
||
---
|
||
|
||
## What is Vega?
|
||
|
||
Vega is a cross-platform desktop Nostr client built for Mac, Windows, and Linux.
|
||
Named after Jurij Vega (1754–1802), Slovenian mathematician.
|
||
The goal: best Nostr desktop experience — polished UI, deep Lightning integration,
|
||
full NIP coverage, performance that feels native.
|
||
|
||
---
|
||
|
||
## Tech Stack
|
||
|
||
| Layer | Technology |
|
||
|---|---|
|
||
| Desktop shell | Tauri 2.0 (Rust backend) |
|
||
| Frontend | React 19 + TypeScript (Vite 7) |
|
||
| Nostr protocol | NDK (Nostr Dev Kit) |
|
||
| Lightning | Nostr Wallet Connect (NIP-47) |
|
||
| Styling | Tailwind CSS 4 |
|
||
| State management | Zustand |
|
||
| Local storage | SQLite via `rusqlite` (bundled) |
|
||
| Key storage | OS keychain via `keyring` crate |
|
||
|
||
---
|
||
|
||
## Coding Conventions
|
||
|
||
### TypeScript / React
|
||
- Functional components only, no class components
|
||
- Zustand stores per domain (`src/stores/`)
|
||
- Types in `src/types/` — never use `any`
|
||
- NDK interactions only through `src/lib/nostr/` wrapper
|
||
- Lightning/NWC only through `src/lib/lightning/` wrapper
|
||
- Tailwind classes only — no inline styles (except unavoidable WebkitUserSelect)
|
||
|
||
### Rust
|
||
- Commands return `Result<T, String>`
|
||
- Private keys only in OS keychain via `keyring` crate
|
||
- No secrets logged in production
|
||
|
||
### General
|
||
- No secrets, keys, or credentials committed to git
|
||
- Private docs (drafts, specs, research) go in `private_docs/` (gitignored)
|
||
- Prefer explicit over clever
|
||
|
||
---
|
||
|
||
## What to Avoid
|
||
|
||
- Do NOT add dependencies without checking if the existing stack covers it
|
||
- Do NOT store private keys anywhere except the OS keychain
|
||
- Do NOT expose Lightning credentials to the frontend/JS layer
|
||
- Do NOT use inline styles — use Tailwind classes
|
||
- Do NOT add paywalls to core social/protocol features
|
||
|
||
---
|
||
|
||
## Monetization
|
||
|
||
Open source client (MIT) + closed source server-side premium services.
|
||
Core social features stay fully free. Revenue at the edges (PRO relay, NIP-05, analytics).
|