A cross-platform React Native (Expo) app to discover, explore, and interact with federated instances from Lemmy, Mbin, and Piefed. Supports instance login, voting, commenting, and gesture-based interactions.
- 🌐 Browse and search Lemmy, Mbin, and Piefed instances
- 🔐 Login to any instance and manage your account
- 📰 View posts and comments
- 🔺 Upvote / 🔻 Downvote
- ⚙️ Configurable gesture actions (swipe, tap, hold, etc.)
- 📱 Fully native experience, with future iOS support
| Layer | Tool |
|---|---|
| UI Framework | React Native (Expo SDK 53) |
| Navigation | @react-navigation/native |
| API | axios + @tanstack/react-query |
| Auth Storage | expo-secure-store |
| Gestures | react-native-gesture-handler + react-native-reanimated |
| State | zustand |
| Notifications | expo-notifications |
Requires Node.js 18+ and Expo CLI (
npm install -g expo-cli)
git clone https://github.com/your-username/fediverse-explorer.git
cd fediverse-explorer
npm installStart in development mode:
npm run startTo launch on Android:
npm run androidTo launch on iOS (macOS only):
npm run iossrc/
├── clients/ ← API clients for Lemmy/Kbin/Piefed
├── components/ ← UI components like PostCard, CommentThread, etc.
├── config/ ← Default app settings & gesture maps
├── hooks/ ← Custom React hooks
├── screens/ ← Navigation screens (Home, InstanceList, Post, etc.)
├── stores/ ← zustand-based state management
├── utils/ ← Helpers like formatDate, auth header buildersUsers will be able to assign custom actions to gestures like: Swipe Left / Right Long Press Double Tap Mappings will be stored in local JSON config via AsyncStorage or SecureStore.
Users can select different instances from a list, or typing their prefered instance. The client factory will try to determine the type of instance, and login to it.
MIT License © 2025 Sebastián Cristi