- Chat list: auth-gated, shows all conversations for current user
with other participant's avatar/name, last message preview,
and relative time in Macedonian (пред X мин/ч/д)
- Chat conversation: FlatList with inverted scroll, message bubbles
aligned left (other) and right (self), colored backgrounds,
timestamps, KeyboardAvoidingView send bar
- Chat mutations: getOrCreate finds or creates a 1:1 chat,
send creates message and updates lastMessageAt
- Message queries: listByChat with participant auth check
- Wired ad detail 'Започни разговор' button to create/open chat
- ChatListItem component with avatar, preview, time, link to detail
All UI text in Macedonian. TypeScript clean, Convex functions deployed.
- Add seedCategories mutation (idempotent) and getBySlug query
- Add ad queries: list, getByCategory, getById, search, getByHandyman
- Home screen: search bar, CategoryGrid, recent ads list with real-time
Convex queries and search-by-keyword
- Explore screen: category filter via search param, filtered ad list,
full category grid when unfiltered
- AdCard component: title, category badge, location, rating stars,
price range, navigation to ad detail
- CategoryGrid component: 3-column emoji grid linking to filtered explore
- Add CATEGORY_EMOJI map and getCategoryName() helper in constants
All UI text in Macedonian. TypeScript clean, Convex functions deployed.