Construct high-fidelity interfaces with machine precision. Drag. Drop. Compile.
Features β’ Quick Start β’ Tech Stack β’ Documentation
Automator.UI is a modern, AI-powered website builder that empowers users to create stunning web interfaces through an intuitive drag-and-drop editor. The platform combines visual design tools with intelligent code generation to produce clean, semantic React + Tailwind CSS code.
- π¨ Visual Design Engine - Direct manipulation interface for instant layout generation
- β‘ Real-time Synchronization - Sub-millisecond state updates across all viewports
- π¦ Clean Code Output - Generate semantic, production-ready React + Tailwind code
- π Firebase Authentication - Secure user authentication and authorization
- πΎ MongoDB Storage - Persistent project storage with owner-based access control
- π Template System - Public templates for quick project initialization
- π₯ Export Functionality - Download complete projects as ZIP files
- Drag & Drop Editor - Intuitive visual interface for building layouts
- Component Library - Pre-built, customizable UI components
- Live Preview - See changes in real-time as you design
- Responsive Design - Build layouts that work on all screen sizes
- Code Export - Export clean React + Tailwind CSS code
- Template Gallery - Browse and clone public templates
- Project Management - Organize and manage multiple projects
- Public/Private Projects - Control project visibility
- Access Control - Owner-based permissions system
- Cloud Storage - Projects saved securely in MongoDB
- React 19 - Modern UI library
- Vite - Next-generation frontend tooling
- React Router - Client-side routing
- Tailwind CSS 4 - Utility-first CSS framework
- Framer Motion - Animation library
- DND Kit - Drag and drop functionality
- Lucide React - Beautiful icon library
- Google Generative AI - AI-powered features
- Firebase - Authentication
- Axios - HTTP client
- Node.js - JavaScript runtime
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Firebase Admin SDK - Authentication verification
- Archiver - ZIP file generation
- CORS - Cross-origin resource sharing
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (local or MongoDB Atlas)
- Firebase Project (for authentication)
-
Clone the repository
git clone https://github.com/Dravingupta/ui-designer.git cd ui-designer -
Install root dependencies
npm install
-
Set up the Backend
Navigate to the backend directory:
cd backend npm installCreate a
.envfile in thebackenddirectory with the following variables:# MongoDB Configuration MONGO_URI=your_mongodb_connection_string # Firebase Admin SDK Configuration FIREBASE_PROJECT_ID=your_firebase_project_id FIREBASE_CLIENT_EMAIL=your_firebase_client_email FIREBASE_PRIVATE_KEY="your_firebase_private_key" # Server Configuration PORT=5000 NODE_ENV=development
-
Set up the Frontend
Navigate to the client directory:
cd ../client npm installCreate a
.envfile in theclientdirectory with your Firebase configuration:VITE_FIREBASE_API_KEY=your_api_key VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id VITE_API_URL=http://localhost:5000
You can run the frontend and backend separately:
Backend:
cd backend
npm run dev # Development mode with hot reload
# or
npm start # Production modeFrontend:
cd client
npm run dev # Development serverThe application will be available at:
- Frontend: http://localhost:5173
- Backend: http://localhost:5000
ui-designer/
βββ client/ # Frontend React application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ context/ # React context providers
β β βββ pages/ # Page components
β β β βββ LandingPage.jsx
β β β βββ Login.jsx
β β β βββ Register.jsx
β β β βββ Dashboard.jsx
β β β βββ EditorPage.jsx
β β βββ utils/ # Utility functions
β β βββ firebase.js # Firebase configuration
β β βββ App.jsx # Main application component
β β βββ main.jsx # Application entry point
β βββ index.html
β βββ package.json
β βββ vite.config.js
β
βββ backend/ # Backend API server
β βββ src/
β β βββ config/ # Configuration files
β β βββ middleware/ # Express middleware
β β βββ models/ # Mongoose models
β β βββ routes/ # API routes
β β βββ services/ # Business logic
β β βββ utils/ # Utility functions
β β βββ app.js # Express app configuration
β β βββ index.js # Server entry point
β βββ package.json
β βββ README.md
β
βββ package.json # Root package.json
βββ .gitignore
βββ README.md
All protected endpoints require a Firebase ID token in the Authorization header:
Authorization: Bearer <firebase-id-token>
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/projects |
Create a new project | β |
GET |
/projects |
Get user's projects | β |
GET |
/projects/:id |
Get single project | Owner or Public |
PUT |
/projects/:id |
Update project | Owner only |
DELETE |
/projects/:id |
Delete project | Owner only |
PATCH |
/projects/:id/public |
Toggle public/private | Owner only |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET |
/templates |
Get all public projects | β |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/generate/:projectId |
Generate ZIP file | Owner or Public |
- Sign up or Log in to your account
- Navigate to the Dashboard
- Click on "Create New Project"
- Choose a template or start from scratch
- Open the project in the Visual Editor
- Drag components from the component library onto the canvas
- Customize properties using the inspector panel
- Preview your design in real-time
- Export code or save your project
- Download as a ZIP file for deployment
- Public Projects: Share templates with the community
- Private Projects: Keep your work private and secure
- Delete Projects: Remove unwanted projects from your dashboard
Frontend (client/):
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npm run preview # Preview production buildBackend (backend/):
npm start # Start production server
npm run dev # Start development server with hot reloadThis project uses ESLint for code linting. Run npm run lint to check for issues.
# Required
MONGO_URI= # MongoDB connection string
FIREBASE_PROJECT_ID= # Firebase project ID
FIREBASE_CLIENT_EMAIL= # Firebase service account email
FIREBASE_PRIVATE_KEY= # Firebase private key# Firebase Configuration
VITE_FIREBASE_API_KEY=
VITE_FIREBASE_AUTH_DOMAIN=
VITE_FIREBASE_PROJECT_ID=
VITE_FIREBASE_STORAGE_BUCKET=
VITE_FIREBASE_MESSAGING_SENDER_ID=
VITE_FIREBASE_APP_ID=
# API Configuration
VITE_API_URL= # Backend API URL (default: http://localhost:5000)The frontend is configured for Vercel deployment with vercel.json:
cd client
vercel --prodDeploy the backend to any Node.js hosting platform:
- Heroku
- Railway
- Render
- AWS EC2
- DigitalOcean
Ensure environment variables are properly configured in your hosting platform.
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the ISC License.
Found a bug or have a feature request? Please open an issue on GitHub Issues.
For questions or support, please visit the GitHub repository.
Built with β€οΈ by the Automator.UI Team
β Star this repo if you find it useful! β