BrandScope: AI-Powered Brand Insights & AI Search Engine Analytics Platform
A personal project showcasing modern full-stack development with AI integration
Click to expand full table of contents
- π Brand Scope - Technical Documentation
- π Table of Contents
- π― Project Overview
- ποΈ Technical Architecture
- π Core Features & Functionality
- ποΈ Database Schema & Data Models
- π API Architecture & Endpoints
- π AI Integration Details
- π¨ Component Architecture
- π Security & Authentication
- π Monitoring & Analytics
- π Deployment & DevOps
- π§ Configuration & Customization
- π Development Guidelines
- οΏ½ Project Status & Monitoring
- π Quick Start Guide
- π€ Contributing
Brand Scope (BrandScope) is a sophisticated SaaS platform that provides comprehensive brand analysis and monitoring across AI search engines. The platform enables businesses to track their visibility, sentiment, and performance across multiple AI models including ChatGPT, Perplexity, Gemini, Claude, and others.
| π― Feature | π Description | π‘ Business Value |
|---|---|---|
| AI SEO Optimization | Monitor and improve brand visibility in AI-generated responses | Increase brand awareness in the AI-first search landscape |
| Multi-AI Model Analysis | Track performance across 15+ AI search engines and models | Comprehensive visibility across all major AI platforms |
| Real-time Monitoring | Scheduled queries with automated analysis and insights | Stay ahead of brand reputation changes |
| Competitive Intelligence | Compare brand performance against competitors | Identify market opportunities and threats |
| Data-Driven Recommendations | AI-powered suggestions for brand improvement | Actionable insights for marketing strategy |
| π Category | π§ Features | π Metrics |
|---|---|---|
| Analysis Modes | Explorer (5 models) + Voyager (10 models) | 15+ AI models supported |
| Monitoring | Scheduled queries (daily/weekly/monthly) | Up to 500 scheduled queries |
| Credit System | Subscription + Pay-as-you-go options | 150-27,000 credits available |
| Integrations | Stripe, Supabase, PostHog, Sentry | 10+ external services |
| Data Sources | AI models, Google Search, Reddit, Wikipedia | Multi-source intelligence |
| π·οΈ Category | π οΈ Technology | π Purpose | β Version |
|---|---|---|---|
| Frontend | Next.js | React framework with App Router | 15.x |
| Language | TypeScript | Type-safe development | 5.x |
| Styling | TailwindCSS + shadcn/ui | Modern, responsive design | 4.x |
| Animation | Framer Motion | Smooth UI transitions | 12.x |
| Database | Supabase (PostgreSQL) | Authentication, data storage, real-time | Latest |
| Payments | Stripe | Subscription & PAYG billing | Latest |
| Analytics | PostHog + Sentry | User analytics & error monitoring | Latest |
| Deployment | Vercel | Hosting & CI/CD | Latest |
graph TB
User[π€ User] --> Frontend[π₯οΈ Next.js Frontend]
Frontend --> Auth[π Supabase Auth]
Frontend --> API[π API Routes]
API --> DB[(π PostgreSQL Database)]
API --> AI[π€ AI Providers]
API --> Search[π Search APIs]
API --> Payment[π³ Stripe]
AI --> OpenRouter[OpenRouter]
AI --> Claude[Anthropic]
AI --> GPT[OpenAI]
AI --> Groq[Groq/Llama]
Search --> Exa[Exa.ai]
Search --> SerpAPI[SerpAPI]
Search --> Google[Google AI]
subgraph "Monitoring & Analytics"
PostHog[π PostHog]
Sentry[π Sentry]
Vercel[π Vercel Analytics]
end
| ποΈ Component | π― Responsibility | π§ Implementation |
|---|---|---|
| Frontend Layer | User interface, state management | Next.js 15 + React 19 |
| API Layer | Business logic, data processing | Next.js API routes |
| Database Layer | Data persistence, real-time updates | Supabase PostgreSQL |
| AI Layer | Multi-model AI analysis | 15+ AI provider integrations |
| Payment Layer | Billing, subscriptions, credits | Stripe integration |
| Monitoring Layer | Analytics, errors, performance | PostHog + Sentry + Vercel |
- Explorer Mode: Cost-effective analysis using 5 AI models (1-3 credits per model)
- Google AI Mode, Perplexity Sonar, Gemini 2.5 Flash, Claude 4.0 Sonnet, GPT-4o
- Voyager Mode: Comprehensive analysis using 10 advanced AI models (1 credit per model)
- DeepSeek v3, Claude Sonnet 4, GPT-5, Llama 4 Maverick, Grok 4, and more
- Brand Visibility Scoring: Algorithmic scoring based on AI model mentions
- Sentiment Analysis: Positive/Negative/Neutral sentiment classification
- Ranking Analysis: Position tracking across different AI responses
- Consumer Perception: AI-generated insights about brand perception
- SWOT Analysis: Automated strengths, weaknesses, opportunities analysis
- Automated Competitor Identification: AI-powered competitor discovery
- Industry Analysis: Context-aware competitive landscape mapping
- Ranking Differential: Performance comparison metrics
- Competitive Strengths/Weaknesses: Detailed competitor analysis
- Multi-brand Monitoring: Track multiple competitors simultaneously
- Performance Benchmarking: Relative performance metrics
- Market Share Insights: AI-estimated market positioning
- AI-Generated Keywords: Industry-specific keyword discovery
- Search Volume Estimation: AI-predicted search volumes
- Difficulty Scoring: Ranking difficulty assessment (0-10 scale)
- Opportunity Scoring: Business opportunity evaluation
- Relevance Rating: Brand-specific relevance metrics
- Content Gap Analysis: Identify missing content opportunities
- AI-Powered Recommendations: Specific improvement suggestions
- Priority Scoring: Action item prioritization
- Automated Monitoring: Configurable query scheduling (daily, weekly, monthly)
- Custom Query Creation: User-defined monitoring queries
- Multi-location Support: Geographic location-specific analysis
- Brand-specific Monitoring: Targeted brand performance tracking
- Background Processing: Automated query execution via cron jobs
- Result Aggregation: Multi-source data compilation
- Trend Analysis: Historical performance tracking
- Alert System: Performance change notifications
| π¦ Plan | π° Price/Month | π― Credits/Month | π Scheduled Queries | π¨ Best For |
|---|---|---|---|---|
| Pro | $89 | 2,250 | 50 | Small businesses, startups |
| Plus | $249 | 7,200 | 200 | Growing companies, agencies |
| Premium | $699 | 27,000 | 500 | Enterprise, large brands |
| π¦ Package | π― Credits | π° Price | π‘ Cost per Credit | π·οΈ Badge |
|---|---|---|---|---|
| Small | 150 | $17.80 | $0.119 | Starter Pack |
| Medium | 350 | $39.00 | $0.111 | Best Value |
| Large | 750 | $79.00 | $0.105 | Maximum Credits |
| π§ Feature | π Description | π‘ Benefits |
|---|---|---|
| Real-time Monitoring | Live credit balance tracking | Never run out unexpectedly |
| Usage Analytics | Detailed consumption reports | Optimize spending patterns |
| Auto-Management | Smart credit allocation | Efficient resource utilization |
| Threshold Alerts | Low balance notifications | Proactive credit management |
| ποΈ Table Name | π― Primary Purpose | π Key Relationships | π Estimated Rows |
|---|---|---|---|
| users | User accounts & authentication | β brands, user_subscriptions | 1K-10K |
| brands | Brand information & settings | β users, β brand_metrics | 5K-50K |
| brand_metrics | Brand performance analytics | β brands | 10K-100K |
| ai_rankings | AI model analysis results | β brands, users | 100K-1M |
| scheduled_queries | Automated monitoring setup | β users, brands | 10K-100K |
| search_results | Search & analysis data | β scheduled_queries | 100K-10M |
| competitors | Competitor tracking data | β brands, users | 50K-500K |
| keywords | Keyword research & tracking | β brands, users | 100K-1M |
| user_subscriptions | Billing & plan management | β users | 1K-10K |
erDiagram
users ||--o{ brands : owns
users ||--o{ user_subscriptions : has
users ||--o{ scheduled_queries : creates
brands ||--o{ brand_metrics : generates
brands ||--o{ competitors : tracks
brands ||--o{ keywords : analyzes
brands ||--o{ ai_rankings : produces
scheduled_queries ||--o{ search_results : executes
scheduled_queries ||--o{ ai_rankings : generates
users {
uuid id PK
string email
string full_name
enum plan_type
timestamp created_at
}
brands {
uuid id PK
uuid user_id FK
string name
string website
string industry
timestamp created_at
}
ai_rankings {
uuid id PK
uuid entity_id FK
uuid user_id FK
string llm_name
int rank
float score
enum sentiment
timestamp analyzed_at
}
interface User {
id: string;
email: string;
full_name: string | null;
plan_type: 'free' | 'pro' | 'plus' | 'premium';
created_at: string;
user_type: string;
}interface Brand {
id: string;
name: string;
logo_url: string | null;
website: string | null;
industry: string | null;
user_id: string;
location: string;
language: string;
created_at: string;
}interface BrandMetrics {
id: string;
brand_id: string;
visibility_score: number;
positive_sentiment: number;
negative_sentiment: number;
neutral_sentiment: number;
detection_rate: number;
brand_mentions: number;
brand_citations: string[];
consumer_perception: string;
strengths: string[];
weaknesses: string[];
opportunities: string[];
analyzed_at: string;
}interface AIRanking {
id: string;
entity_id: string;
entity_name: string;
entity_type: 'brand' | 'competitor';
user_id: string;
llm_name: string;
query: string;
rank: number | null;
score: number;
reasoning: string;
sentiment: 'positive' | 'negative' | 'neutral';
mode: 'Explorer' | 'Voyager';
mode_id: string;
analyzed_at: string;
is_monitoring: boolean;
}interface ScheduledQuery {
id: string;
user_id: string;
query: string;
frequency: 'daily' | 'weekly' | 'monthly';
last_analysis_at: string | null;
next_analysis_at: string;
mode: 'Explorer' | 'Voyager';
mode_id: string;
status: 'active' | 'paused' | 'completed';
location: string;
attached_brand_id: string[];
selected_models: string[];
credits_per_run: number;
include_google_search: boolean;
}interface Search {
id: string;
user_id: string;
query: string;
engine: string;
brand_name: string;
monitoring_id: string;
location: string;
created_at: string;
}
interface GoogleSearch {
id: string;
search_id: string;
engine: string;
results: any; // JSONB
ai_overview: string;
mode_id: string;
rankings: any; // JSONB
created_at: string;
}interface UserSubscription {
id: string;
user_id: string;
stripe_customer_id: string;
stripe_subscription_id: string;
price_id: string;
status: 'active' | 'canceled' | 'past_due';
current_period_start: string;
current_period_end: string;
created_at: string;
}| π·οΈ Category | π§ Method | π Endpoint | π Description | β‘ Auth Required |
|---|---|---|---|---|
| Auth & Users | POST | /api/auth/callback |
OAuth callback handler | β |
| GET | /api/credit-usage |
User credit usage tracking | β | |
| Brand Analysis | POST | /api/analyze-brand |
Comprehensive brand analysis | β |
| POST | /api/brand-data |
Fetch brand data and metrics | β | |
| POST | /api/brand-citations-analysis |
Brand citation analysis | β | |
| POST | /api/brand-improvement |
AI improvement recommendations | β | |
| Search & AI | POST | /api/search/prompt |
Execute AI model searches | β |
| GET | /api/search |
Retrieve search results | β | |
| GET | /api/search/models |
Available AI models list | β | |
| POST | /api/schedule-query |
Create scheduled monitoring | β | |
| GET | /api/monitoring |
Fetch monitoring data | β | |
| POST | /api/process-next-batch |
Process query batches | π | |
| POST | /api/cron-process-query |
Automated query processing | π | |
| Keywords | POST | /api/keywords/research |
Keyword research analysis | β |
| GET | /api/keywords/history |
Keyword performance history | β | |
| POST | /api/keywords-analysis |
Keyword opportunity analysis | β | |
| Competitors | POST | /api/findcompetitors |
Discover competitors | β |
| POST | /api/generate-steps |
Generate improvement steps | β | |
| Data Sources | POST | /api/search-google |
Google search integration | β |
| POST | /api/scrapereddit |
Reddit data scraping | β | |
| Payments | POST | /api/stripe/checkout |
Create subscription checkout | β |
| POST | /api/stripe/payg-checkout |
Pay-as-you-go checkout | β | |
| POST | /api/stripe/billing-portal |
Customer portal access | β | |
| GET | /api/stripe/subscription-info |
Subscription details | β | |
| POST | /api/stripe/webhook |
Stripe webhook handler | π | |
| System | POST | /api/update-query-count |
Update query counters | π |
| POST | /api/onboarding-autofill |
Onboarding assistance | β |
// Authenticated requests include
headers: {
'Authorization': 'Bearer <supabase-jwt-token>',
'Content-Type': 'application/json'
}
// Body structure
{
userId?: string,
brandId?: string,
query?: string,
...additionalParams
}interface APIResponse<T> {
success: boolean;
data?: T;
error?: string;
message?: string;
credits_used?: number;
timestamp?: string;
}| π’ Status Code | π Error Type | π Description | π§ Common Causes |
|---|---|---|---|
| 400 | Bad Request | Invalid parameters | Missing required fields, invalid data format |
| 401 | Unauthorized | Authentication required | Missing/invalid JWT token |
| 403 | Forbidden | Insufficient permissions | Plan limits exceeded, access denied |
| 404 | Not Found | Resource not found | Invalid IDs, deleted resources |
| 429 | Rate Limited | Credit limit exceeded | Insufficient credits, rate limiting |
| 500 | Internal Server Error | System error | AI provider issues, database errors |
| π€ AI Model | π° Credit Cost | π― Specialty | π Provider | β‘ Speed |
|---|---|---|---|---|
| Google AI Mode | 1 | AI Overview integration | Fast | |
| Perplexity Sonar | 1 | Citation-backed responses | Perplexity | Fast |
| Gemini 2.5 Flash Search | 2 | Multimodal reasoning | Medium | |
| Claude 4.0 Sonnet Search | 3 | Long-context understanding | Anthropic | Medium |
| GPT-4o Web Search | 1 | Real-time processing | OpenAI | Fast |
| π€ AI Model | π° Credit Cost | π― Specialty | π Provider | π Release |
|---|---|---|---|---|
| DeepSeek v3 | 1 | Reasoning & coding | DeepSeek | 2024 |
| Claude Sonnet 4 | 1 | Advanced reasoning | Anthropic | 2024 |
| DeepSeek R1 | 1 | Mathematical reasoning | DeepSeek | 2024 |
| Kimi K2 | 1 | Long context | Moonshot | 2024 |
| GPT-5 | 1 | Next-gen language | OpenAI | 2024 |
| Llama 4 Maverick | 1 | Open-source leader | Meta | 2024 |
| Grok 4 | 1 | Real-time insights | xAI | 2024 |
| Mistral Medium | 1 | European excellence | Mistral | 2024 |
| Ernie 4.5 | 1 | Chinese language | Baidu | 2024 |
| Qwen 3 235b | 1 | Massive scale | Alibaba | 2024 |
| π Feature | π Explorer Mode | π Voyager Mode |
|---|---|---|
| Model Count | 5 models | 10 models |
| Credit Range | 1-3 per model | 1 per model |
| Total Cost | 8 credits max | 10 credits max |
| Analysis Depth | Cost-effective | Comprehensive |
| Speed | Fast (2-5 min) | Medium (5-10 min) |
| Best For | Regular monitoring | Deep analysis |
| Google Search | +1 credit (optional) | +1 credit (optional) |
| π― Analysis Type | π Explorer | π Voyager | π With Google | π‘ Recommended For |
|---|---|---|---|---|
| Quick Check | 5 credits | 10 credits | +1 credit | Daily monitoring |
| Full Analysis | 8 credits | 10 credits | +1 credit | Weekly deep-dive |
| Competitor Compare | 16 credits | 20 credits | +2 credits | Monthly competitive analysis |
| Bulk Monitoring | 40 credits | 50 credits | +5 credits | Enterprise-scale tracking |
// Multi-model query execution
const executeAIAnalysis = async (query: string, models: string[]) => {
const results = await Promise.allSettled(
models.map(model => queryAIModel(model, query))
);
return aggregateResults(results);
};- Brand Mention Detection: NLP-based brand identification
- Sentiment Classification: Multi-class sentiment analysis
- Ranking Extraction: Position analysis in AI responses
- Citation Analysis: Source attribution tracking
- Multi-brand Queries: Simultaneous brand comparison
- Relative Ranking: Competitive positioning analysis
- Market Share Estimation: AI-predicted market dynamics
graph TD
App[π App Router Root] --> Layout[π± RootLayout]
Layout --> Auth[π AuthProvider]
Layout --> Theme[π¨ ThemeProvider]
Layout --> Analytics[π PostHogProvider]
App --> Dashboard[π Dashboard Layout]
Dashboard --> Sidebar[π AppSidebar]
Dashboard --> Brand[π’ BrandDataProvider]
Dashboard --> Metrics[π MetricsCard]
Dashboard --> Citations[π CitationsCard]
Dashboard --> Competitors[π₯ CompetitorChart]
Dashboard --> Keywords[π KeywordAnalysisCard]
Dashboard --> Insights[π‘ InsightsCard]
subgraph "UI Components"
Button[π Button]
Card[π Card]
Dialog[π¬ Dialog]
Table[π Table]
Chart[π Chart]
end
| π·οΈ Category | π§© Component | π Path | π― Purpose |
|---|---|---|---|
| Layout | RootLayout | /src/app/layout.tsx |
Global providers, theme, analytics |
| DashboardLayout | /src/app/dashboard/layout.tsx |
Sidebar, breadcrumbs, session management | |
| Authentication | AuthProvider | /src/contexts/AuthContext.tsx |
User authentication & session state |
| ProtectedRoute | /src/components/auth/ProtectedRoute.tsx |
Route access control | |
| LoginForm | /src/components/login-form.tsx |
Email/password + OAuth login | |
| SignupForm | /src/components/signup-form.tsx |
User registration flow | |
| Dashboard | MetricsCard | /src/components/dashboard/metrics-card.tsx |
Brand performance metrics |
| CitationsCard | /src/components/dashboard/citations-card.tsx |
Brand mention citations | |
| CompetitorChart | /src/components/dashboard/competitor-chart.tsx |
Competitive analysis charts | |
| KeywordAnalysisCard | /src/components/dashboard/keyword-analysis-card.tsx |
Keyword performance data | |
| InsightsCard | /src/components/dashboard/insights-card.tsx |
AI-generated insights | |
| Monitoring | ScheduledQueriesList | /src/components/library/scheduled-queries-list.tsx |
Query management interface |
| StepsTabContent | /src/components/monitoring/steps-tab-content.tsx |
Analysis step progression | |
| QueryCounter | /src/components/dashboard/query-counter.tsx |
Real-time query tracking |
| π― Context | π Purpose | ποΈ Data Managed | π Update Triggers |
|---|---|---|---|
| AuthContext | User authentication & session | User data, session, subscriptions | Login, logout, session refresh |
| BrandDataContext | Brand analytics & metrics | Brand info, metrics, competitors, keywords | Brand analysis, data refresh |
| ThemeProvider | UI theme management | Dark/light theme state | User theme toggle |
| π§ Hook | π Purpose | π― Returns | π Side Effects |
|---|---|---|---|
| useAuth | Authentication state & methods | User, session, auth methods | Session monitoring |
| useBrandData | Brand data fetching & caching | Brand metrics, loading states | API calls, cache management |
| useSupabase | Supabase client management | Supabase client instance | Connection management |
| useAuthGuard | Route protection logic | Auth status, redirect logic | Route navigation |
| useIsMobile | Responsive design helper | Mobile/desktop detection | Screen size monitoring |
- Email/Password Authentication
- Google OAuth Integration
- Session Management with automatic refresh
- User Record Creation in custom users table
// Protected routes configuration
const protectedRoutes = [
'/dashboard',
'/profile',
'/settings'
];
// Authentication middleware
const authGuard = (pathname: string) => {
return protectedRoutes.some(route => pathname.startsWith(route));
};- Row Level Security (RLS) on all Supabase tables
- API Key Management for external services
- Rate Limiting on API endpoints
- Input Validation with Zod schemas
- CSRF Protection via Next.js built-ins
- Error Tracking with source maps
- Performance Monitoring for API routes
- User Session Replay for debugging
- Custom Error Boundaries for graceful failure handling
- User Behavior Tracking
- Feature Flag Management
- A/B Testing Capabilities
- Funnel Analysis for conversion optimization
- Core Web Vitals monitoring
- Page Performance metrics
- User Experience tracking
const updateCreditUsage = async (userId: string, credits: number) => {
await supabase
.from('credit_usage')
.insert({
user_id: userId,
credits_used: credits,
operation_type: 'ai_analysis',
timestamp: new Date().toISOString()
});
};- Analysis Completion Time
- AI Model Response Rates
- Error Rate Tracking
- User Engagement Metrics
# Development setup
npm run dev # Start development server with Turbopack
npm run build # Production build
npm run lint # ESLint checking
npm run start # Production server# Supabase
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY=
# AI Providers
OPENROUTER_API_KEY=
GROQ_API_KEY=
ANTHROPIC_API_KEY=
OPENAI_API_KEY=
NEXT_PUBLIC_EXA_API_KEY=
# Stripe
STRIPE_SECRET_KEY=
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=
STRIPE_WEBHOOK_SECRET=
# Analytics
NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_HOST=
SENTRY_DSN=
# External APIs
SERPAPI_KEY=- Automatic Deployments from Git commits
- Preview Deployments for pull requests
- Edge Functions for global performance
- Analytics Integration for monitoring
- Supabase Cloud for managed PostgreSQL
- Automatic Backups and point-in-time recovery
- Connection Pooling for optimal performance
- Real-time Subscriptions for live updates
// Tailwind theme customization
const theme = {
extend: {
colors: {
background: 'hsl(var(--background))',
foreground: 'hsl(var(--foreground))',
primary: 'hsl(var(--primary))',
// ... custom color palette
},
animation: {
'fade-in': 'fadeIn 0.5s ease-in-out',
'slide-up': 'slideUp 0.3s ease-out',
}
}
};// PostHog feature flags
const useFeatureFlag = (flag: string) => {
return posthog.isFeatureEnabled(flag);
};
// Example usage
const showNewFeature = useFeatureFlag('new-analysis-mode');// Configurable credit costs
const constraints = {
models: {
explorer: {
models: [
{ key: 'google-ai-mode', credit_cost: 1 },
{ key: 'claude-search', credit_cost: 3 },
// ... other models
]
}
}
};| π― Standard | π§ Tool/Convention | π Description | β Enforcement |
|---|---|---|---|
| Type Safety | TypeScript Strict Mode | Strict null checks, no implicit any | Compile-time |
| Code Quality | ESLint + Next.js config | Linting rules for React/Next.js | Pre-commit hooks |
| Formatting | Prettier | Consistent code formatting | Auto-format on save |
| Components | PascalCase naming | UserProfile.tsx, SearchForm.tsx |
ESLint rules |
| Hooks | use prefix |
useAuth, useBrandData |
ESLint rules |
| API Routes | RESTful conventions | Clear HTTP methods and endpoints | Code review |
| π·οΈ Category | π Practice | π― Implementation | π‘ Benefits |
|---|---|---|---|
| Error Handling | Error Boundaries | React error boundaries around major components | Graceful failure, better UX |
| Loading States | Skeleton Components | Show loading skeletons for all async operations | Perceived performance |
| Optimistic Updates | UI Updates First | Update UI immediately, rollback on error | Responsive interactions |
| Accessibility | WCAG Compliance | Proper ARIA labels, keyboard navigation | Inclusive design |
| Performance | Code Splitting | Lazy loading, dynamic imports | Faster initial load |
| Caching | React Query | API response caching and invalidation | Reduced API calls |
| π― Test Type | π§ Tools | π Coverage | β±οΈ Run Time |
|---|---|---|---|
| Unit Tests | Jest + Testing Library | Utility functions, hooks | < 30s |
| Integration Tests | Jest + Supertest | API endpoints, database operations | < 2min |
| E2E Tests | Playwright | Critical user journeys | < 5min |
| Performance Tests | Lighthouse CI | Core Web Vitals, API response times | < 1min |
| Visual Tests | Chromatic | Component visual regression | < 3min |
| π Stage | π― Actions | π§ Tools | β Gates |
|---|---|---|---|
| Development | Code, test locally | Next.js dev, ESLint | Local tests pass |
| Pre-commit | Format, lint, type-check | Husky hooks | All checks pass |
| Pull Request | Code review, CI tests | GitHub Actions | Approval + CI green |
| Staging | Deploy preview | Vercel preview | QA testing |
| Production | Deploy main branch | Vercel production | Monitoring alerts |
| π― Service | π§ Tool | π Why |
|---|---|---|
| Uptime | Vercel | Make sure it's actually working |
| Errors | Sentry | Catch bugs before they catch me |
| Performance | Lighthouse | Keep it snappy |
| Database | Supabase | Data safety first |
| π― What | π§ How | π Notes |
|---|---|---|
| Database | Supabase backups | Daily automated backups |
| Code | GitHub | Version control + cloud backup |
| Config | Environment files | Stored securely, not in repo |
| π Resource | π Description |
|---|---|
| This README | Complete technical documentation |
| Code Comments | Inline documentation for complex logic |
| Commit History | Development progression and decisions |
| GitHub Issues | Bug reports and feature discussions |
# 1. Clone the repository
git clone https://github.com/yourorg/brand-scope.git
cd brand-scope
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp .env.example .env.local
# Edit .env.local with your API keys
# 4. Start development server
npm run dev
# 5. Open in browser
open http://localhost:3000| π― Goal | π Steps | β±οΈ Time |
|---|---|---|
| Set Up Brand Monitoring | 1. Sign up β 2. Add your brand β 3. Configure queries | 5 minutes |
| Run First Analysis | 1. Choose Explorer mode β 2. Select AI models β 3. Execute | 3 minutes |
| Check Out the Features | 1. Browse different tabs β 2. See what data looks like | 2 minutes |
| Try Scheduling | 1. Go to Library β 2. Create a query β 3. Set frequency | 3 minutes |
| π Step | π― Action | π§ Command |
|---|---|---|
| 1 | Fork repository | GitHub UI |
| 2 | Clone locally | git clone <your-fork> |
| 3 | Install dependencies | npm install |
| 4 | Create feature branch | git checkout -b feature/your-feature |
| 5 | Make changes | Edit code |
| 6 | Run tests | npm test |
| 7 | Submit PR | GitHub UI |
| π― What | π§ How | π Response |
|---|---|---|
| Questions/Help | michealelijah301@gmail.com | When I see it! |
| Bug Reports | GitHub Issues | Best way to track bugs |
| Feature Ideas | GitHub Issues or email | Love new ideas |
| Contributing | Fork & PR | Always welcome! |
| Just Want to Chat | michealelijah301@gmail.com | Always happy to discuss tech |
This documentation covers a personal project exploring AI integration with modern web technologies. Feel free to explore the code, ask questions, or contribute!
π
Last Updated: September 24, 2025
π·οΈ Version: 1.0.0
π¨βπ» Author: Johnmicheal Elijah
π Built with β€οΈ using Next.js, TypeScript, Supabase, and lots of AI APIs
