# Microweber: A Drag-and-Drop CMS and Store Builder on Laravel

> Microweber is a PHP CMS that puts drag-and-drop layout editing and a shopping cart in the same admin panel. It suits small shops and brochure sites, and it asks for a modern PHP stack in return.

**microweber/microweber** — Drag and Drop Website Builder and CMS with E-commerce

- Repository: https://github.com/microweber/microweber
- Website: https://microweber.org
- Stars: 3,440 · Forks: 938
- Language: HTML
- License: MIT
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/microweber-microweber

## Who Microweber is built for, and the problem it removes

Most CMS projects split work into two roles. A developer builds templates, then an editor fills them with text and images, and every layout change goes back through the developer. Microweber collapses that split. The README describes a Drag & Drop builder where images, text fields, videos and modules are moved across the screen, plus a Live Edit view for changing text in place. The default template, Dream, ships with more than 75 pre-designed layouts that can be placed by dragging.

The target user is a small shop owner or blogger who does not want to touch a template file to move a product block. The target host is a normal PHP shared or virtual server. The README's system requirements are the real filter here: PHP 8.2 or newer, with lib-xml and DOM, GD, intl, curl, json, openssl, sodium, mbstring, bcmath, zip, fileinfo, pdo_sqlite and pdo_mysql. That list is long, and on cheap hosting it is the first thing that breaks. Microweber is not a static site generator, and it is not a headless CMS that serves JSON to a separate front end. It renders pages itself.

## How the drag-and-drop layer sits on top of Laravel

The README states the current version is 2.0, running on Laravel 10. The repository layout backs that up: app/, bootstrap/, config/, database/, routes/, resources/, src/ and storage/ are the standard Laravel directories, and artisan sits at the top level next to index.php and server.php. So the request path is a Laravel application, and the editor is a front-end layer over it.

That front-end layer is visible in package.json. Vue 3 is a dependency, alongside vue-drag-resize, vue-final-modal, vue3-click-away and vuetify, with Alpine.js and jQuery also present. The build splits in two: vite build for the modern assets and gulp js-build-all for the rest, run together by the build script. A separate admincss script runs gulp admin-css. This is a codebase carrying both a current Vue toolchain and older jQuery-era admin code, which is worth knowing before you plan to modify the admin UI.

On the server side, the README describes automatic creation of .htaccess files during installation, including a Deny All directive in each folder to block direct access to entry points other than index.php. The Nginx example does the same job with a location block that denies vendor, src, config, database, bootstrap, storage, app, routes, .git and .env, returning 404. That is the security boundary: only index.php is public.

## Installing Microweber with Composer or Docker

The README gives two installation routes. The fastest is to download the package from microweber.com and unzip it. For a source install, Composer is used. The command below creates the project in a directory named my_site, and the README notes dev-master as the version constraint in its example.

```bash
composer create-project microweber/microweber my_site dev-master
```

After that, the front-end assets have to be installed and built. Both commands are listed in the README and in package.json.

```bash
npm install
npm run build
```

The build script runs two processes at once: vite build and gulp js-build-all. When it finishes, the compiled assets are in place. Before opening the site, the README says three directories and everything inside them must be writable by the user running PHP: config/, storage/ and userfiles/.

If you prefer containers, the repository includes a docker-compose.yml. It starts a php-apache service from thecodingmachine/php:8.1-v4-apache-node16 on port 80, mounts the repository at /var/www/html, and links to a mariadb:10.3 service exposing port 3306 with database, user and password all set to laravel. The php-apache service sets STARTUP_COMMAND_1 to composer install and enables a long list of PHP extensions through PHP_EXTENSIONS, with sodium added through PECL_EXTENSION. Note the mismatch worth checking yourself: the compose file uses a PHP 8.1 image while the README's system requirements say PHP 8.2 or newer, and the Dockerfile builds from php:8.2-apache. The Dockerfile installs pdo_mysql, zip, dom, curl, mbstring, intl, bcmath, sodium and opcache, runs composer install, enables mod_rewrite and sets the tree to 777.

```bash
docker compose up
```

After the containers start, the installer runs in the browser. Microweber supports MySQL, SQLite, Microsoft SQL Server and PostgreSQL, and the README recommends SQLite for small websites. The database list you see during installation is generated from the PDO extensions enabled in your PHP configuration, so a missing pdo_pgsql means PostgreSQL will not appear.

## Where Microweber stops being the right tool

The extension list is the first real constraint. PHP 8.2 is a hard floor, and the README lists thirteen extensions including sodium and intl. Shared hosts that still default to PHP 7.x cannot run this at all, and hosts that strip extensions will fail during installation rather than degrade gracefully. If you cannot change the PHP version or enable extensions on your host, this project is not for you.

The second constraint is the upgrade story. The repository contains UPGRADING.md, and the releases show v2.0.18 in January 2025, v2.0.19 in February 2025 and v2.0.20 in August 2025. The README itself does not describe how to move a live site from one major version to the next, and it does not document rollback. Anyone running a store on this should read UPGRADING.md before touching the files, not after.

The third is scope. The README calls e-commerce the primary focus, and the feature list is a page builder plus a cart. If you need a multi-vendor marketplace, complex tax rules or a subscription billing engine, you are looking at custom module work on top of a builder, not a feature you switch on. Microweber is also a full-page renderer, so if your architecture is a JavaScript front end consuming an API, this is the wrong shape.

Finally, the front-end dependency list is heavy: Vue 3, Vuetify, Bootstrap 4, jQuery, jQuery UI, Alpine.js and AOS all appear in package.json. That is a large surface to keep patched, and it is a fair amount of JavaScript for a page that mostly shows text and products.

## Microweber compared with WordPress for the same job

The honest comparison is WordPress, because both are PHP CMSs where a non-developer builds pages and a shop can be added. The difference is in where the layout lives. WordPress keeps content in posts and pages and leaves arrangement to the active theme plus a page builder plugin, so the editing experience depends on which plugins you install. Microweber puts the drag-and-drop canvas and the Live Edit view in the core, and the README describes modules and layouts as first-class parts of the admin panel.

That means fewer decisions at setup. You install Microweber, pick the Dream template with its 75-plus layouts, and start dragging. On WordPress you would assemble that from a theme and a builder plugin, and each of those has its own update cycle and its own licence. The trade is ecosystem size and the number of people who already know the admin. WordPress has a much larger pool of developers and themes; Microweber's README points to its own guides, videos, templates and a demo, not to a third-party marketplace.

On the infrastructure side, Microweber's requirements are stricter. WordPress runs on older PHP versions that Microweber refuses, and Microweber asks for sodium and intl, which many WordPress hosts never enable. If your host already runs WordPress comfortably, that is not evidence it can run Microweber.

## Licence, maintenance and what an upgrade actually costs

Microweber is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are kept. That is permissive and places few obligations on a self-hosted deployment. The MIT licence covers the code in this repository; templates, hosted services and marketplace items linked from the README may carry their own terms, and those are not stated there. This is a description of the licence identifier, not legal advice.

The last push to the default branch was on 2026-09-23, and the repository is not archived. The release cadence visible in the tag list is uneven: roughly a month between v2.0.18 and v2.0.19, then about six months to v2.0.20. Plan upgrades as occasional events rather than a continuous stream.

The ongoing cost is the environment, not the download. You are maintaining PHP 8.2 or newer with a specific extension set, a Node toolchain to run npm run build, and writable config/, storage/ and userfiles/ directories. The Dockerfile sets the whole tree to 777, which is convenient in a container and a poor idea on a shared server. The README's own hardening is narrower: keep mod_rewrite on for Apache, apply the Nginx deny block, and let the installer write the .htaccess files. If you build from source, budget time for the asset build and for re-running it whenever you pull changes, because the repository tracks both a Vite pipeline and a Gulp pipeline.

## Conclusion

Adopt Microweber if you want a self-hosted site where the same person writes the copy, arranges the layout and manages products, and you can supply PHP 8.2 with the listed extensions. Do not adopt it if you need a documented upgrade path between major versions, since UPGRADING.md is present in the repository but the README does not describe the procedure. Before committing, confirm your PHP build reports the required extensions, check which database engine your host offers, and read UPGRADING.md for the version you are moving from.

## FAQ

### How do I install Microweber?

The README gives two routes: download the package from microweber.com and unzip it, or run composer create-project microweber/microweber my_site dev-master, then npm install and npm run build. A docker-compose.yml is also included, starting a php-apache container and a MariaDB service.

### Is Microweber free?

The repository is MIT licensed, so the code can be used, modified and redistributed under that licence. The README links to templates, hosting marketplaces and a demo, and those separate services are not covered by the MIT identifier.

### Can I build my own website for free?

Microweber is MIT licensed and can be self-hosted, so the software itself costs nothing. You still need a server that meets the README's requirements: PHP 8.2 or newer with the listed extensions, plus a database such as SQLite, MySQL, PostgreSQL or Microsoft SQL Server.

## Sources

- [License: MIT](https://github.com/microweber/microweber/blob/master/LICENSE)
- [microweber/microweber on GitHub](https://github.com/microweber/microweber)
- [Project website](https://microweber.org)
- [README](https://github.com/microweber/microweber/blob/master/README.md)
- [Releases](https://github.com/microweber/microweber/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/microweber-microweber
