HiveSnaps is a cutting-edge React Native mobile app built with Expo and TypeScript that brings the power of the Hive blockchain to short-form social media content. Think Twitter meets Instagram, but decentralized and powered by Web3.
- Hive Blockchain Authentication - Secure login with Hive posting keys
- Decentralized Content - All posts stored on-chain via @peak.snaps
- Voting & Rewards - Upvote posts with customizable weight (1-100%)
- Real-time Reward Calculation - See vote values in USD before voting
- Voting Power Display - Track your voting power with helpful tooltips
- Multiple Feed Views - Following, Newest, Trending, and My Snaps
- Rich Text Support - Markdown rendering with hashtag detection
- User Profiles - View any user's profile with post history
- Threaded Conversations - Full reply system with nested discussions
- Mentions & Hashtags - @username mentions and #hashtag discovery
- Smart Caching - 5-minute intelligent feed caching for performance
- Image Uploads - Camera capture or gallery selection with Cloudinary hosting
- GIF Integration - Powered by Tenor API with search functionality
- Video Embedding - YouTube, 3Speak, and IPFS video support
- Instagram Embeds - Native Instagram post rendering in feed
- Twitter/X Embeds - Native tweet rendering in posts
- Image Galleries - Full-screen image viewing with zoom
- Smart Composer - Rich text editor with live previews
- Media Attachments - Images, GIFs, and video embeds
- Edit Functionality - Edit your posts and replies after publishing
- Three-Dots Menu - Quick actions including "Go to Profile" and content reporting
- Optimistic Updates - Instant UI updates for better UX
- Draft Support - Auto-save functionality (coming soon)
- Notifications System - Track mentions, votes, and replies
- Content Moderation - Community-driven reporting and moderation system
- Terms of Service - Required acceptance for App Store compliance
- Dark/Light Theme - Automatic theme switching
- Pull-to-Refresh - Intuitive feed updates
- Infinite Scroll - Smooth content loading
- Offline Support - Cached content available offline
- Haptic Feedback - Native mobile interactions
- Hashtag Explorer - Discover content by topics
- User Search - Find and follow interesting accounts
- Trending Algorithm - Content ranked by blockchain rewards
- External Link Handling - Smart preview and opening
- React Native (0.79.4) with Expo (53.0.12)
- TypeScript for type safety
- Expo Router for navigation
- React Native Reanimated for smooth animations
- Expo AV for video playback
- @hiveio/dhive for Hive blockchain integration
- Expo Secure Store for private key management
- Real-time API connections to multiple Hive nodes
- Cloudinary as fallback for image hosting and optimization
- Tenor API for GIF search and integration
- Expo Image Picker for camera/gallery access
- AsyncStorage for local data persistence
- Safe Area Context for notch/status bar handling
- React Native Webview for embedded content
- React Native Markdown for rich text rendering
- Custom Icon System with FontAwesome
HiveSnaps is now available on the App Store!
- iOS: Download from App Store
- Android: Coming Soon to Google Play Store
-
Clone the repository:
git clone https://github.com/menobass/hivesnaps.git cd hivesnaps -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile with your API keys:CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret TENOR_API_KEY=your_tenor_key EXPO_PUBLIC_3SPEAK_API_KEY=your_3speak_api_key EXPO_PUBLIC_IPFS_UPLOAD_ENDPOINT=https://ipfs.3speak.tv/api/v0/add EXPO_PUBLIC_IPFS_GATEWAY_URL=https://ipfs.3speak.tv/ipfs # EXPO_PUBLIC_IPFS_API_KEY=optional_ipfs_key
-
Start the development server:
npx expo start
-
Run on device:
- Use Expo Go app for development
- Or build development client:
npx expo run:android/npx expo run:ios
- iOS - Full feature support with native integrations
- Android - Complete Android experience with edge-to-edge UI
- Web - Progressive Web App capabilities (limited features)
We standardized avatars to images.hive.blog across the app. See docs/avatar-unification.md for details on behavior, affected files, and testing.
HiveSnaps implements a comprehensive content moderation system:
- Community Reporting - Users can report inappropriate content through three-dots menu
- Blockchain-native Moderation - Content moderation via @snapie account voting system
- Automatic Content Filtering - Posts with moderation downvotes are hidden from interface
- Zero-tolerance Policy - Strict enforcement against harassment, abuse, and harmful content
- Terms of Service - Required acceptance with App Store compliance for community standards
See docs/moderation.md for detailed policy, configuration, and technical implementation.
npm test# Android
npx expo build:android
# iOS
npx expo build:iosapp/
βββ components/ # Reusable UI components
βββ utils/ # Helper functions and utilities
βββ hooks/ # Custom React hooks
βββ assets/ # Images, fonts, and static files
βββ screens/ # Main application screens
- Push notifications for mentions and votes
- Advanced search functionality
- Video uploads
- Multiple account support
We welcome contributions! Please read our contributing guidelines and submit pull requests for any improvements.
This project is licensed under the MIT License - see the LICENSE file for details.
- Hive Blockchain - For providing the decentralized infrastructure
- Peak.d - For the @peak.snaps container system
- Expo Team - For the amazing development platform
- React Native Community - For the open-source ecosystem
HiveSnaps - What's snappening today? π
Follow us: @snapie | Join our community on Discord (permanent invite)