MCPcopy Index your code
hub / github.com/givanz/VvvebJs

github.com/givanz/VvvebJs @2.0.9

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.0.9 ↗ · + Follow
1,493 symbols 4,382 edges 54 files 71 documented · 5% updated 4d ago2.0.9 · 2026-07-01★ 8,547258 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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


<script src="https://github.com/givanz/VvvebJs/raw/2.0.9/js/popper.min.js"></script>
<script src="https://github.com/givanz/VvvebJs/raw/2.0.9/js/bootstrap.min.js"></script>


<script src="https://github.com/givanz/VvvebJs/raw/2.0.9/libs/builder/builder.js"></script> 

<script src="https://github.com/givanz/VvvebJs/raw/2.0.9/libs/builder/undo.js"></script>    

<script src="https://github.com/givanz/VvvebJs/raw/2.0.9/libs/builder/inputs.js"></script>  

<script src="https://github.com/givanz/VvvebJs/raw/2.0.9/libs/builder/components-bootstrap5.js"></script>   
<script src="https://github.com/givanz/VvvebJs/raw/2.0.9/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

Core symbols most depended-on inside this repo

Pos
called by 106
libs/codemirror/lib/codemirror.js
generateElements
called by 76
libs/builder/builder.js
getLine
called by 61
libs/codemirror/lib/codemirror.js
words
called by 58
libs/codemirror/lib/clike.js
render
called by 57
libs/media/media.js
option
called by 57
libs/codemirror/lib/codemirror.js
elt
called by 54
libs/codemirror/lib/codemirror.js
on
called by 51
libs/codemirror/lib/codemirror.js

Shape

Function 1,118
Method 329
Class 46

Languages

TypeScript100%

Modules by API surface

libs/codemirror/lib/codemirror.js464 symbols
js/bootstrap.min.js350 symbols
libs/jszip/jszip.js150 symbols
libs/swiper/swiper-bundle.min.js107 symbols
libs/coloris/coloris.js39 symbols
libs/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js39 symbols
js/popper.min.js37 symbols
libs/jszip/jszip.min.js36 symbols
libs/aos/aos.js32 symbols
libs/codemirror/lib/clike.js27 symbols
libs/media/media.js26 symbols
libs/coloris/coloris.min.js26 symbols

Dependencies from manifests, versioned

express4.19.2 · 1×
gulp4.0.2 · 1×
gulp-file-include2.3.0 · 1×
gulp-format-html1.2.5 · 1×
gulp-sass5.1.0 · 1×
node-sass8.0.0 · 1×
sass1.60.0 · 1×

For agents

$ claude mcp add VvvebJs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact