A survey-funded AI assistant for VS Code. Get AI help without paying - complete surveys to earn credits that subsidize the backend LLM service.
- Backend: Node.js + TypeScript API that owns all LLM API keys
- Extension: VS Code extension with ad sidebar and AI chat panel
- Database: Supabase (PostgreSQL + Auth with Google OAuth)
- Web: Next.js website at payless.chat
payless.ai/
├── backend/ # Node.js API server
├── extension/ # VS Code extension
├── web/ # Next.js website (for CPX Research surveys)
└── supabase/ # Database migrations
- Node.js 18+
- A Supabase project with Google OAuth configured
- API keys for OpenAI, Anthropic, and/or Google AI
- Create a new project at supabase.com
- Run the migrations in
supabase/migrations/in order - Configure Google OAuth:
Auth Callback URL:
https://bycsqbjaergjhwzbulaa.supabase.co/auth/v1/callback
Google OAuth Setup:
- Go to Google Cloud Console
- Create a new project or select existing
- Enable the Google+ API
- Go to Credentials → Create OAuth 2.0 Client ID
- Add authorized redirect URI:
https://bycsqbjaergjhwzbulaa.supabase.co/auth/v1/callback - Copy Client ID and Client Secret
- In Supabase Dashboard → Authentication → Providers → Google:
- Enable Google provider
- Paste Client ID and Client Secret
cd backend
npm install
cp .env.example .env # Configure your environment variables
npm run devcd extension
npm install
npm run compile
# Press F5 in VS Code to launch extension development host| Variable | Description |
|---|---|
SUPABASE_URL |
https://bycsqbjaergjhwzbulaa.supabase.co |
SUPABASE_SERVICE_KEY |
Supabase service role key |
SUPABASE_JWT_SECRET |
JWT secret for token verification |
OPENAI_API_KEY |
OpenAI API key |
ANTHROPIC_API_KEY |
Anthropic API key |
GOOGLE_AI_API_KEY |
Google AI API key |
PORT |
Server port (default: 3000) |
Configure in VS Code Settings (Cmd+, or Ctrl+,):
| Setting | Description |
|---|---|
payless-ai.backendUrl |
Backend API URL (default: http://localhost:3000) |
payless-ai.supabaseUrl |
https://bycsqbjaergjhwzbulaa.supabase.co |
payless-ai.extensionPageUrl |
https://payless.chat/extension |
Users earn credits by completing surveys in the sidebar. The system is payout-based:
| Metric | Value |
|---|---|
| Credits per $1 | 100 credits |
| Typical survey | 20-100 credits |
| Survey length | 2-15 minutes |
- User opens the extension sidebar (shows available surveys)
- User clicks a survey and completes it via CPX Research
- CPX Research sends a postback to our server
- Credits are added to user's ledger with reason
survey_complete - User spends credits on AI features
| Endpoint | Description |
|---|---|
POST /ads/heartbeat |
Called every 30s to earn credits |
GET /ads/stats |
User's ad viewing statistics |
GET /ads/config |
Credit rate configuration |
- GPT-5.1 (default), GPT-5.1 Thinking, GPT-5.1 Instant, GPT-5.1 Codex, GPT-5
- Claude Opus 4.5, Claude Sonnet 4.5 (default), Claude Haiku 4.5
- Gemini 3 (default), Gemini 3 Thinking, Gemini 3 Pro, Gemini 2.5 Pro/Flash
The extension displays CPX Research surveys in the sidebar to fund free AI credits.
- WebView Display: The extension embeds
payless.chat/extension - Survey List: Frontend fetches available surveys from
/cpx/surveys - Survey Completion: User clicks a survey and completes it on CPX Research
- Postback: CPX sends completion data to
/cpx/postback - Credit Award: Backend adds credits based on survey payout
| Endpoint | Description |
|---|---|
GET /cpx/surveys |
Fetch available surveys for user |
GET /cpx/postback |
CPX callback when survey completed |
GET /cpx/config |
Survey configuration |
Live at: payless.chat
- Landing page with features and pricing
/extension- Embedded in VS Code sidebar (survey list)/privacy- Privacy Policy/terms- Terms of Service
cd /path/to/Payless.ai
npx vercel --prod- Users sign in via Google OAuth through Supabase
- Sidebar shows available surveys from CPX Research
- User completes surveys to earn credits (100 credits/$1)
- Credits accumulate in user's ledger
- Users spend credits on AI chat features
- Backend calls LLM providers using its own API keys
MIT