About


Powerful and easy to use drag and drop website builder for blogs, presentation or ecommerce stores.

The html for sections blocks and components and this template are built using Bootstrap 5.


Better Security

Vvveb is 100% safe against sql injections, a vulerability that affects most CMS.

Unlimited customization

Vvveb uses only html for templating for maximum flexibility.

Advanced Ecommerce

Vvveb is a full featured ecommerce platform with advanced functionality.

Full Localization

Publish content in multiple languages or sell in different currencies.

Empty cart
No products added yet!
    1. SELECT post.*,_.post_id,_.slug,_.name,_.content,_.meta_keywords,_.meta_description,_.language_id,post.template,language.code,language.slug as language,language.slug as array_key FROM post_content AS _ LEFT JOIN language ON (language.language_id = _.language_id) LEFT JOIN post ON (post.post_id = _.post_id) LEFT JOIN post_to_site ps ON (ps.post_id = _.post_id AND ps.site_id = :site_id) WHERE 1 = 1 AND _.post_id = (SELECT post_id FROM post_content WHERE slug = :slug LIMIT 1) AND post.type = :type AND ps.site_id = :site_id
      1. 1
      2. 1
          1. D43M0NS
          2. The next generation website builder
          3. cms, page builder, drag and drop, ecommerce, ecommerce platform, designer, developer, php, bootstrap 5
          4. Powerful and easy to use drag and drop website builder for blogs, presentation or ecommerce stores
          5. +55 (111) 123 777
        1. West 21st Street Brooklyn NY
        2. /media/logo.png
        3. /media/logo.png
        4. /media/logo-white.png
        5. /media/logo-white.png
        6. /media/favicon.ico
        7. /media/biglogo.png
        8. 1200
        9. 675
        10. 800
        11. 450
        12. 400
        13. 225
        14. 150
        15. 84
        16. 1200
        17. 1536
        18. 800
        19. 1021
        20. 400
        21. 510
        22. 150
        23. 190
        24. j F Y
        25. g:i A
        26. 223
        27. 3655
        28. 1
        29. 1
        30. en
        31. USD
        32. I-{year2}-{month}-{order_id}-{user_id}-{customer_order_id}
        33. {rand-str-12}-{year2}
        34. 1
        35. 1
        36. 1
        37. 1
        38. 1
        39. webp
        40. favicon.ico
        41. logo.png
        42. logo.png
        43. logo-white.png
        44. logo-white.png
        45. biglogo.png
        46. kg
        47. cm
        48. *.*.*
          1. 2026
          2. en
          3. en-us
          4. en_US
          5. 1
          6. en
          7. en-us
          8. 1
          9. USD
          10. 1
          11. about
          12. page
          13. SELECT post.*,_.post_id,_.slug,_.name,_.content,_.meta_keywords,_.meta_description,_.language_id,post.template,language.code,language.slug as language,language.slug as array_key FROM post_content AS _ LEFT JOIN language ON (language.language_id = _.language_id) LEFT JOIN post ON (post.post_id = _.post_id) LEFT JOIN post_to_site ps ON (ps.post_id = _.post_id AND ps.site_id = 1) WHERE 1 = 1 AND _.post_id = (SELECT post_id FROM post_content WHERE slug = 'about' LIMIT 1) AND post.type = 'page' AND ps.site_id = 1
        1. SELECT _.*,pd.*,ad.admin_id,ad.username,ad.display_name,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name ,(SELECT COUNT(c.comment_id) FROM comment c WHERE _.post_id = c.post_id AND c.status = :comment_status ) AS comment_count FROM post AS _ LEFT JOIN post_content pd ON (_.post_id = pd.post_id AND pd.language_id = :language_id) LEFT JOIN admin ad ON (_.admin_id = ad.admin_id) LEFT JOIN post_to_site ps ON (ps.post_id = _.post_id AND ps.site_id = :site_id) WHERE 1 = 1 AND _.post_id = :post_id LIMIT 1
          1. 11
          2. 1
          3. 1
          4. about
          5. publish
          6. 1
          7. 1
          8. large
          9. 1
          10. en
          11. 1
          12. en
          13. 1
          14. USD
          15. SELECT _.*,pd.*,ad.admin_id,ad.username,ad.display_name,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name ,(SELECT COUNT(c.comment_id) FROM comment c WHERE _.post_id = c.post_id AND c.status = 1 ) AS comment_count FROM post AS _ LEFT JOIN post_content pd ON (_.post_id = pd.post_id AND pd.language_id = 1) LEFT JOIN admin ad ON (_.admin_id = ad.admin_id) LEFT JOIN post_to_site ps ON (ps.post_id = _.post_id AND ps.site_id = 1) WHERE 1 = 1 AND _.post_id = 11 LIMIT 1
        1. SELECT `key` as array_key,value as array_value FROM post_meta as _ WHERE _.post_id = 11
          1. 11
          2. 1
          3. 1
          4. about
          5. publish
          6. 1
          7. 1
          8. large
          9. 1
          10. en
          11. 1
          12. en
          13. 1
          14. USD
          15. SELECT `key` as array_key,value as array_value FROM post_meta as _ WHERE _.post_id = 11
        1. SELECT _.*,pd.*,ad.admin_id,ad.username,ad.display_name,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name ,(SELECT COUNT(c.comment_id) FROM comment c WHERE _.post_id = c.post_id AND c.status = :comment_status ) AS comment_count FROM post AS _ LEFT JOIN post_content pd ON (_.post_id = pd.post_id AND pd.language_id = :language_id) LEFT JOIN admin ad ON (_.admin_id = ad.admin_id) LEFT JOIN post_to_site ps ON (ps.post_id = _.post_id AND ps.site_id = :site_id) WHERE 1 = 1 AND _.post_id = :post_id LIMIT 1
          1. 11
          2. 1
          3. 1
          4. about
          5. publish
          6. 1
          7. 1
          8. large
          9. 1
          10. en
          11. 1
          12. en
          13. 1
          14. USD
          15. SELECT _.*,pd.*,ad.admin_id,ad.username,ad.display_name,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name ,(SELECT COUNT(c.comment_id) FROM comment c WHERE _.post_id = c.post_id AND c.status = 1 ) AS comment_count FROM post AS _ LEFT JOIN post_content pd ON (_.post_id = pd.post_id AND pd.language_id = 1) LEFT JOIN admin ad ON (_.admin_id = ad.admin_id) LEFT JOIN post_to_site ps ON (ps.post_id = _.post_id AND ps.site_id = 1) WHERE 1 = 1 AND _.post_id = 11 LIMIT 1
        1. SELECT `key` as array_key,value as array_value FROM post_meta as _ WHERE _.post_id = 11
          1. 11
          2. 1
          3. 1
          4. about
          5. publish
          6. 1
          7. 1
          8. large
          9. 1
          10. en
          11. 1
          12. en
          13. 1
          14. USD
          15. SELECT `key` as array_key,value as array_value FROM post_meta as _ WHERE _.post_id = 11
        1. SELECT *,tc.name as name, tc.slug as slug FROM taxonomy_item AS _ LEFT JOIN taxonomy_to_site c2s ON (_.taxonomy_item_id = c2s.taxonomy_item_id) LEFT JOIN taxonomy_item_content tc ON (_.taxonomy_item_id = tc.taxonomy_item_id) LEFT JOIN post_to_taxonomy_item pt ON (_.taxonomy_item_id = pt.taxonomy_item_id AND pt.post_id = :post_id) INNER JOIN taxonomy t ON ( _.taxonomy_id = t.taxonomy_id AND t.type = :type AND t.post_type = :post_type ) WHERE tc.language_id = :language_id AND c2s.site_id = :site_id AND pt.post_id = :post_id LIMIT 1
          1. 11
          2. 1
          3. categories
          4. page
          5. 1
          6. 1
          7. en
          8. 1
          9. en
          10. 1
          11. 1
          12. USD
          13. SELECT *,tc.name as name, tc.slug as slug FROM taxonomy_item AS _ LEFT JOIN taxonomy_to_site c2s ON (_.taxonomy_item_id = c2s.taxonomy_item_id) LEFT JOIN taxonomy_item_content tc ON (_.taxonomy_item_id = tc.taxonomy_item_id) LEFT JOIN post_to_taxonomy_item pt ON (_.taxonomy_item_id = pt.taxonomy_item_id AND pt.post_id = 11) INNER JOIN taxonomy t ON ( _.taxonomy_id = t.taxonomy_id AND t.type = 'categories' AND t.post_type = 'page' ) WHERE tc.language_id = 1 AND c2s.site_id = 1 AND pt.post_id = 11 LIMIT 1
        1. SELECT post_field_value.*, field.settings, field.field_id as array_key FROM post_field_value LEFT JOIN field ON (field.field_id = post_field_value.field_id) WHERE 1 = 1 AND post_field_value.language_id = :language_id AND post_field_value.post_id = :post_id ORDER BY field.sort_order LIMIT :start, :limit
          1. post
          2. page
          3. 100
          4. 1
          5. 1
          6. 11
          7. 1
          8. en
          9. 1
          10. en
          11. 1
          12. USD
          13. SELECT post_field_value.*, field.settings, field.field_id as array_key FROM post_field_value LEFT JOIN field ON (field.field_id = post_field_value.field_id) WHERE 1 = 1 AND post_field_value.language_id = 1 AND post_field_value.post_id = 11 ORDER BY field.sort_order LIMIT 0, 100
        1. SELECT count(*) FROM ( SELECT post_field_value.*, field.settings, field.field_id as array_key FROM post_field_value LEFT JOIN field ON (field.field_id = post_field_value.field_id) WHERE 1 = 1 AND post_field_value.language_id = :language_id AND post_field_value.post_id = :post_id ) as count
          1. post
          2. page
          3. 100
          4. 1
          5. 1
          6. 11
          7. 1
          8. en
          9. 1
          10. en
          11. 1
          12. USD
          13. SELECT count(*) FROM ( SELECT post_field_value.*, field.settings, field.field_id as array_key FROM post_field_value LEFT JOIN field ON (field.field_id = post_field_value.field_id) WHERE 1 = 1 AND post_field_value.language_id = 1 AND post_field_value.post_id = 11 ) as count
        1. SELECT menu_item.url, menu_item.sort_order, menu_item.parent_id, menu_item.type, menu_item.options, menu_item.item_id, td.*, menu_item.menu_item_id as menu_item_id, menu_item.menu_item_id as array_key FROM menu_item LEFT JOIN menu_item_content td ON (menu_item.menu_item_id = td.menu_item_id AND td.language_id = :language_id) WHERE 1 = 1 AND menu_item.menu_id = ( SELECT menu.menu_id FROM menu INNER JOIN menu_to_site ON (menu.menu_id = menu_to_site.menu_id AND menu_to_site.site_id = :site_id) WHERE slug = :slug LIMIT 1 ) ORDER BY menu_item.parent_id, menu_item.sort_order, menu_item.menu_id LIMIT :start, :limit
          1. main-menu
          2. 10000
          3. 1
          4. 1
          5. 1
          6. en
          7. 1
          8. en
          9. 1
          10. USD
          11. SELECT menu_item.url, menu_item.sort_order, menu_item.parent_id, menu_item.type, menu_item.options, menu_item.item_id, td.*, menu_item.menu_item_id as menu_item_id, menu_item.menu_item_id as array_key FROM menu_item LEFT JOIN menu_item_content td ON (menu_item.menu_item_id = td.menu_item_id AND td.language_id = 1) WHERE 1 = 1 AND menu_item.menu_id = ( SELECT menu.menu_id FROM menu INNER JOIN menu_to_site ON (menu.menu_id = menu_to_site.menu_id AND menu_to_site.site_id = 1) WHERE slug = 'main-menu' LIMIT 1 ) ORDER BY menu_item.parent_id, menu_item.sort_order, menu_item.menu_id LIMIT 0, 10000
        1. SELECT pd.*,post.*,ad.username,ad.display_name,ad.admin_id,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name, post.post_id as array_key FROM post LEFT JOIN post_content pd ON ( post.post_id = pd.post_id AND pd.language_id = :language_id ) LEFT JOIN post_to_site ps ON (post.post_id = ps.post_id) LEFT JOIN admin ad ON (post.admin_id = ad.admin_id) WHERE 1 = 1 AND post.post_id IN (:post_id) ORDER BY post.post_id DESC
            1. 12
            2. 7
            3. 13
            4. 14
          1. 1
          2. SELECT pd.*,post.*,ad.username,ad.display_name,ad.admin_id,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name, post.post_id as array_key FROM post LEFT JOIN post_content pd ON ( post.post_id = pd.post_id AND pd.language_id = 1 ) LEFT JOIN post_to_site ps ON (post.post_id = ps.post_id) LEFT JOIN admin ad ON (post.admin_id = ad.admin_id) WHERE 1 = 1 AND post.post_id IN (12,7,13,14) ORDER BY post.post_id DESC
        1. SELECT count(*) FROM ( SELECT post.post_id FROM post LEFT JOIN post_content pd ON ( post.post_id = pd.post_id AND pd.language_id = :language_id ) LEFT JOIN post_to_site ps ON (post.post_id = ps.post_id) LEFT JOIN admin ad ON (post.admin_id = ad.admin_id) WHERE 1 = 1 AND post.post_id IN (:post_id) ) as count
            1. 12
            2. 7
            3. 13
            4. 14
          1. 1
          2. SELECT count(*) FROM ( SELECT post.post_id FROM post LEFT JOIN post_content pd ON ( post.post_id = pd.post_id AND pd.language_id = 1 ) LEFT JOIN post_to_site ps ON (post.post_id = ps.post_id) LEFT JOIN admin ad ON (post.admin_id = ad.admin_id) WHERE 1 = 1 AND post.post_id IN (12,7,13,14) ) as count
        1. SELECT menu_item.url, menu_item.sort_order, menu_item.parent_id, menu_item.type, menu_item.options, menu_item.item_id, td.*, menu_item.menu_item_id as menu_item_id, menu_item.menu_item_id as array_key FROM menu_item LEFT JOIN menu_item_content td ON (menu_item.menu_item_id = td.menu_item_id AND td.language_id = :language_id) WHERE 1 = 1 AND menu_item.menu_id = ( SELECT menu.menu_id FROM menu INNER JOIN menu_to_site ON (menu.menu_id = menu_to_site.menu_id AND menu_to_site.site_id = :site_id) WHERE slug = :slug LIMIT 1 ) ORDER BY menu_item.parent_id, menu_item.sort_order, menu_item.menu_id LIMIT :start, :limit
          1. main-footer
          2. 10000
          3. 1
          4. 1
          5. 1
          6. en
          7. 1
          8. en
          9. 1
          10. USD
          11. SELECT menu_item.url, menu_item.sort_order, menu_item.parent_id, menu_item.type, menu_item.options, menu_item.item_id, td.*, menu_item.menu_item_id as menu_item_id, menu_item.menu_item_id as array_key FROM menu_item LEFT JOIN menu_item_content td ON (menu_item.menu_item_id = td.menu_item_id AND td.language_id = 1) WHERE 1 = 1 AND menu_item.menu_id = ( SELECT menu.menu_id FROM menu INNER JOIN menu_to_site ON (menu.menu_id = menu_to_site.menu_id AND menu_to_site.site_id = 1) WHERE slug = 'main-footer' LIMIT 1 ) ORDER BY menu_item.parent_id, menu_item.sort_order, menu_item.menu_id LIMIT 0, 10000
        1. SELECT pd.*,post.*,ad.username,ad.display_name,ad.admin_id,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name, post.post_id as array_key FROM post LEFT JOIN post_content pd ON ( post.post_id = pd.post_id AND pd.language_id = :language_id ) LEFT JOIN post_to_site ps ON (post.post_id = ps.post_id) LEFT JOIN admin ad ON (post.admin_id = ad.admin_id) WHERE 1 = 1 AND post.post_id IN (:post_id) ORDER BY post.post_id DESC
            1. 7
            2. 8
            3. 9
            4. 12
            5. 11
            6. 14
            7. 15
          1. 1
          2. SELECT pd.*,post.*,ad.username,ad.display_name,ad.admin_id,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name, post.post_id as array_key FROM post LEFT JOIN post_content pd ON ( post.post_id = pd.post_id AND pd.language_id = 1 ) LEFT JOIN post_to_site ps ON (post.post_id = ps.post_id) LEFT JOIN admin ad ON (post.admin_id = ad.admin_id) WHERE 1 = 1 AND post.post_id IN (7,8,9,12,11,14,15) ORDER BY post.post_id DESC
        1. SELECT count(*) FROM ( SELECT post.post_id FROM post LEFT JOIN post_content pd ON ( post.post_id = pd.post_id AND pd.language_id = :language_id ) LEFT JOIN post_to_site ps ON (post.post_id = ps.post_id) LEFT JOIN admin ad ON (post.admin_id = ad.admin_id) WHERE 1 = 1 AND post.post_id IN (:post_id) ) as count
            1. 7
            2. 8
            3. 9
            4. 12
            5. 11
            6. 14
            7. 15
          1. 1
          2. SELECT count(*) FROM ( SELECT post.post_id FROM post LEFT JOIN post_content pd ON ( post.post_id = pd.post_id AND pd.language_id = 1 ) LEFT JOIN post_to_site ps ON (post.post_id = ps.post_id) LEFT JOIN admin ad ON (post.admin_id = ad.admin_id) WHERE 1 = 1 AND post.post_id IN (7,8,9,12,11,14,15) ) as count
      1. about
      2. /page/{slug}
      3. content/page/index
      4. \/page\/(?[^$\/]+)
      5. ?module=content/post&slug=about&type=page
      1. about.html
      2. content/page.tpl
            1. /* /var/www/html/plugins/debug/plugin.php [line: 124 - 129] */
              function ($sql, $params){
              			$debugSql = $db->debugSql($sql, $params);
              			$this->view->debug['data']['sql'][] = [$sql, $params + ['sql' => $debugSql]];
              
              			return [$sql, $params];
              		});
              
            1. /* /var/www/html/plugins/debug/plugin.php [line: 167 - 184] */
              function ($template, $tplFile, $templateEngine, $view){
              			$events = Event::getEvents();
              
              			array_walk_recursive($events, function (&$value, $key) {
              				if (is_object($value)) {
              					if ($value instanceof \Closure) {
              						$value = $this->closureDump($value);
              					}
              				}
              			});
              
              			$view = ['template' => $template, 'tplFile' => $tplFile];
              			$this->view->debug['data']['request'] = Routes::getUrlData();
              			$this->view->debug['data']['view'] = $view;
              			$this->view->debug['data']['filters'] = $events;
              
              			return [$template, $tplFile, $templateEngine, $view];
              		});
              
            1. /* /var/www/html/plugins/minify/plugin.php [line: 369 - 381] */
              function ($template, $htmlFile, $tplFile, $vTpl, $view){
              			$theme = $view->getTheme();
              
              			$this->initMinifier();
              
              			$this->processCss($vTpl, $template, $theme);
              			$this->processCss($vTpl, $template, $theme, 'body > ');
              
              			$this->processJs($vTpl, $template, $theme);
              			$this->processJs($vTpl, $template, $theme, 'body > ');
              
              			return [$template, $htmlFile, $tplFile, $vTpl, $view];
              		});