Before you begin, ensure you have the following installed:
- Node.js: v18.0.0 or higher (Download)
- npm: v9.0.0 or higher (comes with Node.js)
- Git: Latest version (Download)
- Code Editor: VSCode recommended (Download)
- ESLint
- Prettier
- Tailwind CSS IntelliSense
- EditorConfig
- GitLens
git clone https://github.com/your-org/lowcode-visual-builder.git
cd lowcode-visual-buildernpm installThis will install:
- Electron and Electron Forge
- React and React DOM
- Development tools (ESLint, Prettier, etc.)
- UI libraries (React Flow, Monaco Editor, etc.)
npm startThis will:
- Start the Electron app in development mode
- Enable hot reload for renderer process
- Open DevTools automatically
Expected Output:
✓ Electron app started
✓ React dev server running
→ Opening window...
# Start development mode
npm start
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Lint code
npm run lint
# Format code
npm run format
# Type check (if using TypeScript)
npm run type-checklowcode-visual-builder/
├── src/
│ ├── main/ # Electron main process
│ │ ├── index.js # Main entry point
│ │ ├── ipc.js # IPC handlers
│ │ └── fileSystem.js # File operations
│ │
│ ├── renderer/ # Electron renderer process (React)
│ │ ├── App.jsx # Root component
│ │ ├── components/ # UI components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── store/ # State management (Zustand)
│ │ └── utils/ # Helper functions
│ │
│ ├── engine/ # Core logic
│ │ ├── manifest/ # Manifest management
│ │ ├── generator/ # Code generation
│ │ ├── parser/ # Code parsing
│ │ └── plugins/ # Framework plugins
│ │
│ └── shared/ # Shared types and constants
│
├── docs/ # Documentation
├── tests/ # Test files
├── templates/ # Project templates
└── public/ # Static assets
npm start- Click "New Project" button
- Fill in project details:
- Name:
my-first-app - Framework: React (only option in MVP)
- Location: Choose directory
- Name:
- Click "Create"
- Right-click in Component Tree panel
- Select "Add Component"
- Choose component type (e.g.,
Button) - Configure properties in Properties Panel
- Click "Preview" tab in center panel
- See your component rendered
- Changes update automatically
- Click "Code" tab
- See generated React code
- Code is also saved in
my-first-app/src/components/
- Click "AI Assistant" button (or press
Ctrl+K) - Describe component:
Create a UserCard component that displays a user's name, email, and avatar image - Review generated component in tree
- Adjust properties as needed
✅ DO:
- Be specific about what you want
- Mention props and state explicitly
- Describe layout (e.g., "in a card layout")
- Request styling (e.g., "using Tailwind classes")
❌ DON'T:
- Ask for entire applications at once
- Use vague descriptions
- Expect AI to understand complex business logic
- Assume AI knows your design system
Good:
Create a SearchBar component with:
- An input field for search query
- A search button
- OnSearch event that passes the query
- Use Tailwind for styling
Better:
Create a SearchBar component:
Props:
- placeholder (string)
- onSearch (function)
State:
- query (string)
UI:
- Input field (Tailwind rounded, border-gray-300)
- Search button (blue background, white text)
- Button triggers onSearch with current query
Located in .lowcode/config.json (in generated projects):
{
"framework": "react",
"typescript": false,
"formatting": {
"style": "prettier",
"config": {
"semi": true,
"singleQuote": true,
"tabWidth": 2
}
}
}In the visual builder app, go to Settings (gear icon):
- Theme: Light/Dark mode
- AI Provider: Claude (default), OpenAI (future)
- Auto-save: Enable/disable
- Preview Mode: Isolation/Full app
| Shortcut | Action |
|---|---|
Ctrl+N |
New project |
Ctrl+O |
Open project |
Ctrl+S |
Save |
Ctrl+Z |
Undo |
Ctrl+Shift+Z |
Redo |
Ctrl+K |
AI Assistant |
Ctrl+P |
Preview toggle |
F5 |
Refresh preview |
| Shortcut | Action |
|---|---|
Ctrl+A |
Add component |
Delete |
Delete selected |
Ctrl+D |
Duplicate |
Ctrl+Up |
Move up |
Ctrl+Down |
Move down |
| Shortcut | Action |
|---|---|
Ctrl+F |
Find |
Ctrl+H |
Replace |
Ctrl+/ |
Toggle comment |
Alt+Up/Down |
Move line |
Error: Cannot find module 'electron'
Solution:
rm -rf node_modules package-lock.json
npm installError: Port 3000 already in use
Solution:
# Kill process using port 3000
npx kill-port 3000
# Or change port in vite.config.jsIssue: Preview shows blank screen
Solutions:
- Check console for errors (right-click preview → Inspect)
- Verify generated code compiles:
cd my-first-app npm run build - Restart dev server
Issue: ESLint errors in generated code
Solutions:
- Check manifest for invalid values
- Regenerate code: Right-click component → "Regenerate"
- Report bug if consistent
Issue: AI request times out
Solutions:
- Check internet connection
- Verify API key in settings
- Try simpler prompt
- Check API status: https://status.anthropic.com/
Generated projects are standard Vite + React apps:
cd my-first-app
npm install # First time only
npm run dev # Start dev serverOpen in browser: http://localhost:3000
You can edit generated code directly:
- Open project in VSCode
- Edit files in
src/components/ - Changes appear in browser (HMR)
Note: Manual edits will be preserved, but visual editor sync is a post-MVP feature.
cd my-first-app
npm install axios # Or any packageThen import in script nodes or protected regions.
Deploy like any Vite app:
npm install -g vercel
cd my-first-app
vercelnpm install -g netlify-cli
cd my-first-app
npm run build
netlify deploy --prodcd my-first-app
npm run build
# Upload dist/ folder to any host- Fork the repository
- Create a branch:
git checkout -b feature/my-feature
- Make changes
- Run tests:
npm test - Commit:
git commit -m "Add my feature" - Push and create PR
We use:
- ESLint for linting
- Prettier for formatting
- Conventional Commits for commit messages
Run before committing:
npm run lint
npm run formatAdd tests for new features:
// tests/component.test.js
import { describe, it, expect } from 'vitest';
describe('ComponentManager', () => {
it('adds component to manifest', () => {
// Test code
});
});Run tests:
npm test- Architecture: ARCHITECTURE.md
- Component Schema: COMPONENT_SCHEMA.md
- Data Flow: DATA_FLOW.md
- Expression System: EXPRESSION_SYSTEM.md
- GitHub Issues: Bug reports and feature requests
- Discussions: Questions and ideas
- Discord: Real-time chat (coming soon)
Q: Can I use this with TypeScript? A: Not in MVP, but planned for future release.
Q: Can I use Vue/Svelte instead of React? A: Not in MVP. Plugin system for other frameworks is post-MVP.
Q: Can I import existing React components? A: Partially. You can reference external components in script nodes, but visual editing of imported components is post-MVP.
Q: Is this production-ready? A: MVP is for prototyping. Generated code is production-quality React, but the tool itself is early stage.
Q: Do I need to know React? A: Basic understanding helps, but tool is designed for low-code developers with minimal React knowledge.
npm run example:todoFeatures:
- Add/remove todos
- Mark complete
- Filter (all/active/completed)
- Uses global state
npm run example:dashboardFeatures:
- User list and detail views
- Search and filter
- Component connections
- Script nodes for data transformation
npm run example:formsFeatures:
- Dynamic form fields
- Validation
- Conditional logic
- Submit handling
- ✅ Complete Tutorial: Follow in-app tutorial
- ✅ Explore Examples: Open and study sample projects
- ✅ Build Something: Start with simple project
- ✅ Read Docs: Deep dive into specific topics
- ✅ Join Community: Share your creations
TBD
Built with:
- ⚛️ React
- ⚡ Vite
- 🔌 Electron
- 🤖 Claude AI
- 💙 Open Source
Questions? Open an issue on GitHub or check the docs!
Ready to build? npm start and let's go! 🚀