This quickstart focuses on the web app (
apps/www). The Slack integration is optional and can be added later.Prerequisites
Before you begin, you’ll need:- A Vercel account
- A Google OAuth application for authentication
- An OpenAI API key for AI features
Deploy to Vercel
Click the deploy button below to clone the repository and deploy to Vercel:- Neon Postgres database
- Upstash KV for Redis caching
- Upstash Vector for semantic search
Configure environment variables
Set up Google OAuth
To enable authentication, create a Google OAuth application:
- Go to Google Cloud Console
- Create a new project or select an existing one
- Navigate to “Credentials” and click “Create Credentials” > “OAuth client ID”
- Select “Web application” as the application type
- Add your authorized redirect URI:
- Copy the Client ID and Client Secret to your environment variables
Run database migrations
After deployment, you need to push the database schema:
- From local machine
- From Vercel
Seed demo data (optional)
To get started quickly, you can seed the database with realistic demo data:This will create:
- 5 internal users (including a system user)
- 8 product areas for a B2B analytics SaaS
- 10 customer accounts with varied ARR and segments
- ~30 opportunities across those accounts
- 15 feature requests spanning different product areas
- ~75 customer feedback entries linked to requests and accounts
The seed script automatically generates vector embeddings for feature requests if
OPENAI_API_KEY and Upstash Vector credentials are configured.First login
Once deployment is complete:- Visit your Vercel deployment URL
- Click “Sign in with Google”
- Authorize with your Google account
- You’ll be redirected to the feedback dashboard
Submit your first feedback
Now that you’re logged in, let’s submit your first piece of feedback:Navigate to the feedback form
Click the “New Feedback” button in the top right corner of the dashboard.
Fill in the details
Provide the following information:
- Title: A brief description of the feedback
- Description: Detailed explanation of the customer request
- Account: Select or create a customer account
- Opportunity: (Optional) Link to a sales opportunity
- Product Area: Select the relevant product area
- Severity: Choose the impact level (low, medium, high)
Submit and watch the AI work
After submitting, the system will:
- Generate a vector embedding of your feedback
- Search for semantically similar feature requests
- Use an AI agent to evaluate match quality
- Either:
- Automatically add to an existing request (high confidence)
- Ask for human approval (medium confidence)
- Create a new feature request (low confidence)
If you enabled the Slack integration, you’ll receive notifications in Slack for approval workflows.
Understanding the workflow
Here’s what happens behind the scenes when feedback is submitted:Next steps
Configure Slack integration
Set up the Slack app to capture feedback from emoji reactions and enable approval workflows
Customize product areas
Define your own product areas to match your organization’s structure
Manage accounts
Import your customer accounts and opportunities for ARR-weighted prioritization
View insights
Explore AI-generated insights reports for each product area
Local development
If you prefer to develop locally instead of deploying to Vercel:Install dependencies
This project requires pnpm 10+ and Node.js 20+. Other package managers are not supported.
Set up environment variables
Create Edit the files and add your credentials (see the environment variables section above).
.env files for the apps:Start the development server
Troubleshooting
Database connection errors
Database connection errors
If you see database connection errors:
- Verify your
DATABASE_URLis correct in bothapps/www/.envandpackages/database/.env - Make sure your database is accessible from Vercel (check IP allowlist if using Neon)
- Run
pnpm db:pushto ensure the schema is up to date
OAuth redirect errors
OAuth redirect errors
If Google OAuth isn’t working:
- Verify the redirect URI in Google Cloud Console matches your deployment URL exactly
- Make sure
AUTH_SECRETis set (generate withopenssl rand -base64 32) - Check that both
AUTH_GOOGLE_CLIENT_IDandAUTH_GOOGLE_SECRETare set correctly
AI features not working
AI features not working
If semantic matching or insights aren’t working:
- Verify your
OPENAI_API_KEYis valid and has credits - Make sure Upstash Vector is configured with
UPSTASH_VECTOR_REST_URLandUPSTASH_VECTOR_REST_TOKEN - Run
pnpm db:seedto generate embeddings for demo data
Build failures
Build failures
If the build fails:
- Make sure you’re using Node.js 20+ and pnpm 10+
- Clear the build cache:
pnpm clean(if available) orrm -rf .next node_modules - Reinstall dependencies:
pnpm install - Check for TypeScript errors:
pnpm typecheck
For more help, check the Contributing guide or open an issue on GitHub.