- Initialize Next.js 15+ project with App Router
- Configure TypeScript with strict mode
- Set up Tailwind CSS with custom theme
- Configure ESLint
- Set up Supabase client library
- Create environment variables template (.env.example)
- Create Supabase project
- Set up database schema
- Configure Row Level Security (RLS) policies
- Set up Supabase Auth (email provider)
- Create database functions and triggers
- Set up storage buckets (avatars, attachments)
- Implement sign-up flow with email verification
- Implement sign-in flow
- Implement password reset flow
- Create auth middleware for protected routes
- Implement session management
- Create profile creation/onboarding flow
- Build profile edit page
- Implement avatar upload with Supabase Storage
- Add skills/expertise tags system
- Add portfolio links section
- Add work history section
- Create public profile view page (
/u/[username]) - Add AI tools/experience section
- Implement profile completion percentage indicator
- Create gig posting form
- Title, description
- Category/industry selection
- Required skills tags
- Budget type (fixed/hourly) and range
- Duration/timeline
- Remote/location preferences
- AI tools required/preferred
- Implement draft saving
- Add gig preview before publishing
- Implement 10 free posts/month limit tracking
- Create gig edit functionality
- Add gig close/archive functionality
- Build public gig listing page (no auth required)
- Implement search functionality
- Full-text search on title/description
- Filter by category
- Filter by skills
- Filter by budget range
- Filter by posted date
- Sort options (newest, budget, etc.)
- Create individual gig detail page (public)
- Add pagination
- Implement saved/bookmarked gigs (auth required)
- Create application form
- Cover letter/pitch
- Proposed rate/budget
- Estimated timeline
- Relevant portfolio items
- AI tools they'll use
- Implement application submission (auth required)
- Add application tracking for applicants
- Create "My Applications" dashboard
- Build applications inbox for gig posters
- Add application status management
- Implement bulk actions on applications
- Add applicant comparison view
- Create quick view of applicant profiles
- Set up SSE for real-time messaging
- Create conversation data model
- Build chat UI component
- Implement real-time message sending/receiving
- Add typing indicators
- Add read receipts UI
- Create conversations list/inbox
- Add file/attachment sharing in chat
- Implement chat search
- Create notification system architecture
- Implement in-app notifications
- Set up email notifications
- Add notification preferences settings
- Create notification center UI
- Set up Jitsi Meet external API
- Create video call initiation flow
- Build video call room component
- Implement call scheduling
- Add calendar integration for scheduled calls
- Create call history/logs
- Implement call notifications
- Add pre-call device check (camera/mic)
- Integrate Stripe for payments
- Create subscription plans
- Free tier (10 posts/month)
- Pro tier ($5.99/month - unlimited posts)
- Build subscription management page
- Implement usage tracking (posts count)
- Create upgrade prompts when limit reached
- Add billing history
- Implement subscription cancellation flow
- Handle failed payments/grace period
- Set up CoinPayPortal (crypto payments)
- Set up Stripe webhooks
- Implement secure checkout flow
- Add invoice generation
- Create payment receipts
- Applicant dashboard (basic)
- Active applications
- Saved gigs
- Messages overview
- Profile views stats
- Poster dashboard (basic)
- Active gigs
- Applications received
- Hired workers tracking
- Spending overview
- User management
- Gig moderation
- Reports/flags handling
- Platform analytics
- Subscription metrics
- Create review system for completed gigs
- Implement star ratings
- Add written reviews
- Display reviews on profiles
- Calculate and show average ratings
- Implement AI-powered job matching
- Add "similar gigs" recommendations
- Create "featured gigs" section
- Build category landing pages
- Implement user verification
- Add report/flag system
- Create content moderation tools
- Implement rate limiting
- Add spam detection
- Responsive design audit
- Accessibility audit (WCAG 2.1)
- Loading states and skeletons
- Error handling and error pages
- Empty states design
- Micro-interactions and animations
- Image optimization
- Code splitting audit
- Database query optimization
- Add caching where appropriate
- Lighthouse performance audit
- Meta tags and Open Graph
- Sitemap generation
- robots.txt configuration
- Landing page optimization
- API documentation
- User guides/help center
- Terms of Service
- Privacy Policy
- FAQ page
- Unit tests for utilities
- Unit tests for validations
- Unit tests for components
- Integration tests for API routes
- E2E tests for critical flows
- Load testing
- Configure production environment
- Set up custom domain
- Configure SSL
- Set up monitoring (error tracking)
- Configure backups
- Create deployment pipeline
| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS |
| Database | Supabase (PostgreSQL) |
| Auth | Supabase Auth |
| Real-time | SSE + Supabase Realtime |
| Storage | Supabase Storage |
| Video | Jitsi Meet SDK |
| Payments | Stripe + CoinPayPortal |
| Resend (or Supabase) |
- All job postings are public (no auth to view)
- Account required to apply or post
- Free tier: 10 posts/month for posters
- Pro tier: $5.99/month for unlimited
- Focus on AI-assisted workers as differentiator