The Task-Based Onchain Growth Engine for Farcaster
π Live Demo β’ π Documentation β’ π Getting Started
Post Up is a Web3 social engagement platform built for the Farcaster ecosystem. Brands and creators can launch promotional campaigns, while users earn rewards by completing social tasks like following accounts, liking posts, and engaging with content.
- For Creators: Getting visibility and engagement on Farcaster is hard
- For Users: No easy way to discover and earn from quality content
- For Brands: Traditional advertising doesn't work in Web3
A fair, transparent reward system where:
- 90% of campaign budget goes directly to participants
- 10% platform fee for sustainability
- Quality-based distribution (higher quality users earn more)
Browse and join promotional campaigns across categories:
- Follow - Follow accounts to earn
- Boost - Like, repost, and comment on casts
- Multi - Complete multiple tasks for higher rewards
- MiniApp - Try Farcaster mini apps
- Channel - Join and engage with channels
- Quality Scoring: Based on account age, followers, verification status
- Weighted Distribution: Higher quality = higher rewards
- Transparent: See exactly how rewards are calculated
- Top Earners: Users who joined the most campaigns
- Top Spenders: Creators who invested the most in campaigns
- Real-time data from Supabase
- View your task history
- Track pending/approved/rejected submissions
- See your wallet address and Farcaster stats
- Daily check-in reminders
- Campaign approval updates
- Reward claim notifications
| Technology | Purpose |
|---|---|
| Next.js 16 | React framework with App Router |
| TypeScript | Type-safe development |
| Supabase | Database & real-time subscriptions |
| RainbowKit | Wallet connection |
| wagmi | Ethereum hooks |
| Farcaster SDK | Mini App integration |
| Base Network | L2 for fast, low-cost transactions |
| Neynar API | Farcaster data & verification |
- Node.js 18+
- npm or yarn
- Supabase account
- Neynar API key
# Clone the repository
git clone https://github.com/Earnwithalee7890/PostUP.git
cd PostUP
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env.local
# Run development server
npm run devCreate a .env.local file with:
# Supabase (Required)
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# WalletConnect (Required for Web3 features)
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_project_id
# Neynar (Farcaster API - Required for verification)
NEXT_PUBLIC_NEYNAR_API_KEY=your_neynar_key
# Hub URL (Optional: for direct Hub interaction)
NEXT_PUBLIC_HUB_URL=https://hub-api.neynar.com
# App Configuration
NEXT_PUBLIC_APP_URL=https://your-app.vercel.app- Setup Supabase: Create a new project on Supabase and run the migrations/setup the tables as described in the Database Schema section.
- Neynar API: Get an API key from Neynar for Farcaster data access.
- WalletConnect: Get a project ID from WalletConnect Cloud.
- Run:
The app will be available at
npm run dev
http://localhost:3000.
src/
βββ app/ # Next.js App Router pages
β βββ campaigns/ # Campaign listing & creation
β βββ leaderboard/ # Top earners & spenders
β βββ profile/ # User profile & history
β βββ api/ # API routes
βββ components/ # React components
β βββ CampaignCard.tsx # Campaign display with tasks
β βββ SuccessModal.tsx # Task completion modal
β βββ ui/ # UI components (Navbar, etc.)
βββ lib/ # Utilities & services
β βββ supabaseService.ts # Database operations
β βββ qualityScore.ts # User quality scoring
β βββ neynar.ts # Farcaster API integration
βββ hooks/ # Custom React hooks
βββ providers/ # Context providers
| Column | Type | Description |
|---|---|---|
| id | uuid | Primary key |
| creator | text | Creator wallet address |
| platform | text | 'Farcaster' or 'X' |
| category | text | Campaign category |
| tasks | text[] | Array of task types |
| total_budget | numeric | Total campaign budget |
| status | text | 'active', 'completed', etc. |
| Column | Type | Description |
|---|---|---|
| id | uuid | Primary key |
| campaign_id | uuid | Foreign key to campaigns |
| user_fid | int | Farcaster ID |
| task_id | text | Task type completed |
| screenshot_url | text | Proof image URL |
| status | text | 'pending', 'approved', 'rejected' |
- Farcaster Auth: Uses Farcaster Mini App SDK for authentication
- Admin Checks: FID-based admin verification
- Screenshot Verification: Manual review by campaign admins
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Farcaster - The decentralized social network
- Neynar - Farcaster API infrastructure
- Base - Ethereum L2 network
- Supabase - Backend as a Service
Built with π for the Farcaster community