Installation
Get AEO/GEO Analytics up and running on your local machine in just a few minutes.
Prerequisites
Before you begin, ensure you have the following installed:
- Node.js version 18.0 or higher (Download)
- npm (comes with Node.js) or pnpm
- Git (Download)
- Supabase Account (Sign up free)
Check Your Installation
Verify your Node.js and npm versions:
node --version
# Should output v18.0.0 or higher
npm --version
# Should output 8.0.0 or higher
Clone the Repository
Clone the AEO/GEO Analytics repository from GitHub:
git clone https://github.com/signal-x-studio/aeo-geo.git
cd aeo-geo
Install Dependencies
Install all required npm packages:
npm install
This will install:
- Next.js 15 (App Router)
- React 19
- Supabase client libraries
- LLM provider SDKs (Anthropic, OpenAI, Google AI)
- UI components (Shadcn/UI, Tailwind CSS)
- All other dependencies
The installation typically takes 1-2 minutes depending on your internet connection.
Set Up Supabase
1. Create a Supabase Project
- Go to supabase.com and sign in
- Click "New Project"
- Fill in project details:
- Name:
aeo-geo-analytics(or your preferred name) - Database Password: Create a strong password (save this!)
- Region: Choose closest to you
- Name:
- Click "Create new project"
- Wait 2-3 minutes for provisioning
2. Get Your Supabase Credentials
Once your project is ready:
- Go to Project Settings → API
- Copy these values (you'll need them next):
- Project URL:
https://your-project-id.supabase.co - anon/public key: Long string starting with
eyJ...
- Project URL:
3. Run Database Migrations
AEO/GEO Analytics includes pre-built database migrations. Run them to set up all tables:
# Login to Supabase CLI (first time only)
npx supabase login
# Link to your project
npx supabase link --project-ref your-project-id
# Run migrations
npx supabase db push
Your project-ref is the alphanumeric ID in your Supabase URL:
https://zxmnxsqhjmftgrlnapey.supabase.co → zxmnxsqhjmftgrlnapey
This creates the following tables:
llm_queries- Query metadatallm_responses- LLM provider responsescitations- Extracted citationsdomains- Domain trackingquery_sets- Query library collectionssaved_queries- Individual saved queriesquery_set_tags- Query tags
Configure Environment Variables
Create a .env.local file in the project root:
cp .env.example .env.local
Edit .env.local and add your credentials:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...your-anon-key...
# LLM Provider API Keys (add at least one)
ANTHROPIC_API_KEY=sk-ant-... # For Claude
OPENAI_API_KEY=sk-... # For GPT-4
GOOGLE_AI_API_KEY=... # For Gemini
PERPLEXITY_API_KEY=pplx-... # For Perplexity
- Replace
your-project-idwith your actual Supabase project ID - Replace
eyJ...with your actual anon key (must be on a single line!) - Add at least one LLM provider API key to execute queries
Where to Get API Keys
- Claude (Anthropic): console.anthropic.com
- GPT-4 (OpenAI): platform.openai.com
- Gemini (Google AI): aistudio.google.com
- Perplexity: docs.perplexity.ai
Start the Development Server
Launch the application:
npm run dev
Open your browser to http://localhost:3000
You should see the AEO/GEO Analytics dashboard! 🎉
Verify Installation
Check API Keys
Navigate to /dashboard/execute and verify:
- ✅ Green checkmarks for configured providers
- ⚠️ Warnings for missing API keys
Run a Test Query
- Go to Execute page
- Enter a test query:
What are the best running shoes for beginners? - Select a provider (must have valid API key)
- Click Execute Query
- View results with citations
If you see results with extracted citations, your installation is complete!
Common Installation Issues
Node Version Error
Error: The engine "node" is incompatible with this module
Solution: Upgrade to Node.js 18 or higher:
node --version # Check current version
Download latest from nodejs.org
Supabase Connection Error
Error: Invalid Supabase URL or Invalid API key
Solution: Verify your .env.local file:
- URL should start with
https://and end with.supabase.co - Anon key should be a long string starting with
eyJ(no spaces or newlines) - No quotes around values
Migration Errors
Error: relation "llm_queries" does not exist
Solution: Ensure migrations ran successfully:
npx supabase db push
Check Supabase dashboard → Table Editor to verify tables exist.
Next Steps
Now that installation is complete:
- Configuration → - Fine-tune your setup
- Quick Start → - Execute your first queries
- User Guide → - Explore all features
Need Help?
- Check the Troubleshooting Guide
- Open an issue on GitHub
- Review FAQ