Files
vega/AGENTS.md
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

2.0 KiB
Raw Permalink Blame History

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).