The modern alternative to bulky GUI builders.
Generate clean, object-oriented Python GUI code directly in your browser.
PyDesigner is a free, online Python GUI builder that lets you design user interfaces visually and export production-ready code. No installation, no dependencies – just open your browser and start designing.
Whether you're building a Tkinter desktop app, a modern CustomTkinter interface, or a professional PyQt5 application, PyDesigner generates clean, maintainable Python code in seconds.
| Feature | Description |
|---|---|
| 🖱️ Drag-and-Drop Widget Placement | Intuitive visual designer – place buttons, labels, inputs, and more with pixel-perfect precision |
| ⚡ Real-Time Code Preview | See your Python code update instantly as you design |
| 🎨 Multiple Framework Support | Export to Tkinter, PyQt5, or CustomTkinter with one click |
| 📦 ZIP Download with Dependencies | Download your script bundled with requirements.txt |
| 🖼️ Custom Window Icons | Upload icons that get embedded directly into your script (Base64) |
| 📋 Template Library | Start from pre-built templates or community contributions |
| 🌙 Dark/Light Mode | Comfortable designing in any lighting condition |
| 💾 Auto-Save & Export | Save projects to browser storage or export as JSON |
| 🆓 100% Free | No accounts, no limits, no watermarks |
# Clone the repository
git clone https://github.com/yourusername/pydesigner.git
cd pydesigner
# Install dependencies
npm install
# Run development server
npm run devOpen http://localhost:3000 in your browser.
npm run build
npm start- Button – Clickable buttons with custom styling
- Label – Text display with font customization
- Entry – Single-line text input with placeholder support
- TextArea – Multi-line text input
- Checkbox – Boolean toggle controls
- Radio Button – Single-select option groups
- ComboBox – Dropdown selection
- Frame – Container for grouping widgets
- Slider – Range value selection
- ProgressBar – Visual progress indicator
We're actively developing new features:
- Kivy Support – Cross-platform mobile GUI framework
- PySide6 Support – Qt for Python (LGPL licensed)
- wxPython Support – Native look on all platforms
- Grid Layout Mode – Snap-to-grid widget alignment
- Theme Editor – Custom color schemes for generated apps
- Component Library – Pre-built UI patterns (login forms, settings panels)
- Collaborative Editing – Real-time multiplayer design
- Frontend: Next.js 14, React 19, TypeScript
- Styling: Tailwind CSS
- State Management: Zustand
- Drag & Drop: @dnd-kit
- Code Highlighting: Prism React Renderer
- Deployment: Vercel
Contributions are welcome! Whether it's:
- 🐛 Bug reports
- 💡 Feature requests
- 📝 Documentation improvements
- 🎨 Template submissions
Please open an issue or submit a pull request.
MIT License – feel free to use PyDesigner for personal and commercial projects.
⭐ Star this repo if PyDesigner helped you build Python GUIs faster!
