VvvebJs is a free, open source automation project written in JavaScript and released under Apache-2.0. It has 8,675 GitHub stars, 1,835 forks and 304 open issues, and was last pushed 3 months ago. On this registry it ranks #20 of 54 tracked projects in Automation, with 5 head-to-head comparisons available. It gained 4 stars over the last 3 tracked days.

What is VvvebJs?

What it is

VvvebJs is a drag and drop page builder library written in vanilla JavaScript. It ships without dependencies and without a build step, so the editor runs directly in the browser from a plain HTML file rather than from a compiled bundle. The project lives in the JavaScript ecosystem and sits in the low-code and no-code tooling space: it is a library and editor surface rather than a finished product, and it is distributed under the Apache-2.0 license.

The concrete problem it solves is page composition inside an existing site or application. Teams that need an in-browser editor for Bootstrap 5 markup — for landing pages, CMS templates, or content managed by non-developers — normally have to either buy a hosted page-builder service or assemble their own component model, undo stack, file manager, and asset pipeline. VvvebJs provides those pieces as a library that can be opened at editor.html and extended with custom components and inputs. Topics attached to the repository include low-code, no-code, editor, drag-and-drop, and nodejs, which describe the intended substitute: a free, self-contained builder rather than a subscription.

Key capabilities

  • Components, sections, and blocks support drag and drop, plus in-page insert.
  • Undo and redo operations across editing actions.
  • One-panel and two-panel interface layouts.
  • File manager and component hierarchy navigation.
  • Live code editor with CodeMirror plugin and syntax highlighting, with an optional CKEditor plugin that replaces the built-in text editor.
  • Media gallery with integrated CC0 image search, server upload support, and an included example PHP upload script.
  • Bootstrap 5 components with a bundled SVG icon component, plus widgets for YouTube, Google maps, and Charts.js.
  • Themes with global typography and color palette editing, full Google Fonts list support, and animate-on-scroll support.
  • Export to HTML, save to server with the included PHP script, or download the page and all assets as a zip file through the zip download plugin.

Who uses it and how

  • Developers embedding a page editor into an existing CMS or admin panel, initializing it through the Vvveb.Builder.init API with a list of pages.
  • Teams building Bootstrap 5 landing pages from the provided landing template, using gulp tasks to generate HTML files, sections lists, blocks lists, and section screenshots.
  • Self-hosters running the published Docker image on port 8080 and opening editor.php or editor.html.
  • Node.js users running save.js with express to persist pages on the server instead of using PHP.

Getting started

Clone the repository with git clone --recurse-submodules and open editor.html through a webserver such as apache or xampp, since browser iframe security blocks direct file opening. Docker is also available via docker-compose up from the project folder or docker run -p 8080:80 vvveb/vvvebjs; image upload and page saving require PHP, or Node through npm install express and node save.js.

When to use it — and when not to

VvvebJs is a fit when the editor must be self-hosted, dependency-free, and extended with custom components rather than consumed as a closed hosted service. A self-hoster must operate supporting pieces the README calls out: a webserver, PHP or Node for the save and upload paths, and the gulp toolchain if the landing template is modified. The repository shows 304 open issues and a limited contributor count, so

project readme (upstream, from github) — read inline

VvvebJs

Vvveb

Drag and drop page builder javascript library.
Built with Vanilla Js with no dependencies or build tools and Bootstrap 5

Website | Documentation | Forum | Twitter

Live Demo

For a full featured Open Source CMS using VvvebJs page builder check Vvveb CMS

Using Vvveb landing page template for demo page and Bootstrap 5 sections and blocks.

Features

  • Components and blocks/snippets drag and drop and in page insert.
  • Undo/Redo operations.
  • One or two panels interface.
  • File manager and component hierarchy navigation.
  • Add new page modal with template and folder options.
  • Live code editor with codemirror plugin syntax highlighting.
  • Image upload with example php script included.
  • Page download or export html or save page on server with example php script included.
  • Components/Sections/Blocks list search.
  • Bootstrap 5 components.
  • Media gallery with integrated CC0 image search and server upload support.
  • Image, video and iframe elements resize handles.
  • Elements breadcrumb for easier parent elements selection.
  • Full Google fonts list support for font selection.
  • Youtube, Google maps, Charts.js etc widgets.
  • Optional CKEditor plugin to replace builtin text editor.
  • Zip download plugin to download the page and all assets as zip file.
  • SVG Icon component bundled with hundreds of free icons.
  • Animate on scroll support for page elements.
  • Theme global typography and color pallette editor.

By default the editor comes with Bootstrap 5 and Widgets components and can be extended with any kind of components and inputs.

Install

  • Clone the repository
#git 2.13+ 
git clone --recurse-submodules https://github.com/givanz/VvvebJs

# older git versions 
git clone --recursive https://github.com/givanz/VvvebJs
  • Pull changes
git pull --recurse-submodules

Usage

Clone the repository or download a release then open editor.html

Because of browser iframe security you need to use a webserver such as apache/xampp and open http://localhost/editor.html

To disable browser security and open editor.html without installing a webserver run chrome with

chrome --disable-web-security --user-data-dir=/tmp/temporary_profile editor.html

To use the image upload or page save feature you need to have php installed.

Docker

Local development

From VvvebJs folder run

docker-compose up

Image

Or run image

docker run -p 8080:80 vvveb/vvvebjs

Open http://localhost:8080/editor.php or http://localhost:8080/editor.html

Save page

Save page function needs either php or node

PHP

If you use docker, xampp or a shared hosting account php should work without any change.

Saving is done using save.php

Node

For node go to VvvebJs folder and run

npm install express
node save.js

Open http://localhost:8080/editor.html

Saving is done using save.js

Landing template

To make changes to template files or sections run the following commands from demo/landing folder

Install gulp

npm i

Generate html files

Template html partials are located in demo/landing/src folder.

npm run gulp

Watch for changes for development

npm run gulp watch

Generate sections list for page builder

Sections html files are located in demo/landing/src/sections folder grouped in folders with the section group name.

npm run gulp sections

Generate blocks list

Blocks html files are located in demo/landing/src/blocks folder grouped in folders with the blocks group name.

npm run gulp blocks

Generate screenshots for sections

npm run gulp screenshots

Usage

Initialize example

<!-- bootstrap-->
<script src="js/popper.min.js"></script>
<script src="js/bootstrap.min.js"></script>

<!-- builder code-->
<script src="libs/builder/builder.js"></script>	
<!-- undo manager-->
<script src="libs/builder/undo.js"></script>	
<!-- inputs-->
<script src="libs/builder/inputs.js"></script>	
<!-- components-->
<script src="libs/builder/components-bootstrap5.js"></script>	
<script src="libs/builder/components-widgets.js"></script>	

<script>
let pages = [
 {
	name:"narrow-jumbotron", 
	title:"Jumbotron", 
	url: "demo/narrow-jumbotron/index.html", 
	file: "demo/narrow-jumbotron/index.html"
  },
  {name:"landing-page", title:"Landing page", url: "demo/landing/index.html", file: "demo/landing/index.html"},
];
	

let firstPage = Object.keys(pages)[0];
Vvveb.Builder.init(pages[firstPage]["url"], function() {
	//load code after page is loaded here
});

Vvveb.Gui.init();
Vvveb.FileManager.init();
Vvveb.SectionList.init();
Vvveb.Breadcrumb.init();

Vvveb.FileManager.addPages(pages);
Vvveb.FileManager.loadPage(pages[firstPage]["name"]);
Vvveb.Gui.toggleRightColumn(false);
Vvveb.Breadcrumb.init();

<script>

For editor html and components/input javascript templates edit editor.html

For css changes edit scss/editor.scss and scss/_builder.scss

Scss

To compile scss to css first install gulp

npm i

Then you can run

npm run gulp

or use watch to compile on file change.

npm run gulp watch

Wrappers

  • React VvvebJs React wrapper

Documentation

For documentation check the wiki

Support

If you like the project you can support it with a PayPal donation or become a backer/sponsor via Open Collective

License

Apache 2.0

Frequently asked questions

Is VvvebJs free to use?

VvvebJs is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does VvvebJs do?

Drag and drop page builder library written in vanilla javascript without dependencies or build tools.

What is VvvebJs written in?

VvvebJs is primarily written in JavaScript. Its source is publicly available at https://github.com/givanz/VvvebJs, and it has 8,675 GitHub stars.