Skip to content

Latest commit

 

History

2,371 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues License


Logo

Classic Mini DIY

The most comprehensive digital archive and technical resource for Classic Mini enthusiasts worldwide (1959-2000). Free, open source, and designed to be permanently accessible.

Explore the website »

Report Bug · Request Feature · Support Server Costs

Table of Contents
  1. About The Project
  2. Getting Started
  3. Features Overview
  4. Technical Toolbox
  5. Archive System
  6. User Dashboard & Profiles
  7. Contribution System
  8. AI-Powered Features
  9. Admin & Moderation
  10. API Documentation
  11. Internationalization
  12. Contributing
  13. Deployment
  14. Support
  15. License

About The Project

Product Name Screen Shot

Classic Mini DIY is a comprehensive web application serving as both a toolkit and permanent archive for Classic Mini enthusiasts. The project combines technical calculators, historical documentation, user profiles, a community contribution system, and AI-powered assistance to create the most complete digital resource for Classic Mini owners worldwide.

Current Version: 8.0.0

The platform is designed to be both a real-time working tool for mechanics and enthusiasts, and a permanent digital archive ensuring Classic Mini knowledge is preserved for future generations. All content is backed up across multiple cloud locations and designed to remain accessible indefinitely.

Built With

Nuxt Vue TypeScript TailwindCSS Supabase AWS Cloudflare

Core Technologies:

  • Nuxt 4.1.2 - Vue.js framework with server-side rendering
  • Vue 3 - Composition API with <script setup> syntax
  • TypeScript - Strict type checking throughout
  • TailwindCSS 4.1.13 - Utility-first CSS with @tailwindcss/vite
  • Nuxt UI - Component library for forms, modals, accordions, and more
  • Font Awesome 6 - Icon library (loaded via CDN kit)
  • Supabase - Authentication, database, and file storage
  • AWS Services - S3 storage, DynamoDB (legacy data)
  • LangGraph SDK - AI-powered conversational assistance
  • Highcharts - Interactive data visualization
  • Fuse.js - Advanced fuzzy search
  • PostHog - Product analytics and event tracking
  • Mapbox - Location autocomplete for user profiles

Infrastructure:

  • Cloudflare Workers - Production hosting (Vercel retired)
  • Supabase - PostgreSQL database, Auth, Edge Functions, Storage
  • AWS S3 - Intelligent tiering storage with versioning for archive assets
  • PostHog - Analytics (replaced Google Analytics and Vercel Analytics)
  • Bun - Package manager and script runner

(back to top)

Key Features

  • User Dashboard - Centralized hub for submissions, account settings, and activity
  • Profile System - Avatar uploads, social links, location, privacy controls shared across the CMDIY ecosystem
  • 8 Interactive Technical Calculators - Compression ratio, gearbox, SU carburetors, and more
  • Comprehensive Digital Archive - Workshop manuals, wiring diagrams, historical documents (powered by Supabase)
  • Community Contributions - Submit wheels, colors, registry entries, and documents with suggest-edit modals on every detail page
  • AI-Powered Assistant - LangGraph-based conversational AI
  • 10-Language Support - Full internationalization with browser detection
  • Progressive Web App - Offline functionality and mobile-optimized experience
  • Admin Moderation - Unified queue for reviewing all submission types with user management
  • ECU Maps Store - Multi-platform tuning maps with GitHub integration
  • Advanced Search - Fuse.js powered fuzzy search across all content

CMDIY Ecosystem

Classic Mini DIY is part of a broader ecosystem of applications sharing a single Supabase backend:

Property Description URL
Classic Mini DIY (this repo) Knowledgebase, archive, community site, and the marketplace at /exchange classicminidiy.com
Classic Mini Toolbox iOS and Android mobile apps App Store / Google Play

The Mini Exchange is retired as a standalone property. The marketplace was consolidated into this repo and went live at classicminidiy.com/exchange on 2026-07-13. theminiexchange.com now 301s here.

All properties share authentication via Supabase with custom domain auth.classicminidiy.com. Users sign in once and their profile, avatar, and preferences carry across all platforms. Sustaining Members ($1.99/mo via the App Store, Google Play, or classicminidiy.com) unlock a unified set of benefits across all properties.

(back to top)

Getting Started

Prerequisites

Installation

  1. Clone the repository

    git clone https://github.com/ClassicMiniDIY/classicminidiy.git
    cd classicminidiy
  2. Install dependencies

    bun install
  3. Start development server

    bun run dev
  4. Open your browser Navigate to http://localhost:3000 to see the application

Environment Setup

Create a .env file in the root directory with the following variables:

# Supabase
SUPABASE_URL=your_supabase_project_url
SUPABASE_KEY=your_supabase_anon_key

# AWS Credentials (for legacy data and S3 storage)
dynamo_id=your_dynamodb_access_key
dynamo_key=your_dynamodb_secret_key
s3_id=your_s3_access_key
s3_key=your_s3_secret_key

# External APIs
GITHUB_API_KEY=your_github_api_key
YOUTUBE_API_KEY=your_youtube_api_key

# AI Services
NUXT_LANGGRAPH_API_URL=your_langgraph_api_url
NUXT_LANGSMITH_API_KEY=your_langsmith_api_key

# Analytics
POSTHOG_PUBLIC_KEY=your_posthog_key
POSTHOG_HOST=https://us.i.posthog.com

# Mapbox (profile location autocomplete)
NUXT_PUBLIC_MAPBOX_TOKEN=your_mapbox_token

# Public URLs
NUXT_PUBLIC_SITE_URL=https://classicminidiy.com
s3Base=https://classicminidiy.s3.us-east-1.amazonaws.com

Available Scripts

bun run dev          # Start development server
bun run build        # Build for production
bun run start        # Preview production build
bun run format       # Format with Prettier — WHOLE REPO, see the note below
bun run test         # Run unit tests with Vitest

(back to top)

Features Overview

Technical Toolbox

The technical toolbox provides interactive calculators and reference tools essential for Classic Mini maintenance and modification:

Calculators & Tools

  • Compression Ratio Calculator (/technical/compression)

    • Engine compression calculations with piston, crankshaft, head gasket configurations
    • Real-time calculations with visual feedback
    • Support for custom measurements and part specifications
  • Gearbox Calculator (/technical/gearing)

    • Gear ratio calculations and speed computations
    • Multiple gearbox configurations
    • RPM and speed analysis tools
  • SU Carb Needle Configurator (/technical/needles)

    • Interactive needle comparison with Highcharts visualization
    • Comprehensive needle database
    • Performance curve analysis
  • Chassis Number Decoder (/technical/chassis-decoder)

    • Historical chassis number database and identification
    • Year and model identification
    • Production date estimation
  • Engine Number Decoder (/technical/engine-decoder)

    • Engine code interpretation and specifications
    • Performance data and compatibility information

Reference Materials

  • Common Clearances Reference (/technical/clearance) - Comprehensive clearance specifications by system
  • Parts Equivalency Database (/technical/parts) - Cross-reference part numbers between brands
  • Torque Specifications Chart (/technical/torque) - Complete torque specification database

Archive System

The archive system preserves and organizes historical Classic Mini documentation. In v8.0.0, the entire archive was migrated from DynamoDB/S3/@nuxt/content to Supabase with unified document pages, collection support, filters, search, and sort.

Historical Documentation

  • Workshop Manuals (/archive/manuals) - Complete digitized workshop manuals with full-text search
  • Electrical Wiring Diagrams (/archive/electrical) - Positive and negative ground systems by year and model
  • Historical Advertisements (/archive/adverts) - Period advertising materials and brochures
  • Vendor Catalogues (/archive/catalogues) - Historical parts catalogs and documentation
  • Tuning & Modifications (/archive/tuning) - Performance modification guides and specifications

Unified Document System

  • Document Browser (/archive/documents) - Unified listing of all archive documents with filters, search, and sort
  • Collection Pages (/archive/documents/collection/[slug]) - Grouped document collections
  • Document Detail Pages (/archive/documents/[slug]) - Rich metadata, download links, and suggest-edit capability
  • 301 Redirects - All legacy document URLs redirect to new unified paths

User-Generated Content

  • Registry System (/archive/registry) - User-submitted Classic Mini registrations with admin approval
  • Wheel Fitment Library (/archive/wheels) - Comprehensive wheel database with user photos
  • Color Database (/archive/colors) - Historical paint colors with hex values and user contributions
  • Engine Specifications (/archive/engines) - Complete engine database with performance specs
  • Vehicle Weights Reference (/archive/weights) - Weight specifications by model and year

User Dashboard & Profiles

New in v8.0.0 — a centralized user experience:

Dashboard (/dashboard)

  • Submissions Management - View, filter, and expand all your submissions (wheels, colors, registry, documents) with detailed status tracking
  • Submission Details - Click any submission to expand and see full details inline
  • Activity Summary - At-a-glance counts of total submissions and their statuses
  • Quick Actions - Links to contribute, edit profile, and manage account

Profile System (/profile)

  • Public Profile - View your public-facing profile with avatar, display name, location, and activity summary
  • Profile Editing (/profile/edit) - Full profile management:
    • Avatar upload with crop and preview
    • Display name
    • Mapbox-powered location autocomplete (city, state, country format)
    • Bio / about section
    • Social links (Instagram, Facebook, YouTube, website)
    • Privacy toggles (public profile, show vehicles)
  • Shared Across Ecosystem - Profile data is shared with the /exchange marketplace and the mobile apps via Supabase

Public User Pages (/users/[id])

  • Contributor profile pages showing submission activity and social links

Onboarding

  • Welcome Page (/welcome) - First-time users are redirected here after auth callback for profile setup
  • Unified Account Messaging - Login page explains the shared CMDIY ecosystem account

Contribution System

New in v8.0.0 — a unified contribution hub replacing scattered submission pages:

Contribute Hub (/contribute)

  • Type Selection Grid - Choose from wheel fitment, color, registry, or document contributions
  • Self-Contained Forms - Each contribution type has its own page with file upload support
  • Suggest-Edit Modals - Every archive detail page (documents, colors, wheels) has an inline suggest-edit button
  • Contribute CTAs - Archive hub and section listing pages prominently feature contribution calls-to-action

Contribution Pages

  • /contribute/wheel - Wheel fitment data with photo uploads
  • /contribute/color - Paint color submissions with hex values
  • /contribute/registry - Classic Mini registration with photos
  • /contribute/document - Document submissions with file uploads and collection assignment

AI-Powered Features

CMDIY Assistant (/chat)

  • Conversational AI - LangGraph-powered assistant with Classic Mini expertise
  • Model Context Protocol (MCP) Server - A single JSON-RPC endpoint at /mcp exposing the calculators (compression, gearbox, chassis decoder) to AI clients
  • Streaming Responses - Real-time AI chat with persistent conversation threads
  • Context Awareness - Understanding of Classic Mini technical specifications and archive content

Admin & Moderation

Unified Admin (/admin)

Every admin page shares one shell (AdminShell) with a grouped sidebar, so navigation is identical wherever you are.

  • Dashboard (/admin) - Triage board: what is waiting for review, and how much of it
  • Submission Queue (/admin/queue) - The single queue for every submission type (documents, registry, colours, wheels, edit suggestions) with approve / reject / request-changes. The old per-type review pages (/admin/{registry,wheels,colors}/review) and /admin/inbox all read this same queue and now redirect to it
  • Marketplace (/admin/exchange) - Listings, moderation, messages, finds, wanted posts, social posting, announcements, newsletter
  • 3D Models (/admin/models) - Model library queue, reports, sellers, sales
  • User Management (/admin/users) - User administration with trust levels
  • Discord Roster (/admin/discord) - Members-only Discord reconciled against paid membership
  • Chat Threads (/admin/threads) - Reviewing AI chat threads

E-commerce Integration

ECU Maps Store (/maps)

  • Multi-ECU Support - Haltech, Speeduino, MegaSquirt, and more
  • GitHub Integration - Real-time repository updates and release management
  • Feature Matrix - Ignition maps, fuel maps, VE tables, target AFR configurations

Homepage

  • Promotional Banners - HeroPromo component with auto-rotating promotional carousel
  • Recent Videos - YouTube channel integration
  • Community Stats - Live statistics from YouTube and GitHub
  • Mobile App Promotion - Native app download CTAs

(back to top)

API Documentation

The Classic Mini DIY platform exposes 50+ REST API endpoints:

Technical Tools APIs

  • GET /api/decoders/chassis - Chassis number decoding by year ranges
  • GET /api/decoders/engine - Engine code interpretation and identification

Database APIs

  • GET /api/wheels/ - Wheel fitment database with image handling
  • GET /api/registry/ - User registration system with approval workflow
  • GET /api/colors/ - Paint color database with user contributions
  • GET /api/engines/ - Engine specifications and performance data
  • GET /api/weights/ - Vehicle weight specifications

AI & Chat APIs

  • POST /api/langgraph/ - AI chat integration with streaming responses
  • POST /mcp - Model Context Protocol server (JSON-RPC over Streamable HTTP, Bearer auth). See server/mcp/README.md

Administrative APIs

  • GET /api/admin/queue/ - Unified submission queue (list, count, approve, reject, request-changes)
  • PUT /api/admin/listings/:id - Correct a listing's content in place, without sending it back through moderation
  • PUT /api/admin/listings/:id/{status,tier} - Listing moderation and premium tier
  • GET /api/admin/users/ - User management and trust levels
  • POST /api/admin/auth - Authentication and session management

Content & Media APIs

  • GET /api/github/ - Repository statistics, commits, and release data
  • GET /api/youtube/ - Channel statistics and video integration
  • GET /api/maps/ - ECU maps store with GitHub integration

Mobile App APIs

  • GET /api/app-config.json - Mobile app backend rollout configuration

External Integrations

  • Supabase - Auth, database, storage, and Edge Functions
  • GitHub API - Repository statistics, commits, releases
  • YouTube API - Channel statistics, video feeds
  • AWS Services - S3 storage, DynamoDB (legacy)
  • Mapbox - Geocoding for location autocomplete
  • PostHog - Product analytics

(back to top)

Internationalization

Classic Mini DIY supports 10 languages with comprehensive internationalization via @nuxtjs/i18n:

Supported Languages

Language Code Status
English en Primary / Reference
German de Most comprehensive
Spanish es Complete
French fr Complete
Italian it Complete
Portuguese pt Complete
Russian ru Complete
Japanese ja Complete
Chinese zh Complete
Korean ko Complete

Features

  • Browser Detection - Automatic language detection on first visit
  • Persistent Preferences - Cookie-based language memory
  • Dynamic Switching - Real-time language changes via the language switcher component
  • SEO Optimization - Language-specific meta tags, hreflang attributes, and localized URLs
  • Component-Level i18n - Each component/page uses <i18n> blocks for scoped translations

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

How to Contribute

  1. Fork the Repository

    git clone https://github.com/ClassicMiniDIY/classicminidiy.git
  2. Create a Feature Branch

    git checkout -b feature/AmazingFeature
  3. Make Your Changes

    • Follow the existing code style and conventions
    • Use Vue 3 Composition API with <script setup> syntax
    • Use Nuxt UI components for UI elements
    • Use Font Awesome 6 icons only (no Heroicons or Lucide)
    • Add translations for new text content across all 10 locales
    • Add tests for new functionality
  4. Test Your Changes

    bun run build
    bun run test

    Format only the files you touched — do not run bun run format on a branch. It rewrites the entire repo, and because contributors resolve slightly different Prettier versions, that reformats hundreds of files you never edited and buries your actual change in the diff:

    bunx prettier --write path/to/the/files/you/changed
  5. Commit Your Changes

    git commit -m 'feat: add some amazing feature'
  6. Push to Your Branch

    git push origin feature/AmazingFeature
  7. Open a Pull Request into main

Contribution Guidelines

  • Focus on Classic Mini Content - Ensure contributions are relevant to Classic Mini enthusiasts
  • Document Changes - Update relevant documentation and comments
  • Test Thoroughly - Verify functionality across different devices and browsers
  • Follow Design Patterns - Use Nuxt UI components, TailwindCSS, and existing patterns
  • Consider Internationalization - Add translation keys for new text content in all 10 locales
  • Accessibility - Follow WCAG 2.2 AA standards

Content Contributions

You don't need to write code to contribute! Visit classicminidiy.com/contribute to submit:

  • Wheel fitment data and photos
  • Paint color information
  • Classic Mini registry entries
  • Workshop manuals and historical documents

Top Contributors

(back to top)

Deployment

Production Deployment

The application is deployed to Cloudflare Workers by .github/workflows/deploy-cloudflare.yml on every push to main. CI owns the deploy — a local wrangler deploy is reverted by the next merge. Vercel is retired and vercel.json has been removed.

To build and preview locally:

# Build the application
bun run build

# Preview the production build locally
bun run start

Environment Requirements

  • Node.js v24+
  • Bun package manager
  • Install Command: bun install --frozen-lockfile
  • Build Command: bun run build
  • Output Directory: .nuxt/dist
  • Environment Variables: See Environment Setup

Performance Optimizations

  • Server-Side Rendering - Pre-rendered pages for optimal SEO and performance
  • Code Splitting - Optimized bundle sizes with manual chunks
  • Image Optimization - WebP and AVIF formats with responsive sizing
  • PWA Caching - Service worker with intelligent caching strategies
  • Edge Functions - Global distribution for API routes
  • CDN - S3 static assets with intelligent tiering
  • Console Stripping - drop_console: true in production builds

(back to top)

Support

Community Support

Financial Support

Help keep the servers running and the project growing:

Your support helps cover:

  • Server hosting and Supabase costs
  • Database and storage fees
  • CDN and bandwidth costs
  • Development tools and services

Related Projects

Credits & Acknowledgments

Technical Information Sources

  • Seven Mini Parts - SU needle charts and technical specifications
  • MintyLamb - Original needle configurator inspiration
  • MiniColours.co.uk - Color reference database
  • miniweights.co.uk - Vehicle weight specifications (archived)
  • mk1-performance.com - Historical archive content (archived)

Community Contributions

  • Classic Mini Forums - Technical knowledge and specifications
  • User Submissions - Registry entries, wheel photos, color contributions, and documents
  • Community Feedback - Bug reports, feature requests, and improvements

Open Source Libraries

License

Distributed under the GNU General Public License v3.0.

This ensures that:

  • The project remains free and open source
  • Modifications must also be open source
  • Commercial use is permitted
  • The project can be freely distributed

See LICENSE file for more information.


Classic Mini DIY - Preserving Classic Mini knowledge for future generations

Made with love by the Classic Mini community

Back to top

About

Classic Mini DIY is the best place to find all the reference material, how-to videos, and much much more for your Classic Mini

Topics

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages