Files
vega/AGENTS.md
T
Jure 455a044ed3 Clean up repo: private_docs dir, update AGENTS.md, harden gitignore
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.
2026-04-05 18:13:49 +02:00

68 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 (17541802), 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).