A comprehensive platform connecting skilled volunteers with meaningful AI/tech projects to advance communities through collaborative innovation.
Production: https://maix.io (canonical domain)
MAIX is deployed and available at maix.io - this is the official, canonical domain for the platform.
MAIX (Meaningful AI Exchange) is an AI-accelerated not-for-profit action and collaboration platform built on Next.js 15. We connect skilled volunteers with meaningful AI/tech projects to advance communities through collaborative innovation.
- ACTION 🎯 - Getting things done efficiently with AI assistance
- COMMUNITY 👥 - Doing it together, AI-facilitated collaboration
- AI ASSISTANCE ⚡ - Every workflow enhanced by intelligent automation
MAIX is fundamentally AI-native - unlike platforms that retrofit AI features onto existing paradigms, we're built from the ground up with AI as the primary interface and collaboration mechanism.
What Makes Us AI-Native:
- AI-first navigation and discovery (not traditional menus + AI addon)
- Intelligent project/task matching based on skills and context
- AI-assisted onboarding, contribution guidance, and code reviews
- Natural language interfaces for complex platform interactions
- Proactive suggestions and contextual assistance throughout workflows
Competitive Differentiation: While GitHub, Linear, and other platforms add AI features to existing UX patterns, MAIX is designed as an AI-native experience where artificial intelligence is the primary way users interact with projects, discover opportunities, and collaborate with others.
MAIX is built around three core principles:
- Knowledge Sharing: Connect learners with experienced professionals who can provide guidance and mentorship
- Skill Development: Provide opportunities for volunteers to develop new skills through real-world projects
- Educational Resources: Create a repository of best practices, tutorials, and learning materials
- Peer Learning: Foster environments where contributors learn from each other through collaboration
- Community Support: Enable volunteers to contribute their expertise to projects that benefit communities
- Non-Profit Assistance: Provide technology solutions to organizations working on social good
- Accessibility: Make AI and technology expertise available to those who might not otherwise have access
- Impact Amplification: Help multiply the positive impact of individual efforts through coordinated collaboration
- Expert Access: Connect project owners with skilled volunteers who can provide the expertise they need
- Resource Matching: Match projects with appropriate resources, skills, and timelines
- Problem Solving: Provide structured approaches to breaking down complex technical challenges
- Community Wisdom: Leverage collective knowledge to find innovative solutions to difficult problems
- Intelligent Matching: AI-powered algorithm matching volunteers with projects based on skills, experience, and interests
- Natural Language Search: Advanced search capabilities to find relevant projects and volunteers
- User Profiles: Comprehensive profiles with unique usernames, skills, and experience levels
- Clean Design: Modern, accessible UI with thoughtful design patterns and color schemes
- Real-time Collaboration: In-app messaging and project management tools
- Community Building: Reviews, ratings, and reputation system to build trust
- Project Types: Support for advice, prototypes, MVPs, and complete products
- Claude Code Integration: Remote MCP (Model Context Protocol) server for managing profiles and projects via Claude Code CLI
- Framework: Next.js 15 with App Router
- Database: Neon PostgreSQL with pgvector extension
- Authentication: NextAuth.js with Google OAuth
- AI: Google Gemini via
@google/genai
package - UI Components: shadcn/ui (Radix UI + Tailwind)
- Deployment: Vercel for seamless scaling
- Animations: Framer Motion for smooth interactions
- Forms: React Hook Form with Zod validation
- Real-time: Pusher/Ably for WebSocket connections
- Icons: Lucide React for consistency
- TypeScript: Full type safety throughout
- Node.js 18+ and npm
- Docker (for test database)
- Neon database account
- Google Cloud Console project (for OAuth)
- Google Gemini API key
-
Clone the repository
git clone https://github.com/ansari-project/maix.git cd maix
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Configure the following variables:
# Database DATABASE_URL="postgresql://username:[email protected]/neondb" # NextAuth NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_SECRET="your-secret-key" # Google OAuth GOOGLE_CLIENT_ID="your-google-client-id" GOOGLE_CLIENT_SECRET="your-google-client-secret" # Google Gemini API GOOGLE_GENAI_API_KEY="your-gemini-api-key"
-
Set up the database
npm run db:migrate:apply # Apply migrations safely npm run db:seed # Optional: seed with sample data
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
maix/
├── src/
│ ├── app/ # Next.js App Router
│ ├── components/ # UI components (shadcn/ui based)
│ ├── lib/ # Utilities and configs
│ ├── hooks/ # Custom React hooks
│ └── types/ # TypeScript definitions
├── prisma/ # Database schema
├── tests/ # Test files
├── scripts/ # Build and utility scripts
│ └── tmp/ # Temporary/one-off scripts
└── dev_docs/ # Development documentation (NOT user-facing)
├── ref/ # Reference material (APIs, schemas, etc.)
├── designs/ # Feature designs (DAPPER Design phase)
├── plans/ # Implementation plans (DAPPER Plan phase)
└── lessons/ # Lessons learned from features
MAIX follows the DAPPER methodology for structured development:
D - Design : AI explores and proposes multiple approaches
A - Align : Human decides and aligns on direction
P - Plan : Break into executable phases with ITRC structure
P - Produce : Build, test, review, commit & push
E - Evaluate : Comprehensive review of all work
R - Revise : Update docs and capture lessons learned
Use for: New features, complex refactoring, architecture changes, significant complexity
Skip for: Simple bug fixes, text changes, configuration updates, straightforward dependencies
Each development phase follows the ITRC structure:
- I (Implement): Build the functionality
- T (Test): Write and run tests immediately
- R (Review): Code review for quality
- C (Commit & Push): Version control with clear messages
For detailed DAPPER documentation, see CLAUDE.md
(for AI agents) or dev_docs/ref/dapper-methodology.md
(for humans).
FUNDAMENTAL PRINCIPLE: A small number of well-thought-out tests is better than a large number of poor tests. Focus on testing behavior, not implementation details.
- Integration Tests (60%) - Real database, real constraints
- Unit Tests (30%) - Only for pure business logic
- E2E Tests (10%) - Critical user paths
# Start test database (port 5433)
npm run test:db:start
# Run tests
npm run test:integration # Integration tests with real DB
npm run test:unit # Unit tests only
npm run test:all # Both suites
# Stop test database
npm run test:db:stop
Test Database Configuration:
- Runs on port 5433 (production uses 5432)
- Database:
maix_test
, User:testuser
, Password:testpass
- Real database operations, not mocks
- Database cleaned between tests
npm test
- All tests (unit + integration if DB running)npm run test:unit
- Unit tests onlynpm run test:integration
- Integration tests with real databasenpm run test:watch
- Watch mode for developmentnpm run test:db:start
- Start Docker test databasenpm run test:db:stop
- Stop Docker test database
- Bias towards simple solutions: Address current problems, not hypothetical future ones
- Avoid premature optimization: Don't implement complex patterns for problems that don't exist
- Use straightforward Prisma queries: Direct queries rather than complex abstraction layers
- Focus on current scale: Design for today's usage patterns
- Iterative complexity: Add complexity only when simple solutions prove insufficient
Context: Community platform for volunteer matching
- What we are: A community platform, non-profit focused
- What we're NOT: Financial service, healthcare system, or PII-heavy
- Security Approach:
- Focus on basics (input validation with Zod)
- Skip security theater (no complex CSRF, rate limiting)
- Pragmatic protection (Prisma prevents SQL injection, React prevents XSS)
- Basic session management with NextAuth
# Step 1: Create migration (non-interactive)
npm run db:migrate:new descriptive_name
# Step 2: Review generated SQL
cat prisma/migrations/*/migration.sql
# Step 3: Apply when ready
npm run db:migrate:apply
NEVER use:
npx prisma db push
- Destructive, drops/recreates tablesnpx prisma migrate dev
- Interactive, breaks AI agents
Safe Commands:
db:migrate:new
- Create migration via migrate diffdb:migrate:apply
- Apply migrations via deploydb:migrate:status
- Check migration statusdb:backup
- Backup databasedb:health
- Health checkdb:studio
- Prisma Studio (read-only recommended)
Quick health check:
npm audit --audit-level=moderate # Fix Critical/High only
grep -r "console\." src/ | wc -l # Should trend down
npm outdated # Update only if needed
npm run lint # ESLint checks
npm run type-check # TypeScript validation
npm run build # Build validation
- Use descriptive commit messages explaining purpose
- Use
git add [specific-files]
- nevergit add .
orgit add -A
- Always check remote before pushing:
git fetch origin && git status
- Never force push to shared branches
- If push fails, stop and investigate
MAIX provides a remote MCP (Model Context Protocol) server that allows you to manage your profile and projects directly through Claude Code CLI.
- Generate a Personal Access Token at https://maix.io/settings (API Tokens section)
- Add the MCP server to Claude Code:
claude mcp add --transport http --scope user maix-platform https://maix.io/api/mcp --header "Authorization: Bearer YOUR_PAT_TOKEN_HERE"
- Start using Claude Code to manage your MAIX profile and projects
- "Update my MAIX profile to add React and TypeScript skills"
- "Create a new AI project for building a chatbot"
- "List all my projects"
- "Update project [id] to need 5 volunteers"
For detailed setup instructions, see docs/howtos/claude-code-setup.md.
gh run list --limit 5 # Check recent runs
gh run view <RUN_ID> # View run details
gh run view --log-failed --job=<ID> # Get error logs
Pro Tips:
- Don't use
sleep
commands - work asynchronously - Use
--log-failed
for relevant error information - Check status periodically while working on other tasks
For comprehensive debugging strategies, see dev_docs/ref/debugging-playbook.md
.
- Volunteers: Skilled individuals offering their expertise
- Project Supervisors: People managing projects needing help
- Organization Admins: Representatives of non-profit organizations
- Advice: Consultation and guidance projects
- Prototype: Early-stage development projects
- MVP: Minimum viable product development
- Complete Product: Full product development projects
Projects use a dual status system:
status
: Tracks lifecycle (AWAITING_VOLUNTEERS → PLANNING → IN_PROGRESS → COMPLETED)isActive
: Controls volunteer recruitment (can be true even when IN_PROGRESS)
- Following: Users can follow organizations, projects, and products to receive updates
- Pure Subscriptions: Following grants ZERO permissions - only controls notifications
- Clear Messaging: "Get Updates" buttons make it clear this is for notifications only
We welcome contributions from the global tech community! Here's how you can help:
- Fork the repository and create a feature branch
- Follow DAPPER methodology for significant features
- Write tests following our integration-first strategy
- Submit a pull request with clear description
- Report bugs and suggest improvements
- Share feedback on user experience
- Suggest new features that benefit the community
- Help with documentation and translations
- TypeScript: Full type safety with dual config strategy
- Testing: Integration-first with real database
- Accessibility: WCAG 2.1 AA compliance
- UI/UX: Clean design, semantic HTML, Markdown support
MAIX is built on these core values:
- Community benefit over profit: Non-profit focus
- Knowledge sharing: Open learning and skill development
- Transparency: Open processes and clear communication
- Collaboration: Welcome contributors from all backgrounds
- Ethical AI: Ensuring AI serves humanity responsibly
- Inclusive: Accessible to those who need it most
- README.md - This file, setup and overview
- CLAUDE.md - AI agent instructions and enforcement rules
- dev_docs/ref/ - Technical reference documentation
- dev_docs/designs/ - Feature designs (DAPPER methodology)
- dev_docs/plans/ - Implementation plans
- dev_docs/lessons/ - Lessons learned from features
- lessons-learned.md - Cumulative project insights
This project is licensed under the MIT License - see the LICENSE file for details.
- Global tech community for support and feedback
- Open source contributors for their valuable contributions
- Design community for inspiration and guidance
- All volunteers who contribute their time and expertise
Built with ❤️ for positive social impact