-
OpenRouter API Key (for AI features)
- Go to https://openrouter.ai
- Sign up and grab your API key
-
Supabase Project (for database)
- Go to https://supabase.com
- Create a project (free tier works)
- Note your Project URL and service_role key (Settings → API)
Copy the template and edit:
cp backend/.env.example backend/.envEdit backend/.env:
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
OPENROUTER_API_KEY=sk-or-...your-key...
PORT=3001Open your Supabase SQL Editor and run the SQL from README.md (or copy from below):
-- Creates 5 tables: users, chat_history, quizzes, quiz_answers, summaries# Install dependencies
pnpm install
# Build extension
pnpm --filter ./extension build
# Start backend
pnpm dev:backend- Open
chrome://extensions - Toggle "Developer mode" (top right)
- Click "Load unpacked"
- Select
extension/dist - Extension icon appears in toolbar!
- First time: Click extension → Register with email/password → Login
- Chat Tab: Ask questions, optionally paste context
- Quiz Tab: Enter topic, choose difficulty, answer 5 questions
- Summary Tab: Paste content, get bullet-point summary, save for later
pnpm dev # Run both backend & extension dev server
pnpm dev:backend # Just backend
pnpm --filter ./extension build # Build extension
pnpm build # Build all- Extension not loading? Run
pnpm --filter ./extension build, refreshchrome://extensions - Backend connection error? Is
pnpm dev:backendrunning on port 3001? - AI not responding? Verify
OPENROUTER_API_KEYis set and has credits - Database errors? Check
SUPABASE_URLandSUPABASE_SERVICE_ROLE_KEYare correct
- Customize AI prompts in
backend/src/utils/openrouter.ts - Add more quiz difficulty levels
- Implement dark mode
- Deploy backend to production
- Publish extension to Chrome Web Store