Learn Lana

An interactive guide to every module in the Lana Ecosystem app — what data flows to and from Nostr relays, which KIND numbers are used, and how the app transforms it all.

23
Modules
20+
Kind Numbers
4
Nostr Relays
3
Exchange Rates

How Does This App Talk to Nostr?

The Lana app is a client that reads and writes events to Nostr relays. Each event has a KIND number — a simple ID that tells relays and other clients what type of data this is. Think of relays as shared bulletin boards: anyone can pin a note (publish an event), and anyone can read notes that match certain filters.

👤
User
Signs with private key
📱
Lana App
React + TypeScript
🔌
Edge Server
Supabase + Express
🌐
4 Nostr Relays
WebSocket connections
What's a KIND? A KIND is just a number that identifies the type of an event on Nostr. Instead of using a name like "direct_message", the protocol uses KIND 4. Everyone agrees on the number, so every app knows how to handle it. The Lana ecosystem has defined custom KINDs (like 88888, 38888, 91991) for its own features.
What are tags? Each Nostr event carries tags — key-value pairs that add metadata. Common tags include: p (references a pubkey/person), e (references another event), d (unique identifier for replaceable events), and t (topic/category). Tags are how the app filters and links data together.
Read vs Write: Most modules only read (subscribe to events from relays). A few modules also write (publish new signed events back to relays). The app also uses a server-side layer (Supabase edge functions) to cache data and perform relay queries more efficiently.
All Modules — Click to expand