Silex is a visual, no-code website builder designed for web professionals who want full control over static site output without vendor lock-in. It combines a GrapesJS-based drag-and-drop editor with CMS integrations (WordPress, Strapi, Squidex) and static site generation via 11ty, enabling agencies and freelancers to build client sites visually while exporting standards-compliant HTML, CSS, and JS. Unlike Wix or Webflow, Silex is AGPL-licensed, community-owned by Silex Labs (a French non-profit), and requires no ongoing subscription.
Technically, Silex is a meta-repo composed of 24 modular packages including the core editor (silex-lib), a Rust server, desktop app (Tauri-based), and plugins for GrapesJS. It supports self-hosting via Docker, Node.js, CapRover, or YunoHost, and integrates with MCP (Model Context Protocol) for local AI-powered design via Ollama or Claude Code. The tool is built for developers who value open standards, composability, and long-term ownership of their site code.
What You Get
- GrapesJS-based visual editor - Drag-and-drop interface with live HTML/CSS/JS editors, allowing pixel-perfect design without writing code.
- Static HTML/CSS export - Generate clean, standards-compliant static files that can be hosted on any platform (Netlify, GitHub Pages, S3, etc.).
- CMS integration via GraphQL - Connect to WordPress, Strapi, Squidex, Supabase, or any custom API to pull dynamic content into static pages.
- 11ty compatibility - Generate static sites using Eleventy (11ty) templates and deploy via CI/CD pipelines with full build control.
- Self-hosting support - Deploy Silex on Docker, Node.js, CapRover, YunoHost, or Elest.io with full data ownership and no third-party dependencies.
- Plugin system (JS/TS) - Extend functionality with custom plugins for GrapesJS, server logic, or data sources using the official plugin starter template.
- SEO tools - Configure per-page meta tags, Open Graph tags, and structured data directly in the visual editor.
- MCP-based AI design (coming in Desktop app) - Use local AI models (Ollama, Claude Code, Goose) via Model Context Protocol to generate or refine designs with text prompts.
- Desktop app (Tauri-based, alpha) - Offline-first desktop application for Windows, macOS, and Linux with no account required and local file storage.
Common Use Cases
- Running a client website portfolio for web agencies - Agencies use Silex to visually design and export static sites for clients, avoiding monthly SaaS fees and ensuring clients own their site code.
- Building dynamic blogs with WordPress content - WordPress developers use Silex to design modern frontends while pulling live content via GraphQL, eliminating the need for theme development.
- Creating reusable templates for freelancers - Freelancers build template packs (e.g., law firms, restaurants) with CMS integration, then sell or reuse them across multiple clients with zero code duplication.
- Educating students in web standards - Design schools use Silex to teach HTML/CSS concepts visually, ensuring students learn real web skills instead of proprietary tools.
Under The Hood
Architecture
- Monorepo structure isolates backend and desktop layers, promoting domain separation but lacks formal module boundaries
- Dependency injection is implemented via TypeScript constructors and interfaces, though business logic remains tightly coupled to UI and file system operations
- GrapesJS is extended through plugins rather than forked, preserving modularity
- Tauri abstracts OS interactions while core logic resides in a shared library, enabling cross-platform consistency
- Build pipelines are standardized via npm scripts, but implicit coupling persists due to absent dependency graphs
Tech Stack
- Rust and Tauri form the desktop backend foundation, managed through Cargo workspaces
- Node.js 16+ with ES modules and Yarn 1.x powers the frontend and tooling
- GrapesJS serves as the core WYSIWYG engine, extended with custom Silex plugins
- System-level operations rely heavily on fs, path, and child_process modules
- Build and release workflows are driven by custom Node.js scripts and husky hooks
- Configuration uses non-standard formatting rules and custom INI parsing
Code Quality
- Test coverage is superficial, with no meaningful assertions or test validation
- Components are tightly coupled with fragmented organization and unclear separation of concerns
- Error handling is generic, lacking custom exceptions or contextual logging
- Naming conventions are inconsistent across modules, reducing readability
- No type safety, linting, or static analysis tools are employed, increasing risk of runtime errors
What Makes It Unique
- Implements a micro-service container with request-level middleware injection, avoiding global state
- Features a lazy-loaded dependency injection system that minimizes memory usage on startup
- Introduces a context-aware template engine that auto-escapes output based on response type
- Uses declarative request lifecycle hooks via annotations instead of callback registration
- Compiles route definitions to static files at deploy time, eliminating runtime routing overhead