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.


Meet Our Team

We are a group of professionals dedicated to their work

image

John Doe

CTO - Founder

We are a group of professionals dedicated to their work

image

John Doe

CTO - Tech

We are a group of professionals dedicated to their work

image

John Doe

CSO - Financial

We are a group of professionals dedicated to their work

image

John Doe

CMO - Operations

You can relay on our amazing features list and also our user services will be great experience.

  1. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  2. [2] => menu.94598630b740ec08860f5f0e9483c030
  3. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  4. [4] => post.a1ee38e7c119976de5df3bea5d9b65c6
  5. [5] => post.a1ee38e7c119976de5df3bea5d9b65c6_expire
  6. [6] => post.a1ee38e7c119976de5df3bea5d9b65c6
  7. [7] => post.a1ee38e7c119976de5df3bea5d9b65c6_expire
  8. )
  9. [27-May-2026 02:05:44 PRC] error:CACHE max retry reached for ecomdemo.micodetest.com/page/services
  10. b5322416beadb1c
  11. [7] => posts.d94e88b79394c4004b5322416beadb1c_expire
  12. [8] => comments.188dc7c9db1576016a7ef1e300cd1096
  13. [9] => comments.188dc7c9db1576016a7ef1e300cd1096_expire
  14. [10] => content\categories.c5f09ba3257d23587936d87ea55124da
  15. [11] => content\categories.c5f09ba3257d23587936d87ea55124da_expire
  16. [12] => content\categories.21b383783637152eb488559a25b8eefa
  17. [13] => content\categories.21b383783637152eb488559a25b8eefa_expire
  18. [14] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  19. [15] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  20. [16] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  21. [17] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  22. )
  23. [27-May-2026 02:04:56 PRC] error:CACHE max retry reached for ecomdemo.micodetest.com/brand
  24. [27-May-2026 02:04:56 PRC] error:CACHE max retry reached for ecomdemo.micodetest.com/blog
  25. [27-May-2026 02:05:35 PRC] wait cache /vendorArray
  26. (
  27. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  28. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  29. [2] => menu.94598630b740ec08860f5f0e9483c030
  30. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  31. [4] => product\manufacturers.3e6ebb0a290606bd4d579be65f73c65d
  32. [5] => product\manufacturers.3e6ebb0a290606bd4d579be65f73c65d_expire
  33. [6] => products.1a44a113cd09d989fc7550a9680cf40c
  34. [7] => products.1a44a113cd09d989fc7550a9680cf40c_expire
  35. )
  36. [27-May-2026 02:05:36 PRC] wait cache /vendorArray
  37. (
  38. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  39. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  40. [2] => menu.94598630b740ec08860f5f0e9483c030
  41. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  42. [4] => product\manufacturers.3e6ebb0a290606bd4d579be65f73c65d
  43. [5] => product\manufacturers.3e6ebb0a290606bd4d579be65f73c65d_expire
  44. [6] => products.1a44a113cd09d989fc7550a9680cf40c
  45. [7] => products.1a44a113cd09d989fc7550a9680cf40c_expire
  46. )
  47. [27-May-2026 02:05:37 PRC] wait cache /vendorArray
  48. (
  49. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  50. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  51. [2] => menu.94598630b740ec08860f5f0e9483c030
  52. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  53. [4] => product\manufacturers.3e6ebb0a290606bd4d579be65f73c65d
  54. [5] => product\manufacturers.3e6ebb0a290606bd4d579be65f73c65d_expire
  55. [6] => products.1a44a113cd09d989fc7550a9680cf40c
  56. [7] => products.1a44a113cd09d989fc7550a9680cf40c_expire
  57. )
  58. [27-May-2026 02:05:38 PRC] error:CACHE max retry reached for ecomdemo.micodetest.com/vendor
  59. [27-May-2026 02:05:40 PRC] wait cache /page/servicesArray
  60. (
  61. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  62. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  63. [2] => menu.94598630b740ec08860f5f0e9483c030
  64. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  65. [4] => post.a1ee38e7c119976de5df3bea5d9b65c6
  66. [5] => post.a1ee38e7c119976de5df3bea5d9b65c6_expire
  67. [6] => post.a1ee38e7c119976de5df3bea5d9b65c6
  68. [7] => post.a1ee38e7c119976de5df3bea5d9b65c6_expire
  69. )
  70. [27-May-2026 02:05:42 PRC] wait cache /page/servicesArray
  71. (
  72. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  73. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  74. [2] => menu.94598630b740ec08860f5f0e9483c030
  75. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  76. [4] => post.a1ee38e7c119976de5df3bea5d9b65c6
  77. [5] => post.a1ee38e7c119976de5df3bea5d9b65c6_expire
  78. [6] => post.a1ee38e7c119976de5df3bea5d9b65c6
  79. [7] => post.a1ee38e7c119976de5df3bea5d9b65c6_expire
  80. )
  81. [27-May-2026 02:05:43 PRC] wait cache /page/servicesArray
  82. (
  83. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  84. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  85. [2] => menu.94598630b740ec08860f5f0e9483c030
  86. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  87. [4] => post.a1ee38e7c119976de5df3bea5d9b65c6
  88. [5] => post.a1ee38e7c119976de5df3bea5d9b65c6_expire
  89. [6] => post.a1ee38e7c119976de5df3bea5d9b65c6
  90. [7] => post.a1ee38e7c119976de5df3bea5d9b65c6_expire
  91. )
  92. [27-May-2026 02:05:44 PRC] error:CACHE max retry reached for ecomdemo.micodetest.com/page/services
    1. SELECT namespace, `key`, value FROM setting AS _ WHERE 1 = 1 AND _.site_id = :site_id AND _.namespace = :namespace AND _.`key` IN (:key)
      1. insert-scripts
        1. header
        2. footer
      2. 1
      3. SELECT namespace, `key`, value FROM setting AS _ WHERE 1 = 1 AND _.site_id = 1 AND _.namespace = 'insert-scripts' AND _.`key` IN ('header','footer')
    1. SELECT post.*,_.post_id,_.slug,_.name,_.meta_keywords,_.meta_description,_.language_id,post.template,language.code,language.code 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 pt ON (pt.post_id = _.post_id) WHERE 1 = 1 AND _.post_id = (SELECT post_id FROM post_content WHERE slug = :slug LIMIT 1) AND pt.site_id = :site_id
      1. 1
      2. 1
        1. info@maishainfotech.com
        2. info@maishainfotech.com
        3. //cdn.statically.io/img/ecomdemo.micodetest.com/media//favicon-16x16.png
        4. //cdn.statically.io/img/ecomdemo.micodetest.com/media//logo-foot512.png
        5. //cdn.statically.io/img/ecomdemo.micodetest.com/media//Adobe Express - file.png
        6. //cdn.statically.io/img/ecomdemo.micodetest.com/media//Maisha Logo 500x500.png
        7. //cdn.statically.io/img/ecomdemo.micodetest.com/media//dark_maisha_logo.png
          1. Ecom Demo
          2. The next generation Ecommerce
          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. +919211244254
        8. West 21st Street Brooklyn NY
        9. 223
        10. 3655
        11. Maisha Infotech Pvt Ltd
        12. 1
        13. 1
        14. 1
        15. 1
        16. F j, Y
        17. g:i A
        18. 800
        19. 450
        20. cs
        21. 400
        22. 225
        23. cs
        24. 150
        25. 84
        26. cs
        27. 800
        28. 1021
        29. cs
        30. 400
        31. 510
        32. cs
        33. 150
        34. 190
        35. cs
        36. 14
        37. 5
        38. 50
        39. newest
        40. asc
        41. I-{year2}-{month}-{order_id}-{user_id}-{customer_order_id}
        42. {rand-str-12}-{year2}
        43. 1
        44. 1
        45. 1
        46. /favicon-16x16.png
        47. /logo-foot512.png
        48. /Adobe Express - file.png
        49. /Maisha Logo 500x500.png
        50. /dark_maisha_logo.png
        51. kg
        52. cm
        53. ecomdemo.micodetest.com
        1. en_US
        2. en-us
        3. 1
        4. en_US
        5. en-us
        6. 1
        7. USD
        8. 1
        9. about
        10. page
        11. SELECT post.*,_.post_id,_.slug,_.name,_.meta_keywords,_.meta_description,_.language_id,post.template,language.code,language.code 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 pt ON (pt.post_id = _.post_id) WHERE 1 = 1 AND _.post_id = (SELECT post_id FROM post_content WHERE slug = 'about' LIMIT 1) AND pt.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) WHERE 1 = 1 AND _.post_id = :post_id LIMIT 1
        1. 1
        2. 1
        3. 1
        4. en_US
        5. en_US
        6. 1
        7. 1
        8. 11
        9. about
        10. publish
        11. 1
        12. 1
        13. 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) 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. 1
        2. 1
        3. 1
        4. en_US
        5. en_US
        6. 1
        7. 1
        8. 11
        9. about
        10. publish
        11. 1
        12. 1
        13. SELECT `key` as array_key,value as array_value FROM post_meta as _ WHERE _.post_id = 11
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/cdn/plugin.php [line: 75 - 83] */
            function ($publicPath, $type, $image, $size){
            			$publicPath = $options['url'];
            			$publicPath = str_replace(
            				['%host%', '%type%', '%image%', '%size%'],
            				[$_SERVER['HTTP_HOST'], $type, $image, $size],
            				$publicPath);
            
            			return [$publicPath, $type, $image, $size];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 107 - 113] */
            function ($image, $type, $size){
            			if ($type == 'product') {
            				$image = str_replace('/media/', '', $image);
            			}
            
            			return [$image, $type, $size];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/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. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/debug/plugin.php [line: 167 - 180] */
            function (){
            			$events = Event::getEvents();
            
            			array_walk_recursive($events, function (&$value, $key) {
            				if (is_object($value)) {
            					if ($value instanceof \Closure) {
            						$value = $this->closureDump($value);
            					}
            				}
            			});
            
            			$this->view->debug['data']['filters'] = $events;
            			$this->view->debug['data']['request'] = Routes::getUrlData();
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 90 - 99] */
            function ($template, $htmlFile, $tplFile, $vTpl, $view){
            			// add captcha js and field to page
            			//if ($url = Routes::getUrlData()) {
            			//if (in_array($url['module'], $routes)) {
            			$vTpl->loadTemplateFile(__DIR__ . '/app/template/common.tpl');
            			//}
            			//}
            
            			return [$template, $htmlFile, $tplFile, $vTpl, $view];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/dicebear/plugin.php [line: 61 - 94] */
            function ($comments){
            			$options = \Vvveb\getSetting('dicebear', ['url', 'size', 'style', 'flip']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if ((! isset($comment['avatar']) || ! $comment['avatar']) &&
            						(isset($comment['email']) || ! $comment['email'])) {
            						$comment['avatar'] = $this->getDiceBear(
            								$comment['email'],
            								$options['url'] ?? DICEBAR_URL,
            								$options['size'] ?? 60,
            								$options['style'] ?? 'fun-emoji',
            								$options['flip'] ?? 'false'
            							);
            					}
            
            					if (isset($options['size'])) {
            						$comment['size'] = $options['size'];
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          2. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/gravatar/plugin.php [line: 61 - 88] */
            function ($comments){
            			$options = \Vvveb\getSetting('gravatar', ['size', 'rating', 'default']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if (! isset($comment['avatar']) || ! $comment['avatar']) {
            						$comment['avatar'] = $this->getGravatar(
            								$comment['email'],
            								$options['size'] ?? 60,
            								$options['default'] ?? 'mm',
            								$options['rating'] ?? 'g'
            							);
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/dicebear/plugin.php [line: 61 - 94] */
            function ($comments){
            			$options = \Vvveb\getSetting('dicebear', ['url', 'size', 'style', 'flip']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if ((! isset($comment['avatar']) || ! $comment['avatar']) &&
            						(isset($comment['email']) || ! $comment['email'])) {
            						$comment['avatar'] = $this->getDiceBear(
            								$comment['email'],
            								$options['url'] ?? DICEBAR_URL,
            								$options['size'] ?? 60,
            								$options['style'] ?? 'fun-emoji',
            								$options['flip'] ?? 'false'
            							);
            					}
            
            					if (isset($options['size'])) {
            						$comment['size'] = $options['size'];
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          2. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/gravatar/plugin.php [line: 61 - 88] */
            function ($comments){
            			$options = \Vvveb\getSetting('gravatar', ['size', 'rating', 'default']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if (! isset($comment['avatar']) || ! $comment['avatar']) {
            						$comment['avatar'] = $this->getGravatar(
            								$comment['email'],
            								$options['size'] ?? 60,
            								$options['default'] ?? 'mm',
            								$options['rating'] ?? 'g'
            							);
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/dicebear/plugin.php [line: 61 - 94] */
            function ($comments){
            			$options = \Vvveb\getSetting('dicebear', ['url', 'size', 'style', 'flip']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if ((! isset($comment['avatar']) || ! $comment['avatar']) &&
            						(isset($comment['email']) || ! $comment['email'])) {
            						$comment['avatar'] = $this->getDiceBear(
            								$comment['email'],
            								$options['url'] ?? DICEBAR_URL,
            								$options['size'] ?? 60,
            								$options['style'] ?? 'fun-emoji',
            								$options['flip'] ?? 'false'
            							);
            					}
            
            					if (isset($options['size'])) {
            						$comment['size'] = $options['size'];
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          2. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/gravatar/plugin.php [line: 61 - 88] */
            function ($comments){
            			$options = \Vvveb\getSetting('gravatar', ['size', 'rating', 'default']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if (! isset($comment['avatar']) || ! $comment['avatar']) {
            						$comment['avatar'] = $this->getGravatar(
            								$comment['email'],
            								$options['size'] ?? 60,
            								$options['default'] ?? 'mm',
            								$options['rating'] ?? 'g'
            							);
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/shipping/plugin.php [line: 79 - 89] */
            function ($site){
            			$request = Request::getInstance();
            			$route = $request->get['route'] ?? '';
            			$module = $request->get['module'] ?? '';
            
            			if ($route == '/checkout' || $module == 'checkout/checkout/index') {
            				$this->init();
            			}
            
            			return [$site];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 116 - 120] */
            function ($options){
            			$options['type'] = 'theme';
            
            			return [$options];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 123 - 131] */
            function ($results){
            			if (isset($results['product'])) {
            				foreach ($results['product'] as &$product) {
            					$product['download_link'] = PUBLIC_PATH . 'market/themes/' . $product['slug'] . '.zip';
            				}
            			}
            
            			return [$results];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 134 - 140] */
            function ($results){
            			if ($results) {
            				$results['download_link'] = PUBLIC_PATH . 'market/themes/' . $results['slug'] . '.zip';
            			}
            
            			return [$results];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/toc-posts/plugin.php [line: 174 - 180] */
            function ($results = false){
            			if ($results && isset($results['content'])) {
            				$this->toc($results);
            			}
            
            			return [$results];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/toc-posts/plugin.php [line: 182 - 188] */
            function ($results = false){
            			if ($results && isset($results[0])) {
            				$this->toc($results[0]);
            			}
            
            			return [$results];
            		});
            
    1. about
    2. /page/{slug}
    3. content/page/index
    4. \/page\/(?[^$\/]+)
    5. ?module=content/post&slug=about&type=page