Hallo du! Schön, dass du hier bist. 👋
UIForge ist ein visueller UI-Builder — ein Projekt, das ich ganz allein in unzähligen Abendstunden und Wochenenden zusammengebaut habe. Es hilft dir, Interfaces per Drag & Drop zu designen und als sauberen React/HTML-Code zu exportieren.
Wenn du Fehler findest, Dinge vermisst oder einfach nur Hallo sagen willst — freue ich mich über jede Nachricht!
|
Drag & Drop |
Baue Seiten visuell — ziehe Komponenten per Drag & Drop auf die Leinwand. |
Live Editor |
Bearbeite Eigenschaften und Styles in Echtzeit mit sofortiger Vorschau. |
|
Library |
20+ vorgefertigte Komponenten — Container, Cards, Formulare, Navigation uvm. |
Export |
Exportiere als React, Vue, Svelte oder reines HTML+CSS. |
|
Undo/Redo |
Unbegrenztes Rückgängig & Wiederherstellen für jede Änderung. |
Responsive |
Vorschau für Desktop, Tablet und Mobile — inklusive Zoom. |
|
Lokal speichern |
Projekte werden automatisch im Browser gespeichert. |
Mehrsprachig |
UI in Deutsch und Englisch — einfach umschaltbar. |
|
Alignment Guides |
Intelligente Hilfslinien beim Positionieren von Komponenten. |
Plugins |
Erweiterbar durch ein einfaches Plugin-System. |
┌─────────────────────────────────────────────────────────┐
│ UIForge │
├──────────────┬──────────────────┬───────────────────────┤
│ Frontend │ Backend │ Build │
├──────────────┼──────────────────┼───────────────────────┤
│ React 18 │ Express.js │ Vite 5 │
│ TypeScript │ JWT Auth │ TypeScript 5.5 │
│ Zustand │ bcryptjs │ Tailwind CSS 3 │
│ dnd-kit │ SQLite / JSON │ PostCSS / Autoprefixer│
│ i18next │ UUID │ │
│ Lucide Icons│ CORS / Multer │ │
│ Tailwind CSS│ │ │
└──────────────┴──────────────────┴───────────────────────┘
- Node.js v18 oder höher
- npm (wird mit Node.js installiert)
# Repository klonen
git clone https://github.com/dein-username/uiforge.git
cd uiforge
# Abhängigkeiten installieren
npm install
# Entwicklungsserver starten (Frontend + API-Proxy)
npm run devÖffne http://localhost:5173 im Browser.
Für die vollständige API (optional) in einem zweiten Terminal:
npm run servernpm run buildErzeugt das optimierte Frontend im dist/ Ordner.
npm run deployErstellt einen deploy/ Ordner mit allem, was für den Server benötigt wird:
deploy/
├── index.js # Express-Server (API + Static Files)
├── package.json # Alle Dependencies
└── dist/ # Gebautes Frontend
├── index.html
└── assets/
Auf dem Server:
cd deploy
npm install
node index.jsDie Anwendung läuft dann auf http://localhost:3004.
Tipp: Port über
PORT=8080 node index.jsanpassen.
uiforge/
├── index.js # Production Server (ESM)
├── index.html # Vite Entry
├── public/
│ └── vite.svg # Favicon / Logo
├── src/
│ ├── main.tsx # React Entry Point
│ ├── App.tsx # Root Component mit Navigation
│ ├── components/
│ │ ├── registry.ts # Komponenten-Definitionen (20+ Typen)
│ │ └── BuiltInRenderer.tsx # Render-Logik für alle Komponenten
│ ├── editor/
│ │ ├── Canvas.tsx # Drag & Drop Leinwand (dnd-kit)
│ │ ├── Toolbar.tsx # Werkzeugleiste (Undo, Zoom, Export)
│ │ ├── ComponentPalette.tsx # Komponenten-Auswahl
│ │ ├── PropertiesPanel.tsx # Eigenschaften-Editor
│ │ ├── ExportDialog.tsx # Code-Export Dialog
│ │ └── ResizeHandle.tsx # Resize-Griffe für Komponenten
│ ├── pages/
│ │ ├── Dashboard.tsx # Projektübersicht
│ │ ├── EditorPage.tsx # Haupt-Editor (Split-View)
│ │ └── SettingsPage.tsx # Projekteinstellungen
│ ├── store/
│ │ ├── editorStore.ts # Editor-State (Nodes, History, Selection)
│ │ ├── projectStore.ts # Projekt-State (Projects, Pages)
│ │ ├── uiStore.ts # UI-State (Panels, Theme, Toasts)
│ │ └── i18nStore.ts # Sprach-Einstellungen
│ ├── types/
│ │ ├── component.ts # ComponentInstance, PropDefinition
│ │ ├── page.ts # Page Interface
│ │ ├── project.ts # Project, ProjectSettings
│ │ └── plugin.ts # Plugin-Typen
│ ├── export/
│ │ ├── index.ts # Export-Hub
│ │ ├── reactExport.ts # React/HTML Code-Generatoren
│ │ ├── vueExport.ts # Vue Code-Generator
│ │ └── svelteExport.ts # Svelte Code-Generator
│ ├── i18n/
│ │ ├── index.ts # i18n-Initialisierung
│ │ ├── de.json # Deutsche Übersetzungen
│ │ └── en.json # Englische Übersetzungen
│ ├── plugins/
│ │ └── index.ts # Plugin-System
│ ├── lib/
│ │ ├── cn.ts # Tailwind class merge utility
│ │ └── storage.ts # localStorage Persistenz
│ ├── preview/
│ │ └── PreviewFrame.tsx # Live-Vorschau
│ └── styles/
│ └── index.css # Globale Styles, Tailwind, Keyframes
├── server/
│ └── index.js # Development Server (CJS)
├── deploy.js # Deployment-Script
├── build.ps1 # PowerShell Build-Script
├── build.bat # Windows Batch Build
├── vite.config.ts # Vite-Konfiguration
├── tsconfig.json # TypeScript-Konfiguration
├── tailwind.config.js # Tailwind-Konfiguration
├── postcss.config.js # PostCSS-Konfiguration
└── package.json # Projekt-Metadaten & Scripts
| Komponente | Kategorie | Kinder? | Beschreibung |
|---|---|---|---|
| Container | Layout | ✅ | Flex-Container mit Direction, Justify, Align |
| Section | Layout | ✅ | Abschnitt mit Hintergrund & Padding |
| Grid | Layout | ✅ | CSS-Grid mit einstellbaren Spalten |
| Column | Layout | ✅ | Grid-Spalte mit Span |
| Header | Layout | ✅ | Kopfzeile |
| Footer | Layout | ✅ | Fußzeile mit Hintergrund |
| Heading | Basic | ❌ | Überschrift (H1-H4) |
| Text | Basic | ❌ | Textabsatz |
| Button | Basic | ❌ | Button mit Varianten & Größen |
| Image | Media | ❌ | Bild mit Object-Fit |
| Video | Media | ❌ | YouTube/Vimeo/Direct Embed |
| Input | Form | ❌ | Eingabefeld mit Label |
| Textarea | Form | ❌ | Mehrzeiliges Textfeld |
| Form | Form | ✅ | Formular mit Submit-Button |
| Card | Content | ✅ | Karte mit Shadow & Padding |
| Divider | Basic | ❌ | Horizontale Trennlinie |
| Spacer | Layout | ❌ | Leerraum |
| Link | Basic | ❌ | Hyperlink |
| NavBar | Navigation | ✅ | Navigationsleiste mit Brand |
| RawHTML | Custom | ❌ | Benutzerdefinierter HTML-Code |
- Multi-Select Components
- Group & Ungroup Elements
- Copy / Paste Components
- Layer Locking
- Layer Visibility Toggle
- Keyboard Shortcuts
- Improved Canvas Performance
- Tabs
- Accordion
- Modal/Dialog
- Dropdown Menus
- Navigation Bars
- Data Tables
- Charts & Graphs
- Next.js Export
- Nuxt Export
- Astro Export
- Improved React TSX Output
- Export Optimizations
- Real-Time Collaboration
- Shared Projects
- Live Presence Indicators
- Comments & Feedback System
- Global Color Variables
- Typography System
- Design Tokens
- Theme Management
- Style Presets
- Command Palette
- Quick Actions
- Project Search
- Reusable Templates
- Auto Layout
- Constraints System
- Responsive Breakpoints
- Flexbox Editor
- Grid Layout Editor
- Media Library
- Asset Manager
- Icon Browser
- Font Management
- Plugin Marketplace
- Plugin Manager
- One-Click Installation
- Plugin Settings API
- Generate UI from Prompt
- AI Layout Suggestions
- Component Recommendations
- Smart Auto-Layout
- AI Accessibility Checks
- WCAG Validation
- Accessibility Scanner
- Contrast Checker
- Semantic HTML Suggestions
- Cloud Sync
- Project Backup
- Version History
- Team Workspaces
- Organization Accounts
- Role Management
- Project Permissions
- Audit Logs
- Team Templates
- Public API
- CLI Tool
- SDK
- Webhooks
- Git Integration
- Mobile App
- Electron Desktop Version
- Native Windows Application
- Native macOS Application
- Native Linux Application
- Component Marketplace Revenue Sharing
- Template Marketplace
- White-Label Support
- Self-Hosted Cloud
- Figma Import
- Figma Export
- Tailwind Visual Builder
- Shadcn/UI Integration
- Material Design Integration
- Bootstrap Integration
- Storybook Export
- Visual Animation Editor
- State Management Editor
- Database Connectors
- Authentication Builder
- CMS Integrations
- Docker Deployment Templates
- 🔨 Undo/Redo gefixt — Die History-Engine speichert jetzt korrekt Zwischenzustände; Undo und Redo funktionieren zuverlässig über beliebig viele Schritte
- 🧭 Dashboard-Navigation — Vom Editor zurück zur Projektübersicht (neuer Zurück-Button in der Toolbar)
- 💾 Lokale Persistenz — Projekte und Editor-Zustand werden automatisch im Browser gespeichert und beim Neuladen wiederhergestellt
- 🖼️ Favicon — Eigenes UIForge-Logo als SVG-Favicon
- 🧹 Code bereinigt — Unbenutzte Imports entfernt, TypeScript strikter
- 🎨 README — Liebevoll überarbeitet mit persönlicher Note
- 🖱️ dnd-kit Drag & Drop — Präzises Positionieren mit Drop-Indikatoren
- 📐 Resizing & Alignment Guides — Größe ändern und intelligent ausrichten
- 🔄 Vue & Svelte Export — Zwei weitere Exportformate
- 🧩 Eigene Komponenten — Speichere und verwende deine eigenen Komponenten
- 🔌 Plugin-System — Erweitere UIForge mit Plugins
- 🌍 i18n — UI in Deutsch und Englisch
- 💾 IndexedDB Storage — Robusteres Speichern im Browser
- ☕ Solo-Dev-Modus — Features, die das Alleine-Entwickeln schöner machen
Alle API-Routen sind mit /api prefixiert. Authentifizierte Endpoints benötigen einen Authorization: Bearer <token> Header.
| Methode | Endpoint | Beschreibung |
|---|---|---|
POST |
/api/auth/register |
Benutzer registrieren |
POST |
/api/auth/login |
Login (Email & Passwort) |
GET |
/api/auth/me |
Aktuellen Benutzer abrufen * |
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET |
/api/projects |
Alle Projekte des Benutzers * |
POST |
/api/projects |
Neues Projekt erstellen * |
GET |
/api/projects/:id |
Projektdetails * |
PUT |
/api/projects/:id |
Projekt aktualisieren * |
DELETE |
/api/projects/:id |
Projekt löschen * |
| Methode | Endpoint | Beschreibung |
|---|---|---|
POST |
/api/pages |
Neue Seite erstellen * |
PUT |
/api/pages/:id |
Seite aktualisieren * |
DELETE |
/api/pages/:id |
Seite löschen * |
POST |
/api/pages/:id/components |
Komponenten speichern * |
GET |
/api/pages/:id/components |
Komponenten abrufen * |
* = Authentifizierung erforderlich
Dieses Projekt habe ich ganz allein gebaut — in Feierabenden, an Wochenenden, zwischen Kaffee und Mitternachtssnacks. Wenn dir UIForge gefällt, freue ich mich riesig über:
- Einen ⭐ auf GitHub — das motiviert ungemein!
- Feedback & Ideen — was fehlt, was könnte besser sein?
- Weitersagen — wenn es jemandem helfen könnte
Dieses Projekt steht unter der MIT License — frei verwendbar, modifizierbar und verteilbar.