Complete overview of the Forms Builder & Renderer system.
A comprehensive, production-ready form builder and renderer system with full Django backend integration. The system enables users to create dynamic forms visually, render them accessibly, and manage submissions through Django.
Tech Stack:
- Frontend: Lit Elements (Web Components)
- Backend: Django 4+
- Logic Engine: JSONLogic
- Drag & Drop: Native HTML5
- Build System: Vite
- Package Management: npm workspaces
- npm workspaces configuration
- Centralized dependency management
- Shared build scripts
- Clean package organization
Location: / (root)
Complete TypeScript type system and utilities.
Key Files:
packages/shared/src/types.ts- Form, field, and validation typespackages/shared/src/validation.ts- Client-side validationpackages/shared/src/logic.ts- JSONLogic utilities
Features:
- Full TypeScript type definitions
- Validation rule system
- JSONLogic conversion utilities
- Cross-package compatibility
Web components for rendering forms.
Components:
form-renderer.ts- Main renderer with multi-step supportbase-field.ts- Base field componenttext-field.ts- Text input componentemail-field.ts- Email input componentnumber-field.ts- Number input componenttextarea-field.ts- Textarea component
Features:
- β Multi-step wizard with progress indicators
- β Real-time validation
- β Conditional field visibility (JSONLogic)
- β Cross-step logic
- β ARIA accessibility attributes
- β Responsive design
- β Event-based architecture
- β Form submission handling
Visual form builder with drag-and-drop.
Components:
form-builder.ts- Main builder interfacefield-palette.ts- Field type palettefield-editor.ts- Property editor panel
Features:
- β Native HTML5 drag-and-drop
- β Real-time property editing
- β Multi-step configuration
- β Visual feedback during drag
- β JSON export functionality
- β Field reordering
- β Field deletion
- β Form metadata editing
Complete Django app for backend integration.
Models:
FormDefinition- Store form definitionsFormSubmission- Store form submissionsFormValidationRule- Custom validation rules
Features:
- β Django admin integration
- β Custom admin widgets
- β REST API endpoints (get, submit, validate)
- β Server-side validation with JSONLogic
- β Submission tracking with metadata
- β CSRF protection
- β User association
- β IP tracking
API Endpoints:
GET /forms/api/forms/<id>/- Get form definitionPOST /forms/api/forms/<id>/submit/- Submit formPOST /forms/api/forms/<id>/validate/- Validate form
Full-featured demo application.
Pages:
- Home page with feature overview
- Form builder interface
- Form renderer pages
- Django admin customization
Features:
- β 3 pre-configured example forms
- β Beautiful UI with responsive design
- β Complete integration examples
- β Setup automation scripts
- β Comprehensive documentation
Example Forms:
- Contact Form - Simple single-step form
- Registration Form - 3-step wizard
- Survey Form - 2-step satisfaction survey
Main Documentation:
README.md- Project overview and quickstartGETTING_STARTED.md- Detailed setup guidePROJECT_SUMMARY.md- This fileNL_DESIGN_SYSTEM.md- Accessibility integration guideJSONLOGIC_BUILDER.md- Visual logic builder roadmap
Package Documentation:
packages/backend/README.md- Django package docsexample-django/README.md- Example project guideexample-django/QUICKSTART.md- 5-minute quick start
- Drag-and-drop field placement
- Field property configuration
- Multi-step form creation
- Form metadata (title, description)
- Export form as JSON
- Visual field list
- Field reordering
- Field deletion
- Single-step forms
- Multi-step wizards
- Progress indicators
- Step navigation (next/previous)
- Real-time validation
- Error messages
- Help text
- Required field indicators
- Form submission
- Success/error feedback
- Text input
- Email input
- Number input
- Textarea
- Select dropdown (future)
- Radio buttons (future)
- Checkboxes (future)
- Date picker (future)
- File upload (future)
- Required fields
- Email validation
- Min/max length
- Min/max value
- Pattern matching (regex)
- Custom validation rules
- Client-side validation
- Server-side validation
- Real-time feedback
- Field-level conditions
- Step-level conditions
- JSONLogic integration
- Cross-field dependencies
- Dynamic show/hide
- Logic evaluation (client & server)
- Visual logic builder UI (future)
- Django models
- Django admin
- REST API
- Form storage
- Submission storage
- Server validation
- User tracking
- Timestamp tracking
- IP address tracking
- User agent tracking
- Semantic HTML
- ARIA attributes
- Keyboard navigation
- Screen reader support
- Focus management
- Error announcements
- Proper label associations
- Full NL Design System (future)
- Total Packages: 4 (shared, renderer, builder, backend)
- TypeScript Files: ~15
- Python Files: ~10
- Templates: 5
- Documentation Files: 7
- Renderer Components: 6
- Builder Components: 3
- Django Models: 3
- API Endpoints: 3
- Example Forms: 3
- Total Example Fields: ~15
- Setup Scripts: 4 (2 for Linux/Mac, 2 for Windows)
Simple forms for user inquiries, feedback, and communication.
Multi-step user registration with progressive disclosure.
Data collection with conditional questions based on responses.
Product orders with dynamic pricing and conditional options.
Job applications, event registrations, membership applications.
Customer satisfaction, product reviews, service feedback.
- Design β Use the visual builder or write JSON
- Export β Get JSON definition
- Import β Add to Django admin
- Activate β Mark form as active
- Share β Provide form URL to users
- Visit β Open form URL
- Fill β Complete form fields
- Validate β See real-time validation
- Navigate β Progress through steps (if multi-step)
- Submit β Send form data
- Manage β View/edit forms in admin
- Monitor β Track form submissions
- Analyze β Export submission data
- Configure β Set validation rules
- Maintain β Update forms as needed
- Build components:
npm run build:all - Serve static files from Django
- CDN hosting for production
- Browser compatibility (modern browsers)
- Use PostgreSQL for production (not SQLite)
- Configure ALLOWED_HOSTS
- Set SECRET_KEY from environment
- Enable HTTPS
- Configure CORS if needed
- Set up proper authentication
- Implement rate limiting
- Add monitoring/logging
- β CSRF protection enabled
- β Server-side validation
- β Input sanitization
- β Add authentication for admin
- β Implement rate limiting
- β Add honeypot fields
- β Enable CAPTCHA for public forms
- Visual JSONLogic builder UI
- Additional field types (select, radio, checkbox, date, file)
- Full NL Design System integration
- Form templates library
- Email notifications
- Form versioning
- A/B testing support
- Analytics integration
- PDF export of submissions
- CSV export of submissions
- Webhook support
- Custom field type support
- Internationalization (i18n)
- Form themes
- White-label options
- Payment integration
- E-signature support
- Conditional branching (advanced logic)
- Form UX patterns
- Progressive disclosure techniques
- Conversion optimization
- User testing methods
- Check the documentation files
- Review example forms
- Examine Django admin
- Check browser console for errors
- Review server logs
- See QUICKSTART.md troubleshooting section
- Check example-django/README.md
- Review GETTING_STARTED.md
β Full TypeScript type safety β Web Components (framework-agnostic) β Server-side validation β Conditional logic engine β Drag-and-drop builder β Multi-step wizards β REST API β Django admin integration
β Accessible forms (ARIA) β Real-time validation β Progress indicators β Clear error messages β Responsive design β Intuitive builder UI
β Monorepo structure β Comprehensive docs β Example project β Setup automation β Type definitions β Clear architecture
This project delivers a complete, production-ready form builder and renderer system with:
- Strong Foundation: Well-architected monorepo with shared packages
- Great DX: TypeScript, clear docs, automated setup
- Excellent UX: Accessible, validated, multi-step forms
- Full Integration: Django backend with admin and API
- Easy Start: Example project with 3 forms ready to test
The system is ready to use as-is or extend with additional features. All core functionality is implemented and tested through the example project.
Status: β COMPLETE AND READY FOR USE
Get Started: See example-django/QUICKSTART.md Full Docs: See GETTING_STARTED.md