🌈 MBTQ.dev - AI-Powered Full-Stack Development Platform

CI/CD Pipeline Deploy to GitHub Pages License React TypeScript Accessibility PRs Welcome

A transparent, open-source generative AI development starter that teaches and guides developers to build full-stack applications with modern tools like Supabase, Next.js, and React.

🌐 Live Demo: https://pinkycollie.github.io/mbtq-dev/

πŸ“– Documentation:

πŸ“’ Platform Evolution

Important Update: MBTQ.dev was originally created as a platform to help deaf entrepreneurs with idea validation, building, growth, and management. These core business features have been migrated to the BUSINESS MAGICIAN platform, powered by 360 Magicians (Generative AI).

Current Focus: MBTQ.dev now serves as an educational and starter kit platform focusing on:

  • πŸ€– Generative AI integration for full-stack apps
  • πŸ”Œ Backend connectors (Supabase, APIs, databases)
  • ⚑ Modern framework templates (Next.js, React)
  • β™Ώ Accessibility-first development
  • πŸ“š Teaching developers to find and integrate APIs
  • 🎨 Production-ready starter kits
  • 🐳 Docker containerization and deployment
  • πŸ”’ Security best practices and CI/CD pipelines
  • πŸ§ͺ Comprehensive testing infrastructure

πŸ’Ž What Makes This Platform Unique?

Built by and for the LGBTQ+ and Deaf communities, this is a culture-first, accessibility-native platform that combines:

  • Real-time collaborative development tools
  • Generative AI guidance for building full-stack applications
  • Transparent documentation and open-source philosophy

✨ Core Features

πŸ€– Generative AI Integration

  • AI-Powered Development - Learn to integrate GPT-4, Claude, and Gemini into your apps
  • Full-Stack Templates - Production-ready examples with AI features
  • Best Practices - Enterprise-grade patterns for LLM integration

πŸ”Œ Backend Connectors

  • Supabase Integration - Complete guides for auth, database, storage, and edge functions
  • API Discovery - Learn how to find, evaluate, and integrate third-party APIs
  • Real-time Features - WebSocket, Server-Sent Events, and real-time database sync

⚑ Modern Framework Support

  • React 18 - Current implementation with TypeScript
  • Next.js Ready - Documentation and examples for Next.js migration
  • Vite/Build Tools - Modern build configuration (can be replaced with framework-specific tools)

β™Ώ Accessibility First

  • WCAG Compliant - Screen-reader optimized, ARIA-enhanced
  • Visual Notifications - Deaf-friendly notification system (no audio cues)
  • Caption Widget - Real-time captioning support for video content
  • High Contrast Toggle - Adaptive visual modes for low vision users
  • Keyboard Navigation - Full keyboard accessibility
  • Built-in A11y Testing - Integrated axe-core for automatic accessibility analysis

πŸ³οΈβ€πŸŒˆ Community & Culture

  • Queer & Deaf Culture - Community-driven design principles
  • Open Source - Transparent development, community contributions welcome
  • Educational Focus - Teach and guide, not just provide solutions

πŸ€– AI Development Assistant (Quinn)

Meet Quinn, your MBTQ development assistant powered by the Fibonrose Task Validation System.

What is Quinn?

Quinn is an AI agent specifically designed to help you build and maintain the MBTQ platform. Quinn provides:

  • πŸ—οΈ Code Architecture Guidance - Get expert advice on structuring your code
  • ⚑ Feature Implementation - Step-by-step assistance building new features
  • πŸ› Debugging Assistance - Help diagnosing and fixing issues
  • πŸ“ PR Review & Suggestions - Automated code review with actionable feedback
  • πŸ“š Documentation Generation - Auto-generate docs from your code
  • βœ… Best Practices Consultation - Ensure you're following React/TypeScript standards

🌹 Fibonrose Task Validation System

Fibonrose ensures tasks are truly complete, not just marked as "done". It combines:

  • Fibonacci sequence for proportional validation based on complexity
  • Evidence-based completion with verifiable checkpoints
  • Progressive confidence as each milestone is confirmed

How It Works:

  1. Task Creation - Quinn assesses complexity (0-9) and creates Fibonacci-based checkpoints
  2. Progress Tracking - Confirm milestones with evidence (commits, tests, screenshots)
  3. Completion Validation - Only complete when ALL checkpoints are verified

Example:

Task: Add loading spinner component (Complexity 3)

🌹 Fibonrose Checklist:
- [x] Checkpoint 1: Component created (commit: abc123)
- [x] Checkpoint 2: Styled and responsive (screenshot: spinner.png)
- [x] Checkpoint 3: Tests passing (coverage: 100%)

Status: βœ… COMPLETE - All confirmations validated!

Task Complexity Levels:

Complexity Confirmations Example
0-1 1 Fix typo, update docs
2 2 Add component prop, update config
3 3 Create UI component, add API endpoint
4 5 Implement feature with tests
5 8 Build complete feature
6+ 13+ Major architectural changes

Getting Started with Quinn

  1. Create an issue describing your task or question
  2. Quinn responds with guidance and creates a Fibonrose checklist if applicable
  3. Confirm checkpoints as you complete them with evidence
  4. Task validated automatically when all confirmations are in

πŸ“– Full Guide: AI Agent Guide


πŸš€ Getting Started

Quick Start Options

Option 1: Use Current React + Vite Setup (Fastest)

For rapid prototyping and learning, the current setup is ready to go.

Option 2: Migrate to Next.js (Recommended for Production)

Next.js provides better performance, SEO, and full-stack capabilities. See our Next.js Migration Guide (coming soon).

Prerequisites

  • Node.js 18+
  • npm or yarn
  • A Supabase account (free tier available at supabase.com)

Current Setup (React + Vite)

1. Install Dependencies

Client

cd client
npm install

Server

cd server
npm install

2. Start Backend

cd server
npm start

The server will start on http://localhost:4000

3. Start Frontend

cd client
npm run dev

The client will start on http://localhost:5173

4. Open Your Browser

Navigate to http://localhost:5173/

πŸ—οΈ Project Structure

mbtq-pinksync-starter-kit/
β”œβ”€β”€ client/                    # React frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ PinkSyncWidget.tsx           # Draggable/resizable widget
β”‚   β”‚   β”‚   β”œβ”€β”€ A11yBar.tsx                  # Accessibility controls
β”‚   β”‚   β”‚   β”œβ”€β”€ Manifesto.tsx                # Community manifesto
β”‚   β”‚   β”‚   β”œβ”€β”€ VisualNotificationSystem.tsx # Deaf-accessible notifications
β”‚   β”‚   β”‚   β”œβ”€β”€ CaptionWidget.tsx            # Real-time captions
β”‚   β”‚   β”‚   └── __tests__/                   # Component tests
β”‚   β”‚   β”œβ”€β”€ test/
β”‚   β”‚   β”‚   └── setup.ts                     # Test configuration
β”‚   β”‚   β”œβ”€β”€ App.tsx                          # Main application
β”‚   β”‚   β”œβ”€β”€ main.tsx                         # Entry point
β”‚   β”‚   └── index.css                        # Global styles
β”‚   β”œβ”€β”€ Dockerfile                           # Client Docker config
β”‚   β”œβ”€β”€ nginx.conf                           # Nginx production config
β”‚   β”œβ”€β”€ vitest.config.ts                     # Test configuration
β”‚   └── package.json
β”œβ”€β”€ server/                    # Socket.IO backend
β”‚   β”œβ”€β”€ index.js              # Real-time sync server with security
β”‚   β”œβ”€β”€ Dockerfile            # Server Docker config
β”‚   └── package.json
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ workflows/
β”‚   β”‚   β”œβ”€β”€ ci.yml            # CI/CD pipeline
β”‚   β”‚   └── deploy.yml        # GitHub Pages deployment
β”‚   └── dependabot.yml        # Automated dependency updates
β”œβ”€β”€ docker-compose.yml         # Multi-container orchestration
β”œβ”€β”€ DEPLOYMENT.md             # Production deployment guide
β”œβ”€β”€ SECURITY.md               # Security policies
β”œβ”€β”€ TESTING.md                # Testing guide
β”œβ”€β”€ API.md                    # API integration guide
β”œβ”€β”€ CONTRIBUTING.md           # Contribution guidelines
β”œβ”€β”€ vite.config.ts            # Vite configuration
β”œβ”€β”€ tailwind.config.js        # Tailwind + custom theme
β”œβ”€β”€ tsconfig.json             # TypeScript config
└── README.md

🎨 Technology Stack

Frontend

  • React 18 - Modern, component-based UI
  • TypeScript - Type-safe development
  • Vite - Lightning-fast build tool
  • Tailwind CSS - Utility-first styling with custom mbtq theme
  • Interact.js - Best-in-class drag and resize
  • Socket.IO Client - Real-time communication
  • axe-core - Automated accessibility testing
  • Vitest - Fast unit test framework
  • React Testing Library - Component testing

Backend

  • Node.js - JavaScript runtime
  • Express - Minimal web framework
  • Socket.IO - Real-time bidirectional communication
  • Helmet - Security headers middleware
  • express-rate-limit - Rate limiting protection
  • dotenv - Environment configuration
  • CORS - Cross-origin resource sharing

DevOps & Deployment

  • Docker - Containerization
  • Docker Compose - Multi-container orchestration
  • Nginx - Production web server
  • GitHub Actions - CI/CD automation
  • Dependabot - Automated dependency updates

β™Ώ Accessibility Features

Built-in Support

  • βœ… ARIA labels and roles
  • βœ… Keyboard navigation
  • βœ… Screen reader optimization
  • βœ… Visual notifications (no audio cues)
  • βœ… Caption widget for video content
  • βœ… High contrast mode toggle
  • βœ… Focus management
  • βœ… Semantic HTML
  • βœ… Automated axe-core testing

Deaf-Specific Features

  • Visual Notification System - All alerts are visual, no audio cues
  • Caption Widget - Real-time caption display with customizable styling
  • Sign Language Ready - Components ready for sign language API integration
  • Video Communication Support - Optimized for video-based communication

Accessibility Bar

The bottom bar provides:

  • High Contrast Toggle - Switch between normal and high-contrast modes
  • A11y Check - Run automated accessibility analysis (results in console)

πŸ”„ Real-time Features

Sync Events

  • Move - Widget position updates broadcast to all connected clients
  • Resize - Widget dimension changes sync in real-time
  • Visual Alerts - Deaf-priority notifications system

How It Works

  1. Client connects to Socket.IO server
  2. User interacts with widget (drag/resize)
  3. Events emit to server
  4. Server broadcasts to all other clients
  5. All clients update in real-time

πŸš€ Production Features

Security

  • βœ… Helmet.js - Security headers (XSS, clickjacking protection)
  • βœ… Rate Limiting - Prevent API abuse
  • βœ… CORS Configuration - Secure cross-origin requests
  • βœ… Environment Variables - Secure credential management
  • βœ… Input Validation - Prevent injection attacks
  • βœ… No Secrets in Code - Best practices enforced

CI/CD Pipeline

  • βœ… Automated Testing - Unit and integration tests on every commit
  • βœ… Type Checking - TypeScript validation
  • βœ… Security Scanning - npm audit for vulnerabilities
  • βœ… Build Verification - Ensure builds succeed
  • βœ… Accessibility Checks - Automated a11y testing
  • βœ… Automated Deployment - GitHub Actions workflow

Testing

  • βœ… Unit Tests - Vitest + React Testing Library
  • βœ… Component Tests - Test user interactions
  • βœ… Accessibility Tests - axe-core integration
  • βœ… Test Coverage - Track code coverage
  • βœ… CI Integration - Tests run on every PR

Docker Support

  • βœ… Client Dockerfile - Nginx-based production container
  • βœ… Server Dockerfile - Node.js production container
  • βœ… Docker Compose - Multi-container orchestration
  • βœ… Health Checks - Container health monitoring
  • βœ… Optimized Images - Alpine-based for small footprint

Monitoring & Observability

  • βœ… Health Endpoints - /health for monitoring
  • βœ… Structured Logging - Environment-aware logging
  • βœ… Error Tracking Ready - Sentry integration prepared
  • βœ… Performance Monitoring - Ready for analytics integration

🎭 The mbtq.dev Manifesto

Click the Manifesto button to view our community principles:

  • Empower Deaf, Queer, Disabled creators with world-class tools
  • AI must serve culture, not erase it
  • Design has radical inclusivity baked in
  • Our code is Openβ€”a community, not a product
  • If it doesn't make you smile, remix it until it does

πŸ”Œ Extensibility

This starter kit is designed to be extended with:

  • @mbtq.dev/deafauth - Sign language video authentication
  • @mbtq.dev/ai-gen - AI-powered accessible code generation
  • @mbtq.dev/video - Accessible video chat
  • GitHub HTML Import - Import and preview HTML from repositories
  • Figma Sync - Real-time design collaboration

πŸ› οΈ Development

Build for Production

cd client
npm run build

Preview Production Build

cd client
npm run preview

Environment Variables

Create a .env file in the client directory:

VITE_SOCKET_SERVER_URL=http://localhost:4000

🎨 Customization

Theme Colors

Edit tailwind.config.js to customize the color palette:

colors: {
  fuchsia: { /* your colors */ },
  blue: { /* your colors */ },
  pink: { /* your colors */ },
}

Adding Widgets

Create new components in client/src/components/ and import them in App.tsx:

import MyWidget from "./components/MyWidget";

// In App.tsx
<MyWidget socket={socket} />

🀝 Contributing

PRs welcome! We especially encourage contributions from:

  • Deaf and Hard of Hearing developers
  • LGBTQ+ community members
  • Accessibility experts
  • Anyone passionate about inclusive technology

Contribution Guidelines

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test accessibility (run A11y Check)
  5. Submit a pull request

πŸ“ License

Open source. See LICENSE for details.

πŸ€– Generative AI & Supabase Integration Guide

Setting Up Your Supabase Backend

  1. Create a Supabase Project

    • Visit supabase.com and create a free account
    • Create a new project and note your project URL and anon key
  2. Install Supabase Client

    npm install @supabase/supabase-js
    
  3. Initialize Supabase in Your App

    import { createClient } from '@supabase/supabase-js'
    

const supabaseUrl = import.meta.env.VITE_SUPABASE_URL const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY

export const supabase = createClient(supabaseUrl, supabaseAnonKey)


4. **Add Environment Variables**
   Create a `.env` file:
   ```env
   VITE_SUPABASE_URL=your-project-url
   VITE_SUPABASE_ANON_KEY=your-anon-key
   VITE_SOCKET_SERVER_URL=http://localhost:4000

Key Supabase Features

Authentication

// Sign up
const { data, error } = await supabase.auth.signUp({
  email: 'user@example.com',
  password: 'securepassword'
})

// Sign in
const { data, error } = await supabase.auth.signInWithPassword({
  email: 'user@example.com',
  password: 'securepassword'
})

// Get current user
const { data: { user } } = await supabase.auth.getUser()

Database Operations

// Insert data
const { data, error } = await supabase
  .from('users')
  .insert({ name: 'John', email: 'john@example.com' })

// Query data
const { data, error } = await supabase
  .from('users')
  .select('*')
  .eq('email', 'john@example.com')

// Update data
const { data, error } = await supabase
  .from('users')
  .update({ name: 'Jane' })
  .eq('id', userId)

// Delete data
const { data, error } = await supabase
  .from('users')
  .delete()
  .eq('id', userId)

Real-time Subscriptions

// Subscribe to changes
const channel = supabase
  .channel('public:posts')
  .on('postgres_changes', 
    { event: '*', schema: 'public', table: 'posts' },
    (payload) => {
      console.log('Change received!', payload)
    }
  )
  .subscribe()

// Unsubscribe when done
supabase.removeChannel(channel)

Storage

// Upload file
const { data, error } = await supabase.storage
  .from('avatars')
  .upload('public/avatar.png', file)

// Get public URL
const { data } = supabase.storage
  .from('avatars')
  .getPublicUrl('public/avatar.png')

Integrating Generative AI

For complete AI integration patterns with Deno Edge Functions and multiple LLM providers, see our comprehensive guide:

πŸ“– LLM + Deno + Supabase Architecture Guide

This guide covers:

  • Multi-model AI routing (GPT-4, Claude, Gemini)
  • Cost optimization strategies
  • Edge function deployment
  • Real-time AI streaming
  • Security and guardrails
  • Production-grade patterns

Finding and Using APIs

  1. API Discovery Resources

  2. Integration Pattern

    // Example: Weather API integration
    async function getWeather(city: string) {
     const response = await fetch(
       `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${API_KEY}`
     )
     return response.json()
    }
    
  3. Best Practices

    • Always store API keys in environment variables
    • Use server-side endpoints to protect keys
    • Implement rate limiting and caching
    • Handle errors gracefully
    • Read API documentation thoroughly

Building Full-Stack Apps with MBTQ.dev

  1. Frontend: Use our React templates or migrate to Next.js
  2. Backend: Supabase for database, auth, and storage
  3. APIs: Integrate third-party services as needed
  4. AI Features: Use Supabase Edge Functions with LLM APIs
  5. Deployment: Vercel/Netlify for frontend, Supabase handles backend

🎯 Migration to BUSINESS MAGICIAN

For business-focused features (idea validation, market research, business planning), visit the BUSINESS MAGICIAN platform powered by 360 Magicians AI:

  • βœ“ Idea Validation & Market Research
  • βœ“ Business Plan Generation
  • βœ“ Growth Strategy Planning
  • βœ“ Managed Services for Entrepreneurs
  • βœ“ Deaf Entrepreneur Support

These features are now handled by specialized AI agents on the BUSINESS MAGICIAN platform.

πŸ”— Links

πŸ’– Acknowledgments

Built with love by the mbtq.dev community.

Special thanks to all AI Agents who make this platform possible.


mbtq.dev Β© 2025. Community. Culture. Power.

Built With

Share this project:

Updates