Builder Guide
Master the Irresistible visual builder to create applications faster than ever before.
Overview
The Irresistible Builder is a powerful visual development environment that combines:
- Visual editing with drag-and-drop components
- Code editing with full syntax highlighting
- AI assistance for generating and modifying code
- Real-time preview of your changes
- Collaboration tools for team development
Getting Started with the Builder
Accessing the Builder
- From your dashboard, click on any project
- Click the “Open in Builder” button
- Or use the CLI:
irresistible open my-project
Builder Interface
┌─────────────────────────────────────────────────────┐
│ File Tree │ Code Editor │ Preview/Output │
│ │ │ │
│ Components│ <YourCode /> │ Live Preview │
│ Routes │ │ │
│ Assets │ │ │
│ │ │ │
└────────────┴─────────────────────┴────────────────────┘
AI Chat Panel
Core Features
1. File Management
Creating Files
- Right-click in the file tree → New File
- Use keyboard shortcut:
Cmd/Ctrl + N
- Or ask AI: “Create a new component called Header”
File Operations
- Rename: Right-click → Rename
- Delete: Right-click → Delete
- Move: Drag and drop files
- Search:
Cmd/Ctrl + P
for quick open
2. Code Editor
Features
- Syntax highlighting for 50+ languages
- IntelliSense and autocomplete
- Multi-cursor editing
- Code folding
- Bracket matching
- Git integration
Keyboard Shortcuts
Cmd/Ctrl + S
: Save fileCmd/Ctrl + Z
: UndoCmd/Ctrl + Shift + Z
: RedoCmd/Ctrl + F
: FindCmd/Ctrl + H
: Find and replaceCmd/Ctrl + /
: Toggle commentAlt + Up/Down
: Move line
3. Visual Editor
Component Library Drag and drop from our component library:
- Layout components (Grid, Flex, Container)
- Form elements (Input, Button, Select)
- Data display (Table, Card, List)
- Navigation (Menu, Tabs, Breadcrumb)
Styling
- Visual style editor
- Tailwind classes
- Custom CSS
- Theme variables
Properties Panel
- Edit component props
- Bind data
- Add event handlers
- Configure animations
4. AI Assistant
Using AI Effectively
Code Generation
"Create a responsive navigation menu with dropdown support"
"Add a contact form with email validation"
"Generate a data table with sorting and filtering"
Code Modification
"Make this component responsive"
"Add error handling to this function"
"Optimize this code for performance"
Debugging
"Why is this component not rendering?"
"Fix the TypeScript errors in this file"
"Add console logs for debugging"
Best Practices for AI Prompts
- Be specific about requirements
- Mention the framework/library
- Specify styling preferences
- Include error handling needs
5. Live Preview
Preview Modes
- Desktop: Default desktop view
- Tablet: iPad-sized preview
- Mobile: iPhone-sized preview
- Custom: Set custom dimensions
Hot Reload
- Changes appear instantly
- State is preserved
- Error boundaries prevent crashes
DevTools
- Console logs
- Network requests
- Component inspector
- Performance metrics
Advanced Features
Component Creation
Using the Component Wizard
- Click “New Component” button
- Choose component type
- Configure props
- Select styling approach
- Generate component
Component Templates
// Function Component
export default function MyComponent({ prop1, prop2 }) {
return (
<div>
{/* Your JSX here */}
</div>
);
}
// Class Component (React)
export default class MyComponent extends React.Component {
render() {
return <div>{/* Your JSX here */}</div>;
}
}
// Svelte Component
<script>
export let prop1;
export let prop2;
</script>
<div>
<!-- Your markup here -->
</div>
<style>
/* Your styles here */
</style>
Data Binding
State Management
// React
const [value, setValue] = useState('');
// Svelte
let value = '';
// Vue
const value = ref('');
Two-way Binding
<!-- Svelte -->
<input bind:value={inputValue} />
<!-- Vue -->
<input v-model="inputValue" />
<!-- React (manual) -->
<input
value={inputValue}
onChange={(e) => setInputValue(e.target.value)}
/>
API Integration
Fetching Data
// Using AI: "Create a function to fetch user data from /api/users"
async function fetchUsers() {
try {
const response = await fetch('/api/users');
if (!response.ok) throw new Error('Failed to fetch');
return await response.json();
} catch (error) {
console.error('Error fetching users:', error);
return [];
}
}
Real-time Data
// WebSocket connection
const ws = new WebSocket('wss://api.irresistible.dev/live');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
updateUI(data);
};
Deployment from Builder
Quick Deploy
- Click the “Deploy” button
- Select environment (staging/production)
- Review changes
- Click “Deploy Now”
Deploy Settings
// irresistible.config.js
export default {
deploy: {
staging: {
url: 'https://staging.myapp.com',
env: {
API_URL: 'https://api-staging.myapp.com'
}
},
production: {
url: 'https://myapp.com',
env: {
API_URL: 'https://api.myapp.com'
}
}
}
}
Collaboration Features
Live Collaboration
Inviting Team Members
- Click “Share” button
- Enter email addresses
- Set permissions (view/edit)
- Send invitations
Real-time Features
- See team members’ cursors
- Live code changes
- Shared terminal
- Voice/video chat
- Comments and annotations
Version Control
Git Integration
- Commit changes
- Push/pull from remote
- Branch management
- Merge conflicts resolution
Using Git in Builder
# In the integrated terminal
git add .
git commit -m "Add new feature"
git push origin main
Tips and Tricks
Performance Optimization
Use Code Splitting
const LazyComponent = lazy(() => import('./LazyComponent'));
Optimize Images
- Use WebP format
- Lazy load images
- Responsive images
Minimize Bundle Size
- Tree shaking
- Dynamic imports
- Analyze bundle
Debugging
Use Browser DevTools
- Set breakpoints
- Inspect elements
- Monitor network
AI Debugging Assistant
"Add error boundaries to catch React errors" "Log all API requests and responses" "Add performance timing to this function"
Keyboard Shortcuts
Essential Shortcuts
Cmd/Ctrl + K
: Command paletteCmd/Ctrl + B
: Toggle sidebarCmd/Ctrl + J
: Toggle terminalCmd/Ctrl + Shift + P
: AI chatCmd/Ctrl + D
: Duplicate lineCmd/Ctrl + L
: Select line
Troubleshooting
Common Issues
Preview Not Updating
- Check for syntax errors
- Clear browser cache
- Restart dev server
AI Not Responding
- Check internet connection
- Verify API limits
- Try simpler prompts
Performance Issues
- Close unused tabs
- Disable extensions
- Use Chrome/Edge for best performance
Next Steps
- Explore AI Features in depth
- Learn about Deployment options
- Read API Reference
- Browse Examples for inspiration