2025-06-05 16:19:25 +00:00
## 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
2025-06-05 17:16:05 +00:00
### Finding Code
- Prefer navigating from one file to the next following imports when possible
- If search is necessary, use `ack` , not `grep` or `rg` .
2025-06-05 16:19:25 +00:00
### Nostr Event Handling
2025-06-05 17:16:05 +00:00
- Prefer seconds to milliseconds when handling nostr events.
2025-06-05 16:19:25 +00:00
### Styling Conventions
- When styling html, prefer flex/gap classes over margin or space-y classes.
2025-06-05 20:00:30 +00:00
### Room/space memberships
Memberships are surfaced as "bookmarks" to the user.
```typescript
import {membershipsByPubkey, getMembershipUrls} from '@app/state'
2025-06-05 16:19:25 +00:00
2025-06-05 20:00:30 +00:00
const spaces = getMembershipUrls($membershipsByPubkey.get(pubkey))
const rooms = getMembershipRooms($membershipsByPubkey.get(pubkey))
```