# Explore — handoff ## Summary Discover public rooms and featured communities on Matrix homeservers. Browse by server, search public room directory, and preview/join rooms. ## User-facing behavior - Explore tab in sidebar - Pick server / homeserver directory - Featured rooms list - Search public rooms on server - Join room from preview ## Architecture ``` client/explore/ Explore.tsx — main explore page Server.tsx — server-specific directory Featured.tsx — featured rooms PublicRooms via matrix directory API ``` ## Key files | Path | Role | |------|------| | `cinny/src/app/pages/client/explore/Explore.tsx` | Explore hub | | `cinny/src/app/pages/client/explore/Server.tsx` | Server directory | | `cinny/src/app/pages/client/explore/Featured.tsx` | Featured list | | `cinny/src/app/pages/client/sidebar/ExploreTab.tsx` | Sidebar entry | | `cinny/src/app/hooks/useRoomDirectoryVisibility.ts` | Directory visibility | ## Data model Public room directory from homeserver HTTP API (ephemeral). ## Dependencies - Homeserver `/publicRooms` or sliding sync directory - `matrix-js-sdk` room directory helpers ## Integration points - **routing-and-navigation**: `EXPLORE_PATH`, `_SERVER_PATH`, `_FEATURED_PATH` - **join-before-navigate**: may route here before join ## Testing ### Manual 1. Open explore; list loads for default server. 2. Switch server; directory refreshes. 3. Join public room from explore. 4. Server without public directory — error handling. ### Automated - None ## Known issues & gotchas - Public directory disabled on many private homeservers - Featured rooms may be config-dependent (`clientConfig`) ## Future work - Federated universal search - Room preview with topic/avatar before join ## Related docs - [routing-and-navigation HANDOFF](../routing-and-navigation/HANDOFF.md) - [join-before-navigate HANDOFF](../join-before-navigate/HANDOFF.md) ## Add your extra things here - `getExploreFeaturedPath` in pathUtils