DropUI is a modular full-stack visual app builder that enables teams to design, manage, and generate React-based applications through a drag-and-drop builder, an admin registry dashboard, a shared backend API, and a developer CLI.
DropUI is designed for production-ready development workflows with separate apps for:
- Client: Visual builder and page editor
- Admin: Registry, component management, and administration
- Server: REST API, authentication, project storage, and code generation
- CLI: Developer tools for authentication and pulling generated projects
- Templates: Scaffolding assets for frontend and backend generation
This repository is intended as a complete end-to-end platform for building and exporting React applications from a low-code/no-code interface.
DragUI/
βββ Client/ # Builder frontend for end users
βββ admin/ # Admin dashboard for registry and component management
βββ server/ # Backend API, auth, storage, and generation services
βββ DragUi-cli/ # CLI tool for authentication and project pull operations
βββ templates/ # Frontend/backend scaffolding templates
βββ ADMIN_SETUP.md # Admin onboarding and setup notes
βββ PROJECT_BLUEPRINT.md # Architecture and design documentation
βββ README.md # This file
- Visual drag-and-drop UI builder
- Component registry and reusable component authoring
- Authentication for users and admin access
- Persistent project storage and versioned components
- CLI support for login, pull, and developer workflows
- Template-driven app generation for frontend and backend
- Extensible architecture for production deployments
Purpose: End-user builder application.
Capabilities:
- Sign in and manage sessions
- Build UI using drag-and-drop components
- Configure component properties and layout
- Preview generated UI in real time
- Save projects and component tree data
Tech stack:
- React 19
- Vite
- Tailwind CSS 4
- React Router
- Zustand
- Axios
- DnD Kit
Purpose: Registry and admin management.
Capabilities:
- Admin login / protected routes
- Component and registry management
- Create and manage reusable component definitions
- Monitor project and user activity
Tech stack:
- React 18
- Vite
- Axios
Purpose: Backend API and generation engine.
Capabilities:
- Authentication and authorization
- Project CRUD endpoints
- Component registry API
- Code generation and template orchestration
- File upload handling and asset storage
Tech stack:
- Node.js
- Express 5
- MongoDB / Mongoose
- JWT
- Passport.js
- express-session
- Multer
Purpose: Developer tooling and project synchronization.
Capabilities:
dropui logindropui pull <projectId>dropui logoutdropui whoami
Implementation:
- Node.js
- Local callback server
- Browser-based OAuth/auth flow
- Local config token storage
Purpose: Static scaffolding assets for generated applications.
Contents:
- Frontend templates
- Backend templates
- Project generation resources
- Node.js 18+ installed
- npm 10+ installed
- MongoDB instance available locally or remotely
- Git for source control and CLI workflow
git clone <repository-url>
cd DragUIcd server
npm install
cd ../Client
npm install
cd ../admin
npm install
cd ../DragUi-cli
npm installCreate .env files for each application as needed.
Recommended locations:
server/.envClient/.envadmin/.env
The repo does not include committed secret values. Add your own API URLs, MongoDB connection strings, JWT secrets, and OAuth keys.
cd server
npm run devcd Client
npm run devcd admin
npm run devcd DragUi-cli
npm link
dropui login
dropui whoami
dropui pull <projectId>cd Client
npm run buildcd admin
npm run buildcd server
npm install --production
node server.jsThe CLI is designed to be installed globally or linked locally using npm link.
- Host the server on a managed Node.js platform or container service
- Use MongoDB Atlas or a managed MongoDB cluster
- Deploy
Clientandadminas static Vite builds behind a CDN - Secure API endpoints with HTTPS and JWT validation
- Configure environment variables securely in production
- Enable CORS only for trusted frontend origins
src/App.jsxβ main builder entrysrc/components/β builder UI componentssrc/api/β API integrationsrc/pages/β route pagessrc/utils/β helper functions and registry
src/App.jsxβ admin app entrysrc/components/β admin UI screens and forms
server.jsβ Express entrypointroutes/β API route definitionscontrollers/β request handling logicmodels/β MongoDB schemasservices/β business logic and generation utilitiesmiddleware/β auth, upload, and error handling
bin/index.jsβ CLI bootstrapcommands/β command implementationsutils/β shared helpers and auth flow
backend/β backend scaffolding templatesfrontend/β frontend scaffolding templates
- See
PROJECT_BLUEPRINT.mdfor full architectural details. - Use
ADMIN_SETUP.mdfor admin onboarding and registry instructions. temp-generated.jsxcontains temporary generated UI output.
If you want to contribute:
- Fork the repository
- Create a feature branch
- Open a pull request with a clear description
This project includes a LICENCE file in the repository root. Review it for license terms.
