Follow these steps to get QAAI up and running locally.
Ensure you have the following installed:
# Navigate to the project directory
cd qaai
# Install dependencies
pnpm install-
Create a Supabase Project
- Go to https://supabase.com/dashboard
- Click "New Project"
- Fill in project details and wait for setup to complete
-
Get Your Credentials
- Go to Project Settings → API
- Copy the following:
- Project URL
anonpublic keyservice_rolekey (keep this secret!)
-
Run Database Migrations
- Go to SQL Editor in Supabase Dashboard
- Copy and run
infra/supabase/schema.sql - Then copy and run
infra/supabase/policies.sql
-
Create Storage Bucket
- Go to Storage in Supabase Dashboard
- Create a new bucket named
artifacts - Set it to Private
- The policies from
policies.sqlwill handle access
# Copy the example env file
cp .env.example .env
# Edit .env and fill in your values
nano .env # or use your preferred editorRequired variables:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# Choose your LLM provider
LLM_PROVIDER=openai # or anthropic, or ollama
OPENAI_API_KEY=your-key-here # if using OpenAI# Terminal 1: Start the web app
pnpm dev:web
# Terminal 2: Start the runner service (once implemented)
pnpm dev:runnerThe web app will be available at http://localhost:3000
- Navigate to http://localhost:3000
- You'll be redirected to the login page
- Sign up with email and password
- Check your email for verification (if enabled)
After logging in:
- You'll need to create an organization
- This will be done through the UI (to be implemented)
- For now, you can create one manually in Supabase:
-- In Supabase SQL Editor
-- Replace 'your-user-id' with your actual user ID from auth.users
INSERT INTO organizations (name) VALUES ('My Organization');
INSERT INTO org_members (org_id, user_id, role)
VALUES (
(SELECT id FROM organizations WHERE name = 'My Organization'),
'your-user-id',
'owner'
);# Run all tests
pnpm test
# Run tests for specific package
pnpm --filter web test
pnpm --filter runner test# Lint all packages
pnpm lint
# Format all files
pnpm format# Build web app
pnpm build:web
# Build runner service
pnpm build:runnerqaai/
├── apps/
│ └── web/ # Next.js web application
├── services/
│ └── runner/ # Background worker service
├── packages/
│ └── playwright-tests/ # Generated test files
├── infra/
│ ├── supabase/ # Database schema and policies
│ ├── railway/ # Deployment configs
│ └── github/ # CI/CD workflows
└── docs/ # Documentation
# Clear node_modules and reinstall
rm -rf node_modules
pnpm install- Verify your environment variables are correct
- Check that your Supabase project is not paused
- Ensure RLS policies are applied
# Kill process on port 3000
lsof -ti:3000 | xargs kill -9
# Or use a different port
PORT=3001 pnpm dev:web- ✅ Project structure created
- ✅ Database schema and RLS policies set up
- 🚧 Next.js app initialization (in progress)
- ⏳ Supabase auth integration
- ⏳ Base UI components
- ⏳ Runner service setup
- Documentation: See ARCHITECTURE.md for system design
- Implementation Guide: See IMPLEMENTATION_GUIDE.md
- Issues: Check the GitHub Issues tab
- Discussions: Use GitHub Discussions for questions
We welcome contributions! Please read our contributing guidelines before submitting PRs.
Status: Phase 1 in progress - Foundation setup Last Updated: 2025-11-02