./start-servers.shThis will:
- Check for dependencies and install if needed
- Kill any existing processes on ports 3000/3001
- Start both backend and frontend
- Show you the URLs to access
Press Ctrl+C to stop both servers.
Terminal 1 - Backend:
cd backend
npm run devTerminal 2 - Frontend:
cd allaboard
npm run devThe backend .env file already exists with API keys. Verify it has:
cat backend/.envShould show:
AGENT_API_KEY- Browser.cash Agent API key ✅OPENAI_KEY- OpenAI API key ✅GAMMA_API_KEY- Gamma API key ✅PORT=3000FRONTEND_URL=http://localhost:3001
Backend:
cd backend
npm installFrontend:
cd allaboard
npm install --legacy-peer-depsNote: Use --legacy-peer-deps for the frontend due to React 19 compatibility.
cd backend
npm run setup-playwrightOnce both servers are running:
- Frontend (Main App): http://localhost:3001
- Backend API: http://localhost:3000
- Health Check: http://localhost:3000/health
If you see "Port 3000 is already in use":
# Kill process on port 3000
lsof -ti:3000 | xargs kill -9
# Kill process on port 3001
lsof -ti:3001 | xargs kill -9-
Check if .env file exists:
ls backend/.env
-
Verify API keys are set:
grep -E "OPENAI_KEY|GAMMA_API_KEY|AGENT_API_KEY" backend/.env -
Check for TypeScript compilation errors:
cd backend npm run build
-
Check TypeScript compilation:
cd allaboard npx tsc --noEmit -
Try reinstalling dependencies:
cd allaboard rm -rf node_modules package-lock.json npm install --legacy-peer-deps
-
Verify backend is running on port 3000:
curl http://localhost:3000/health
-
Check backend logs in terminal for errors
-
Verify CORS is configured for port 3001 (it should be by default)
There is currently no test suite configured.
Frontend:
cd allaboard
npm run lintNote: ESLint may not be fully configured, but TypeScript checks work.
Backend:
cd backend
npm run build # Compiles to dist/
npm start # Runs production buildFrontend:
cd allaboard
npm run build # Creates .next/ production build
npm start # Runs production server- Fixed
connectionModetype error in StoryboardCanvas - Fixed missing
messageproperty in StoryboardAssistant - Fixed useRef initialization with undefined
- Updated
FRONTEND_URLin backend.envfromlocalhost:5173tolocalhost:3001 - Verified all required API keys are present
- Backend runs on port 3000
- Frontend runs on port 3001 (configured in package.json)
- CORS accepts both ports
Test the backend with these endpoints:
# Health check
curl http://localhost:3000/health
# Test connection
curl http://localhost:3000/api/test-connection
# Scrape website (POST)
curl -X POST http://localhost:3000/api/scrape \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'┌─────────────────────────────────────────────────┐
│ Frontend (Next.js) - http://localhost:3001 │
│ - React 19 + TypeScript │
│ - Glass-morphism UI │
│ - React Flow canvas editor │
└─────────────────┬───────────────────────────────┘
│
│ HTTP/REST API
│
┌─────────────────▼───────────────────────────────┐
│ Backend (Express) - http://localhost:3000 │
│ - Node.js + TypeScript │
│ - Web scraping (Browser.cash) │
│ - Storyboard generation (OpenAI GPT-4o) │
│ - Slide generation (Gamma API) │
└─────────────────────────────────────────────────┘
- Open http://localhost:3001 in your browser
- Enter a website URL (e.g., https://www.ycombinator.com)
- Click "Start" to scrape and generate a storyboard
- Edit the storyboard on the canvas (drag, reorder, edit nodes)
- Generate slides with Gamma API
- View the embedded presentation
- Check backend terminal for API errors
- Check browser console (F12) for frontend errors
- Review WARP.md for detailed architecture documentation
- Check existing documentation:
- README.md - Project overview
- PROJECT_SUMMARY.md - Technical details
- QUICK_START.md - Setup guide