- Update project name from Dyad to MoreMinimore throughout README - Add comprehensive documentation including quick start guide, build instructions, and development commands - Include custom features documentation (remove-limit, smart context) - Add prerequisites, installation options, and update procedures - Remove external links and branding references to original project - Add build scripts documentation with production and development options
13 KiB
MoreMinimore
MoreMinimore is a local, open-source AI app builder. It's fast, private, and fully under your control — like Lovable, v0, or Bolt, but running right on your machine.
🚀 Features
- ⚡️ Local: Fast, private and no lock-in.
- 🛠 Bring your own keys: Use your own AI API keys — no vendor lock-in.
- 🖥️ Cross-platform: Easy to run on Mac or Windows.
- ✨ Enhanced: Smart context and unlimited usage with custom features.
- 🎯 No limitations: All Pro features available to everyone.
- 🔒 Privacy-focused: No external API calls to commercial services.
🧰 Prerequisites
- Node.js >= 20
- npm (comes with Node.js)
- Git
You can verify your versions:
node -v
npm -v
🚀 Quick Start
Option 1: Download and Run (Easiest)
- Download the latest release from GitHub Releases
- Install the application for your platform
- Launch MoreMinimore and start building!
Option 2: Build from Source
# Clone the repository
git clone https://github.com/kunthawat/moreminimore-vibe.git
cd moreminimore-vibe
# Install dependencies
npm install
# Apply custom features and debranding
chmod +x scripts/update-and-debrand.sh
./scripts/update-and-debrand.sh
# Start the application
npm start
📋 Essential Commands
This section contains all the commands you'll frequently need. Copy and paste these directly.
🏗️ Development Commands
# Start development server
npm start
# Check TypeScript compilation
npm run ts
# Run tests
npm test
# Run linting
npm run lint
# Format code
npm run prettier
# Clean build artifacts
npm run clean
🔨 Build Commands
# Development build (no code signing)
./scripts/build-moreminimore-app.sh
# Production build (requires code signing setup)
./scripts/build-moreminimore-app.sh --production
# Clean build artifacts only
./scripts/build-moreminimore-app.sh --clean-only
# Verbose build (for debugging)
./scripts/build-moreminimore-app.sh --verbose
# Fast build (skip dependency install)
./scripts/build-moreminimore-app.sh --skip-deps
# Create distributables
npm run make
🔄 Update Commands
# Apply custom features and debranding
./scripts/update-and-debrand.sh
# Integrate custom features after upstream update
./scripts/integrate-custom-features.sh integrate
# Validate custom features integration
./scripts/integrate-custom-features.sh validate
# Restore from backup (if needed)
./scripts/integrate-custom-features.sh restore backup-YYYYMMDD-HHMMSS
🧪 Testing Commands
# Run unit tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with UI
npm run test:ui
# Run end-to-end tests
npm run e2e
# Run E2E tests with sharding
npm run e2e:shard
🏗️ Complete Setup Guide
Step 1: Clone and Install
# Clone the repository
git clone https://github.com/kunthawat/moreminimore-vibe.git
cd moreminimore-vibe
# Install dependencies
npm install
# Make scripts executable
chmod +x scripts/*.sh
Step 2: Apply Custom Features
# Run the debranding and custom features script
./scripts/update-and-debrand.sh
This script will:
- ✅ Create automatic backup
- ✅ Apply remove-limit feature
- ✅ Enable smart context for all users
- ✅ Remove Dyad branding and dependencies
- ✅ Update all branding to MoreMinimore
- ✅ Install dependencies and test compilation
Step 3: Verify Installation
# Check TypeScript compilation
npm run ts
# Start the application
npm start
Step 4: Test Build (Optional)
# Test build process
./scripts/build-moreminimore-app.sh
📦 Building for Distribution
Development Build (Recommended for Testing)
./scripts/build-moreminimore-app.sh
- Output:
out/make/zip/darwin/arm64/moreminimore-darwin-arm64-*.zip - Size: ~180MB
- Code Signing: Disabled (for development/testing)
Production Build (Requires Code Signing)
# Set up Apple Developer credentials first
export APPLE_TEAM_ID="your-apple-developer-team-id"
export APPLE_ID="your-apple-id@example.com"
export APPLE_PASSWORD="your-app-specific-password"
export SM_CODE_SIGNING_CERT_SHA1_HASH="your-certificate-sha1-hash"
# Build production version
./scripts/build-moreminimore-app.sh --production
Build Options
# Clean build artifacts only
./scripts/build-moreminimore-app.sh --clean-only
# Verbose output for debugging
./scripts/build-moreminimore-app.sh --verbose
# Skip dependency installation
./scripts/build-moreminimore-app.sh --skip-deps
# Show help
./scripts/build-moreminimore-app.sh --help
🔄 Updating from Upstream
When you want to update MoreMinimore with new features from the original Dyad repository:
Step 1: Fetch Latest Changes
# Add upstream remote (if not already added)
git remote add upstream https://github.com/dyad-sh/dyad.git
# Fetch latest changes
git fetch upstream
# Merge upstream changes
git merge upstream/main
Step 2: Re-apply Custom Features
# Run the update script to re-apply all customizations
./scripts/update-and-debrand.sh
Step 3: Integrate Custom Features
# Integrate custom features with the new codebase
./scripts/integrate-custom-features.sh integrate
# Validate the integration
./scripts/integrate-custom-features.sh validate
Step 4: Test and Commit
# Test the application
npm start
# Test build process
./scripts/build-moreminimore-app.sh
# Commit changes if everything works
git add .
git commit -m "Update upstream and re-apply custom features"
🛠️ Custom Features
Remove-Limit Feature
- Unlimited usage: No message limits or restrictions
- Full feature access: All Pro features available to everyone
- No upgrade prompts: Clean interface without commercial restrictions
Smart Context for All Users
- Advanced context management: Intelligent handling of long conversations
- Rolling summaries: Automatic summarization when context exceeds thresholds
- Context caching: Efficient caching with TTL for better performance
- Snippet importance scoring: Intelligent ranking of context snippets
Enhanced UI/UX
- Clean interface: No Pro banners or upgrade buttons
- Improved branding: Complete MoreMinimore branding throughout
- Better organization: Simplified controls and settings
- Context Settings: Improved UI for context management
🔧 Configuration
Environment Variables (Optional)
# Set custom gateway URL
MOREMINIMORE_GATEWAY_URL=http://localhost:8080/v1 npm start
# Development mode with debugging
DEBUG=* npm start
# Production mode
NODE_ENV=production npm start
Custom Feature Flags
Edit src/custom/index.ts to enable/disable features:
export const REMOVE_LIMIT_ENABLED = true;
export const SMART_CONTEXT_ENABLED = true;
export const ANNOTATOR_ENABLED = true;
🐛 Troubleshooting
Common Issues and Solutions
TypeScript Compilation Errors
# Check TypeScript compilation
npm run ts
# If errors occur, check specific files
npm run ts:main # Main process
npm run ts:workers # Worker processes
Application Won't Start
# Check dependencies
npm install
# Clean and rebuild
npm run clean
npm install
npm start
# Check logs for specific errors
npm start 2>&1 | tee startup-errors.log
Build Issues
# Clean build artifacts
./scripts/build-moreminimore-app.sh --clean-only
# Verbose build for debugging
./scripts/build-moreminimore-app.sh --verbose
# Check Node.js and npm versions
node -v
npm -v
Script Permission Issues
# Make scripts executable
chmod +x scripts/*.sh
# Check script permissions
ls -la scripts/
Integration Issues After Update
# Validate current integration
./scripts/integrate-custom-features.sh validate
# Restore from backup if needed
ls backups/ # Find latest backup
./scripts/integrate-custom-features.sh restore backup-YYYYMMDD-HHMMSS
# Re-run integration
./scripts/integrate-custom-features.sh integrate
Recovery Procedures
Restore from Backup
# Find available backups
ls -la backups/
# Restore from specific backup
./scripts/integrate-custom-features.sh restore backup-20231218-154512
# Verify restoration
./scripts/integrate-custom-features.sh validate
Reset to Clean State
# Clean all build artifacts
npm run clean
rm -rf node_modules package-lock.json
# Reinstall dependencies
npm install
# Re-apply custom features
./scripts/update-and-debrand.sh
📁 Project Structure
Important Files and Directories
moreminimore-vibe/
├── src/ # Source code
│ ├── components/ # React components
│ ├── ipc/ # IPC handlers and utilities
│ ├── pages/ # Application pages
│ └── custom/ # Custom feature flags
├── scripts/ # Build and utility scripts
│ ├── update-and-debrand.sh # Main debranding script
│ ├── build-moreminimore-app.sh # Build automation
│ └── integrate-custom-features.sh # Feature integration
├── assets/ # Static assets (logos, icons)
├── out/ # Build output directory
└── backups/ # Automatic backups (created as needed)
Key Scripts
scripts/update-and-debrand.sh- Applies all custom features and debrandingscripts/build-moreminimore-app.sh- Comprehensive build automationscripts/integrate-custom-features.sh- Manages custom feature integration
Configuration Files
package.json- Project configuration and dependenciessrc/custom/index.ts- Custom feature flagsforge.config.ts- Electron Forge configuration
🎯 Development Workflow
Daily Development
# 1. Start development server
npm start
# 2. Make changes to code
# 3. Check TypeScript compilation
npm run ts
# 4. Run tests
npm test
# 5. Format code
npm run prettier
# 6. Test build
./scripts/build-moreminimore-app.sh
Before Committing
# Run all checks
npm run presubmit
# Or run individually
npm run prettier:check
npm run lint
npm run ts
npm test
Release Preparation
# 1. Update version in package.json
# 2. Test thoroughly
npm test
./scripts/build-moreminimore-app.sh
# 3. Create production build
./scripts/build-moreminimore-app.sh --production
# 4. Verify release assets
npm run verify-release
📚 Advanced Topics
Code Signing Setup
For production builds, set up Apple Developer credentials:
# Set environment variables
export APPLE_TEAM_ID="your-apple-developer-team-id"
export APPLE_ID="your-apple-id@example.com"
export APPLE_PASSWORD="your-app-specific-password"
export SM_CODE_SIGNING_CERT_SHA1_HASH="your-certificate-sha1-hash"
# Find your Team ID
security find-identity -v -p codesigning
# Generate app-specific password
# Visit: https://appleid.apple.com → Security → App-Specific Passwords
Custom Feature Development
- Add feature flag to
src/custom/index.ts - Implement feature in appropriate files
- Update scripts to apply changes automatically
- Test thoroughly with
npm testandnpm run ts
Database Operations
# Generate database migrations
npm run db:generate
# Push database changes
npm run db:push
# Open database studio
npm run db:studio
🤝 Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Run tests:
npm test - Check formatting:
npm run prettier:check - Commit changes:
git commit -m "Add feature description" - Push to fork:
git push origin feature-name - Create Pull Request
Contribution Guidelines
- Ensure no Dyad dependencies are added
- Maintain custom features and branding
- Update documentation as needed
- Test thoroughly before submitting
- Follow existing code style and patterns
📄 License
MIT License — see LICENSE.
🔗 Related Resources
- GitHub Repository: https://github.com/kunthawat/moreminimore-vibe
- Issues and Bug Reports: https://github.com/kunthawat/moreminimore-vibe/issues
- Community: Join our growing community of AI app builders
🆘 Support
If you encounter issues:
- Check this README for troubleshooting steps
- Review the logs with
--verboseflag on scripts - Search existing issues on GitHub
- Create a new issue with detailed information
- Test with clean environment if needed
Getting Help
For specific issues:
- Build problems: Run
./scripts/build-moreminimore-app.sh --verbose - Integration issues: Run
./scripts/integrate-custom-features.sh validate - Application crashes: Check console logs and
startup-errors.log - TypeScript errors: Run
npm run tsfor specific error details
MoreMinimore is a fork of Dyad with enhanced features, removed limitations, and complete independence from commercial services. Enjoy building AI applications with full control and no restrictions!