A visual plugin-based platform to create and publish AI-powered micro applications
π Quick Start β’ π Documentation β’ π€ Contributing β’ π License
A visual plugin-based platform to create and publish AI-powered micro applications. Build, configure, and deploy AI workflows with an intuitive drag-and-drop interface.
Live Demo: Try Magicnode
What you can build:
- π Content Generators: Blog posts, social media content, product descriptions
- π Data Processors: PDF analyzers, text summarizers, file converters
- π€ AI Assistants: Chatbots, Q&A systems, automated workflows
- π Business Tools: Report generators, email templates, form builders
- Visual App Builder: Drag-and-drop interface for creating AI-powered applications
- Plugin System: Extensible plugin architecture for AI services
- File Processing: Support for PDF, images, and text files
- Real-time Preview: See your app in action before publishing
- Published Apps: Share your apps with unique URLs
- Gallery: Browse and discover community-created apps
Magicnode follows a modern, scalable architecture with clear separation of concerns:
server/
βββ config/ # Configuration management
βββ controllers/ # Business logic controllers
βββ middleware/ # Express middleware
βββ routes/ # API route definitions
βββ services/ # External service integrations
βββ utils/ # Utility functions
βββ validators/ # Data validation schemas
βββ index.ts # Server entry point
client/
βββ src/
β βββ components/ # Reusable UI components
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utilities and API client
β βββ pages/ # Page components
β βββ types/ # TypeScript type definitions
shared/
βββ schema.ts # Shared type definitions
- Node.js with Express.js
- TypeScript for type safety
- MongoDB with MongoDB Driver
- OpenAI API for AI services
- Multer for file uploads
- Zod for validation
- Drizzle ORM for database operations
- React 18 with TypeScript
- Vite for fast development
- Tailwind CSS for styling
- Radix UI for accessible components
- React Query for data fetching
- Wouter for routing
- Framer Motion for animations
- π Full Documentation - Complete setup and usage guide
- π Quick Start Guide - Get up and running in 5 minutes
- π§ Analytics Setup - Optional analytics configuration
- π³ Deployment Guide - Production deployment with Docker
- π€ Contributing Guide - How to contribute to the project
- π Privacy Policy - Data handling and privacy information
- Node.js 18+ and npm
- MongoDB (local or cloud)
- OpenAI API Key (for AI features)
-
Clone the repository
git clone https://github.com/magicnode-open/magicnode-core.git cd magicnode
-
Install dependencies
# Install root dependencies npm install # Install client dependencies cd client && npm install
-
Set up environment variables
cp .env.example .env
Configure the following variables:
# Database DATABASE_URL=your_mongodb_connection_string # OpenAI OPENAI_API_KEY=your_openai_api_key # Server PORT=8080 NODE_ENV=development # Session SESSION_SECRET=your_session_secret # Analytics (Optional) VITE_GA4_MEASUREMENT_ID=G-XXXXXXXXXX
-
Start the development server
# Start both client and server npm run dev # Or start them separately npm run dev:server # Server only npm run dev:client # Client only
npm run dev
- Start development servernpm run build
- Build for productionnpm run start
- Start production servernpm run db:push
- Push database schemanpm run db:generate
- Generate database migrationsnpm run lint
- Run ESLintnpm run type-check
- Run TypeScript type checking
npm run dev
- Start Vite dev servernpm run build
- Build client for productionnpm run preview
- Preview production build
magicnode/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # UI components
β β βββ hooks/ # Custom hooks
β β βββ lib/ # Utilities
β β βββ pages/ # Page components
β β βββ types/ # TypeScript types
β βββ package.json
βββ server/ # Express backend
β βββ config/ # Configuration
β βββ controllers/ # Business logic
β βββ middleware/ # Express middleware
β βββ routes/ # API routes
β βββ services/ # External services
β βββ utils/ # Utilities
β βββ validators/ # Validation schemas
β βββ index.ts # Server entry
βββ shared/ # Shared types
βββ uploads/ # File uploads (gitignored)
βββ package.json
- Create plugin component in
client/src/components/Plugins/
- Add plugin type to
client/src/types/app.ts
- Implement server-side logic in
server/controllers/appController.ts
- Update validation schemas in
server/validators/appValidators.ts
GET /api/apps
- Get all appsPOST /api/apps
- Create new appGET /api/apps/:id
- Get app by IDPUT /api/apps/:id
- Update appDELETE /api/apps/:id
- Delete appPOST /api/apps/:id/execute
- Execute appGET /api/published/:slug
- Get published app
The app uses MongoDB with the following collections:
microapp
- App configurations and metadataappexecution
- App execution historyuser
- User accounts (future feature)
Magicnode includes optional analytics tracking. See ANALYTICS_SETUP.md for detailed setup instructions.
Key Points:
- β Completely Optional - App works without analytics
- β Privacy-First - No data sent to original developers
- β Your Data - Analytics go to your own Google Analytics account
- β Configurable - Enable/disable specific tracking events
npm run build
npm start
- Set
NODE_ENV=production
- Configure production database URL
- Set secure session secret
- Configure CORS origins
- (Optional) Set up analytics tracking
We welcome contributions! Please see our Contributing Guide for details on how to get started.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Add tests if applicable
- Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please read our Code of Conduct before contributing.
Current Status: β Production Ready β’ Version: 1.0.0 β’ License: Sustainable Use
This project is licensed under the Sustainable Use License - see LICENSE file for details.
Use Case | Allowed | Notes |
---|---|---|
π Personal Use | β | Free for personal projects |
π Educational Use | β | Free for learning and teaching |
π’ Internal Business | β | Free for internal company use |
π° Commercial Services | β | Not allowed for paid services |
π¦ Commercial Distribution | β | Not allowed for commercial products |
For commercial licensing inquiries, please contact the maintainers.
This license ensures the software remains freely available for learning and personal projects while protecting against commercial exploitation.
- Plugin Marketplace - Community-contributed plugins
- Team Collaboration - Multi-user app development
- API Integrations - Connect to external services
- Mobile App - Native mobile applications
- Advanced Analytics - Detailed usage insights
- Performance Optimization - Faster app execution
- Enhanced Security - Additional security measures
- Documentation - Comprehensive guides and tutorials
Resource | Description |
---|---|
π Bug Reports | Create an issue |
π‘ Feature Requests | Create an issue |
π¬ Community | GitHub Discussions |
π§ Contact | Email support |
- Installation problems? Check the Quick Start Guide
- Deployment issues? See the Deployment Guide
- Analytics not working? Review Analytics Setup
- Need help contributing? Read the Contributing Guide
Made with β€οΈ by the Magicnode team
β Star this repo β’ π Report a bug β’ π‘ Request a feature