## Project Overview Flotilla is a Discord-like Nostr client that operates on the concept of "relays as groups/spaces." Built with SvelteKit 2.5 and Svelte 5, it provides messaging, threads, calendar events, and social features across Nostr relays. ## Important Patterns ### Finding Code - Prefer navigating from one file to the next following imports when possible - If search is necessary, use `ack`, not `grep` or `rg`. ### Nostr Event Handling - Prefer seconds to milliseconds when handling nostr events. ### Styling Conventions - When styling html, prefer flex/gap classes over margin or space-y classes. ### Room/space memberships Memberships are surfaced as "bookmarks" to the user. ```typescript import {membershipsByPubkey, getMembershipUrls} from '@app/state' const spaces = getMembershipUrls($membershipsByPubkey.get(pubkey)) const rooms = getMembershipRooms($membershipsByPubkey.get(pubkey)) ```