Pluggist is a comprehensive EV charging station directory and trip planner built with Next.js 15, TypeScript, and Supabase. The project includes an MCP server component that provides AI assistants with tools for interacting with charging station data.
- Frontend: Next.js 15 with App Router, React 19, TypeScript
- Styling: Tailwind CSS with shadcn/ui components
- Backend: Supabase (PostgreSQL) with real-time subscriptions
- Authentication: NextAuth.js with Google OAuth
- Maps: MapLibre GL for interactive maps
- MCP Server: Node.js server for AI tool integration
- Package Manager: pnpm (v10.0.0-rc.2)
- Station Discovery: Find EV charging stations with advanced filtering
- Real-time Availability: Check live connector status and wait times
- Trip Planning: Calculate optimal charging stops for long trips
- Business Integration: Exclusive deals from nearby restaurants/shops
- User Reviews: Community-driven station ratings and comments
- Admin Dashboard: Station management and analytics
- MCP Integration: AI assistant tools for enhanced user experience
# Install dependencies
pnpm install
# Install MCP server dependencies
cd mcp-server && npm install
# Set up environment variables
cp .env.example .env.local# Start Next.js dev server
pnpm dev
# Start MCP server (separate terminal)
pnpm mcp:start
# Build for production
pnpm build
# Run tests
pnpm test
# Lint code
pnpm lint# Apply Supabase migrations
npx supabase db push
# Generate TypeScript types
npx supabase gen types typescript --local > src/types/supabase.ts
# Reset database (development only)
npx supabase db reset# Deploy to Vercel
pnpm deploy
# Preview deployment
pnpm deploy:previewsrc/app/- Next.js App Router pages and API routessrc/components/- React components (extensive UI library)src/hooks/- Custom React hookssrc/lib/- Utility functions and configurationssupabase/- Database migrations and configuration
mcp-server/index.js- Main MCP server implementationmcp-server/package.json- MCP server dependencies
manifest.json- MCPB manifest for AI assistant integrationnext.config.ts- Next.js configurationtailwind.config.ts- Tailwind CSS configurationcomponents.json- shadcn/ui configuration
# Database
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# Authentication
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-secret-key
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
# Optional
NEXT_PUBLIC_APP_URL=https://pluggist.com
NODE_ENV=developmentKey tables:
charging_stations- Station data (location, connectors, amenities)connectors- Individual charging connectors per stationavailability- Real-time connector availability statusreviews- User reviews and ratingsbusinesses- Partner businesses offering dealstrips- User trip plans and routes
- Use admin dashboard at
/admin - Or import via API at
/api/admin/stations - Ensure proper validation and geocoding
- Edit
mcp-server/index.js - Add new tools to
ListToolsRequestSchemahandler - Implement tool logic in
CallToolRequestSchemahandler - Update
manifest.jsontools array if needed
- Use Tailwind CSS utility classes
- Leverage shadcn/ui components when possible
- Follow existing design system patterns
- Ensure responsive design (mobile-first)
- Use CSS variables for theme consistency
- Use Next.js Image component for all images
- Implement proper loading states
- Use React.memo for expensive components
- Leverage Supabase edge functions for heavy operations
- Monitor bundle size with
pnpm build
# Clear caches
rm -rf .next node_modules
pnpm install
# Check TypeScript errors
pnpm build# Reset local Supabase
npx supabase stop
npx supabase start
npx supabase db reset# Test MCP server directly
cd mcp-server
node index.js
# Check dependencies
npm install- Ensure all environment variables are set in Vercel
- Check build logs for specific errors
- Verify Supabase connection from deployment environment
Use these prompts when working with AI assistants:
"I'm working on Pluggist, an EV charging station directory built with Next.js 15 and Supabase. Please help me [specific task] while following the project's TypeScript conventions and using the existing component library."
"This project includes an MCP server component that provides AI assistants with EV charging station tools. Please help me enhance the MCP server functionality while maintaining compatibility with the MCPB manifest."
"I need help with Supabase database operations for Pluggist. The schema includes charging_stations, connectors, availability, and reviews tables. Please suggest SQL migrations and TypeScript types."
- ✅ Core Next.js application structure
- ✅ Supabase integration and authentication
- ✅ Basic MCP server implementation
- ✅ Component library (shadcn/ui)
⚠️ Deployment pipeline (needs fixing)- 🔄 Real-time availability system (in progress)
- 📋 Admin dashboard (needs enhancement)
- 📋 Trip planner optimization (needs work)
- Fix Vercel deployment configuration
- Implement real-time availability updates
- Enhance trip planning algorithms
- Add comprehensive testing suite
- Improve MCP server with database integration
- Implement business partnership system
- Add mobile app support
For any questions or issues, refer to the existing memories in .serena/memories/ or check the GitHub repository issues.