WebExeBuilder Application Development Guide
for Building Native Desktop Applications
Table of Contents
Introduction
What is WebExeBuilder?
WebExeBuilder is a powerful platform that transforms web applications (HTML/CSS/JavaScript) into native Windows desktop applications with full system access. With over 100 JavaScript commands across 16 categories, WebExeBuilder apps have capabilities far beyond traditional web apps. Unlike web apps that run in browsers with restricted permissions, WebExeBuilder apps have:
- Full File System Access - Read, write, copy, delete files anywhere on the system
- Directory Management - Create, list, and manipulate folders
- Registry Access - Read and write Windows Registry values
- Shell Integration - Execute commands, launch programs, show files in Explorer
- Native Dialogs - Windows file open/save dialogs, folder selection
- Window Control - Resize, minimize, maximize, fullscreen, borderless modes
- System Integration - Notifications, system information, menu bars
- Persistent Storage - Variables that survive app restarts
- VCL Theming - Professional Windows UI themes
Why Use This Guide?
This guide helps you design and build WebExeBuilder applications from the ground up, leveraging native capabilities from day one instead of retrofitting existing web apps. You'll learn to:
✅ Choose the right WebExeBuilder commands for your use case ✅ Architect applications with proper data persistence ✅ Balance native features with web technologies ✅ Follow best practices for desktop application development ✅ Avoid common pitfalls when transitioning from web development
WebExeBuilder vs Traditional Web Apps
Key Differences
| Feature | Traditional Web App | WebExeBuilder App |
|---|---|---|
| Storage | localStorage (5-10MB limit) | Full file system access (unlimited) |
| File Access | File input dialogs only | Native Windows file dialogs + direct file operations |
| Persistence | Cookies, IndexedDB | Files, Registry, Variables API |
| User Interface | Browser chrome | Custom window chrome, borderless, themed |
| Distribution | Hosted on server | Standalone .exe file |
| Offline | Service workers required | Fully offline by default |
| System Integration | None | Shell commands, notifications, menus |
| Security Model | Sandboxed | Full system access |
When to Use WebExeBuilder
✅ Ideal Use Cases:
- Desktop tools requiring file manipulation
- Applications needing persistent local data storage
- Utilities that integrate with Windows Explorer
- Apps requiring system notifications
- Software needing custom window appearance
- Projects requiring offline-first operation
- Applications that launch external programs
❌ Not Recommended For:
- Simple information websites
- Applications requiring mobile support
- Cloud-first SaaS products
- Real-time collaboration tools (unless hybrid approach)
Development Philosophy
Core Principles
Native First, Web Second
- Use WebExeBuilder APIs for storage, files, and system integration
- Use web technologies (localStorage, IndexedDB) only for temporary/session data
- Your UI is entirely web-based (HTML/CSS/JS) — there is no native GUI widget system
- Native menus (
web.appMenu,web.trayMenu) are the exception — those are real Windows menus
Persistent by Default
- Store user preferences in Variables API or files
- Save application state between sessions
- Use Registry for system-wide settings
Offline-Capable
- Design for offline-first operation
- Bundle all assets with the application
- Use local file storage for data
Windows Integration
- Use file open/save/folder dialogs (
web.dialogs) for file picking — these are native Windows dialogs - All other UI (alerts, confirmations, forms, modals) is built in HTML/CSS/JS — however, there are now native message box dialogs using Namespace:
web.dialogs.message - Integrate with Windows Explorer (show files, open folders)
- Provide system notifications for important events
- Use file open/save/folder dialogs (
Professional Appearance
- Leverage VCL themes for polished look
- Consider borderless windows with custom chrome
- Use proper window states (minimize, maximize, fullscreen)
All WebExeBuilder JavaScript APIs are available under the window.web namespace. They return Promises and can be used with async/await.
// Example: Open a file dialog
async function selectFile() {
const filePath = await web.dialogs.openFile({
title: 'Select a file',
fileTypes: 'Text Files|*.txt|All Files|*.*'
});
console.log('Selected:', filePath);
}
selectFile();
Requirements
- WebExeBuilder application
- Windows operating system
- Modern JavaScript (ES6+) support