A full-stack web application that connects creators with supporters. Users earn points by completing simple tasks like following, subscribing, liking, and commenting on creators' content, then spend those points to create their own promotion tasks.
- User Authentication: Sign up and login with email/password using Supabase Auth
- Points Economy: Start with 50 free points; earn more by completing tasks
- Multi-Platform Support: Support for 13+ social platforms
- Task Creation: Create custom promotion tasks with flexible parameters
- Task Completion Flow: Proof submission, creator approval, automatic point transfer
- User Profiles: View profile stats, task history, and points balance
- Task Feed: Browse and filter available tasks across all platforms
- TikTok
- X (Twitter)
- YouTube
- Medium
- Substack
- Threads
- Bluesky
- Quora
- Mastodon
- Product Hunt
- Follow
- Subscribe
- Like
- Comment
- Row Level Security (RLS) on all database tables
- Users cannot complete their own tasks
- Duplicate completion prevention
- Unique proof submissions per task
- Framework: Next.js 15 (App Router)
- UI: React with Tailwind CSS
- Styling: Responsive design with mobile-first approach
- Database: Supabase PostgreSQL
- Authentication: Supabase Auth
- Storage: Supabase Storage for proof files
- Server Actions: Next.js Server Actions for secure operations
- Frontend: Vercel
- Backend: Supabase Hosted
- Database: Supabase PostgreSQL
- Clone the repository
git clone https://github.com/yourusername/promote-social.git
cd promote-social- Install dependencies
npm install- Set up environment variables
cp .env.example .env.local
# Edit .env.local with your Supabase credentials- Start development server
npm run devOpen http://localhost:3000 in your browser.
See SETUP.md for comprehensive setup and deployment guide.
promote-social/
βββ app/ # Next.js app directory
β βββ (auth)/ # Authentication pages
β βββ browse/ # Task browsing page
β βββ create-task/ # Task creation page
β βββ dashboard/ # User dashboard
β βββ profile/ # User profile page
β βββ tasks/[id]/ # Task detail page
β βββ layout.tsx # Root layout
β βββ page.tsx # Landing page
β βββ globals.css # Global styles
βββ components/ # Reusable React components
β βββ Button.tsx # Button component
β βββ Card.tsx # Card component
β βββ Header.tsx # Header/Navigation
β βββ Footer.tsx # Footer
β βββ TaskCard.tsx # Task display card
βββ lib/ # Utility functions
β βββ supabase.ts # Supabase client
β βββ types.ts # TypeScript types
β βββ actions.ts # Server actions
βββ supabase/ # Database migrations
β βββ migrations/ # SQL migration files
βββ public/ # Static assets
βββ .env.example # Example environment variables
βββ tailwind.config.js # Tailwind CSS config
βββ tsconfig.json # TypeScript config
βββ next.config.js # Next.js config
βββ package.json # Project dependencies
| Route | Description |
|---|---|
/ |
Landing page |
/auth/login |
Login page |
/auth/signup |
Sign up page |
/browse |
Browse all tasks |
/tasks/[id] |
Task detail and completion |
/create-task |
Create new task |
/dashboard |
User dashboard |
/profile |
User profile |
id(UUID): Primary keyusername(TEXT, UNIQUE)points(INTEGER, DEFAULT: 50)created_at(TIMESTAMP)
id(UUID): Primary keycreator_id(UUID): Foreign keytitle(TEXT)platform(TEXT): Social platform nameaction_type(TEXT): follow, subscribe, like, commentlink(TEXT): URL to social contentreward(INTEGER): Points per completionmax_completions(INTEGER): Completion limitcompleted_count(INTEGER): Current completionsstatus(TEXT): active, paused, completedcreated_at(TIMESTAMP)
id(UUID): Primary keytask_id(UUID): Foreign keyuser_id(UUID): Foreign keyproof_url(TEXT): Storage pathstatus(TEXT): pending, approved, rejectedcreated_at(TIMESTAMP)updated_at(TIMESTAMP)- UNIQUE(task_id, user_id)
- New users receive 50 free points
- Users earn points by completing tasks (when approved)
- Users spend points to create tasks
- Cost = reward_per_completion Γ max_completions
- Creator publishes task (points deducted immediately)
- Users find task and click to open link
- Users submit proof of completion
- Creator reviews and approves/rejects
- On approval, points transferred to completer
- Task closes when max_completions reached
- All tables use Row Level Security (RLS)
- Users can only view their own profile data
- Users can only create tasks as themselves
- Only creators can approve/reject completions
- Only users other than creator can complete tasks
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
npm run dev # Start development server
npm run build # Build for production
npm start # Start production server
npm run lint # Run ESLint- Push code to GitHub
- Connect repository to Vercel
- Add environment variables
- Deploy
See SETUP.md for detailed deployment instructions.
promote.social is not affiliated with, endorsed by, or officially connected to any social platform including TikTok, Instagram, Facebook, Reddit, X, YouTube, Medium, Substack, Threads, Bluesky, Quora, Mastodon, or Product Hunt.
Users are responsible for compliance with each platform's terms of service and community guidelines.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
For setup help, see SETUP.md
For issues and questions, please open a GitHub issue.
- Admin dashboard for moderation
- User reputation system
- Task categories and tags
- Social sharing features
- Email notifications
- Two-factor authentication
- Task scheduling
- Webhook integrations
- API documentation
- Mobile app