NOTE: You are viewing documentation for the MoovJS/Adapt version of the Moovweb SDK
View documentation for next-gen Moovweb XDN & PWA framework
Moovweb | Changelogs
Menu Developer Moovweb University


SDK v6.3.XX - January 17, 2017

  • Moovweb SDK v6.3.XX
    • Updated to work with Mac OS High Sierra.
    • SDK “moov” command
      • Added “-user-email string” and “-user-password string” command line options to “moov deploy” making integration with CI/CD systems easier.
      • Added “-ssl-cert” and “-ssl-key” command line options to “moov sever” command enabling developers to specify their own certificates when developing locally.
    • Enhancements for MoovJS projects
      • Added support for “moov_debug=true” as a query parameter or cookie. When true, additional logging and debugging information is returned with each request.
      • Updated the new project generator to use the latest npm packages from Moovweb.
      • Added support for ‘crypto’ module.
      • Added global variable ‘moovManifest’ which contains all of the current mode and routing information for the project.
      • Increased transformation timeout from 15 seconds to 60 seconds
      • Switch project template to fetch Moovweb npm modules from instead of
  • moov_rewriter 3.0.9
    • Updated the cookie rewrite to include the space after the ; in the cookie attributes.
    • Updated to ignore any prefixed dots on the cookie domain attribute when substituting cookie domain names (per the Set-Cookie RFC.)
  • moov_stdlib 2.6.30
    • New function
      • fns.getModeInfoFromModeName() returns the mode information for the specified by parsing the moovManifest variable.
      • headers.removeCookie() Removes all Cookie headers matching the given . Returns the list of removed Cookie headers.
      • headers.removeSetCookie() Removes all Set-Cookie headers matching the given . Returns the list of removed Set-Cookie headers.
      • headers.headerKeys() returns an array contain the names of all of the headers in the request.
    • Updated headers.removeHeader() and headers.removeAllHeaders() to return the list of removed headers.

SDK v6.3.10 - August 17, 2016

  • Moovweb SDK v6.3.10
    • ./scripts/moov_main.js is now autogenerated if it does not exist when starting a MoovJS project.
    • Fixed an issue with Moovweb 6.3.x Windows installers which prevented the moov keyword from working in a shell.
    • Fixed an issue which occasionally caused projects to shut off while making concurrent requests to a local Moovweb Server.
  • moov_builder 2.4.6
    • Fixed an issue where the Taskrunner would attempt to bundle assets multiple times concurrently, resulting in segfaults during local development.
    • Fixed an issue where deploy tasks would fail to rebuild moov_main.js before deployment.
    • Fixed an issue where syncing asset folders generated an empty ./assets/assets folder.

June 30, 2016

  • Moovweb Generator
    • The Generator has been streamlined and the default JavaScript and Tritium templates have been updated! Advanced Customizations have been updated to contain simpler boilerplate code and a straightforward set of optional packages recommended by Moovweb. The new JavaScript template has had its dependencies updated for use with v6.3.1 of the SDK.
  • moov_builder 2.4.0
    • A new version of moov_builder has been released!
      • HTML files in the project/scripts directory are now accessible in the cloud. This enables using require("/path/to/file.html") to read data from .html files inside the scripts directory for use in a MoovJS project.
      • Requires MoovwebSDK v6.3+
  • Moovweb Control Center
    • The SSL Certificate flow has received a visual overhaul. Contents of certificates and intermediate certificates are now decoded during the flow.
    • Fixed an issue where visual elements displaying DNS and SSL status of various hosts would fail to update.

SDK v6.3.1 - June 21, 2016

  • Moovweb SDK v6.3.1
    • NodeJS debugger and profiler support for Mac, Windows and Lunix
    • NodeJS v6 support for faster transformations.
    • All ports related are configurable through command line flags in moov start/server
    • Fix host file permission issue on Windows

June 9, 2016

  • Moovweb Control Center -
    • moov_cookie values are now exposed via the Project Settings Page under the Modes Admin tab. Note: attempting to access an inactive mode directly (a mode with no build or a mode whose traffic has been forced to 0) will rebucket the user into a new mode.
    • Fixed an issue where looking up stack traces timeout.

June 2, 2016

  • Moovweb Cloud
    • Updated Fusion plugin for JavaScript projects to fix an issue accessing assets in the ./build/assets folder. This fix allows developers to isolate their production assets from their development files.

SDK v6.2.253 - May 31, 2016

  • Moovweb Generator
    • Updated template to use latest Uranium and moov_builder
    • Updated CSS to reflect latest Uranium
  • Moovweb SDK
    • Updated for NodeJS v6 compliance
    • Fixed URL encoding bug on image paths
    • Use the host as the cookie domain, not the source host
    • Support for JSHint added
    • Fixed empty hosts file Windows bug
    • Fixed project timeout on start bug
  • Moovweb Cloud
    • new Moovweb HTTP status code 538 - Request Loop Error: Exceeding the limit would result in a request loop error, indicating that the request’s upstream origin site is itself.
    • new Moovweb HTTP status code 539 - Worker Transform Timeout: The JavaScript engine did not respond, usually due to a fatal exception in the user’s code.
  • Moovweb Control Center -
    • A new Overview page has been added which displays projects the user is Watching or has deployed code to across all accounts. Users will no longer be redirected to their last-used account, and will instead be redirected to the overview page (
    • Developer projects that have been dormant since 2015 have been disabled. To re-enable any disabled project, simply log into the Control Center, and turn the project back via the Project Settings page for that project.
    • Project lists have been paginated to show fewer results per page.
    • Modes are now renamable via the Mode Settings page. Renaming a mode is costmetic. Renaming will not affect the traffic served by that mode or the experience of users who have browser cookies associated with that mode. Renaming a mode does not require a rebuild.
    • The following flows have received stylistic improvements for a cleaner, mobile-friendly experience:
      • Creating a New Mode
      • Editing Mode Settings
      • Edit Project Settings
      • Duplicating a Project
      • Transfering a Project
    • Log messages in the Account History page are more explicit about specific settings that have been changed within an account.
    • Deprecation Warning: Modes using capital letters will be forcibly downcased in an upcoming release. Traffic served by Modes with capital letters in their name will serve the Mode content as usual. In the future, modes will no longer be able to use capital letters.
    • Fixed a bug where emails were not sent after trying to login to an expired account. Users with expired accounts should now properly receive an email to reactivate their account and log them in.
    • Fixed a bug where the expired password form could be bypassed without updating the existing password.
    • Fixed an issue which could cause Preview endpoints to be labeled as Inactive
    • Added a loading indicator when making requests throughout the Control Center
    • Improved render times for account pages with many projects

April 11, 2016

  • Moovweb Generator
    • The default js project template has been updated.
      • The package.json dependencies have been hardcoded for easier cross-team collaboration
      • The package.json has been updated to use the latest moov_builder node module
      • Project code will now run in the Node 4.4 runtime by default in the Moovweb Cloud to take advantage of ES2015 syntax. To use Node 4.4 runtime on an existing project, modify the moovweb_project_format_version key in your moov_config.json file to “2.0.0”
      • Default tasks in the ./tasks folder have been updated to use safeStart() and safeDeploy methods. More info below.
  • Moovweb SDK
    • moov_builder@2.0.0 has been released.
      • safeStart() and safeDeploy() methods have been exposed. These methods will check local node module installations and alert the user if their modules are out of date. In addition, the methods will perform status checks on the project codebase before continueing.
  • Moovweb Control Center -
    • Transfer
      • Projects can now easily be transferred from one account to another. The transfer feature is located in the project settings page under the project admin tab.
      • Projects can now be renamed using the Transfer feature, even when transferred within the same account.
      • These changes will not affect production.
    • Account History permissions have been modified
      • All Members of an account are able to view log history for that account.
    • Name limit increased
      • Projects, Accounts, and Endpoints can now have up to 50 characters (up from 23).
    • Domains that have been removed from a project should now properly reregister when they are pushed live.
    • Various visual improvements.

March 7, 2016

  • Moovweb SDK
    • moov_builder v1.5.0 has been released.
      • JSHint support has been added to automatically lint project files during development. Saving .js files will run the linter and stream output to the moov server.
      • JSHint will use the default ES2015 syntax standards, and a .jshintrc file in the project directory can be used to modify the strictness of rules used to evalute JavaScript code.
    • moov_stdlib v2.5.65 has been released.
      • Fixed an issue where links including secure ports were not rewritten.
  • Moovweb Generator
    • A standardized Moovweb .jshintrc file has been added to the js template.
    • The default deploy task will now require code to pass JSHint before being uploaded to Moovweb servers. Any failing cases will be streamed to standard out during the deploy.
    • The default generator template has been updated to serve the latest moovweb modules including moov_builder@1.5.0 and moov_stdlib@2.5.65
    • Fixed an issue with the order of dependencies in the default template assets/javascript/bundles.yml file

February 22, 2016

  • Moovweb Control Center -
    • Stack Traces have received navigation improvements and have been visually enhanced for clarity and readability. New ‘Previous’ and ‘Next’ buttons added for easy navigation.
    • The count of live domains and modes associated with a project is now displayed on the accounts page.
    • Minor visual improvements to the search bar on desktop and mobile.
  • Moovweb SDK
    • The moov_builder v1.4.11 has been released
      • New ./assets/javascript/etc folder has been added to the default javascript project template. This folder will be synced as-is into ./build/assets/javascript. This provides support for adding individual javascript assets into an HTML response before it is served to the user, and allow the task-runner to sync all files in this directory with the build folder even if they are not bundled.
      • For more information about asset bundling and the ./assets vs ./build/assets folders, check out the JavaScript page.

January 27, 2016

  • Moovweb Control Center -
    • New Features
      • When renewing a SAN cert, each child domain input will be checked off automatically for convenience when generating a new CSR.
      • When generating a CSR, you can now cover any unlisted domains without adding those domains to the project itself. A text field has been added to the CSR generation page, which accepts a comma-separated list of domains to include when a SAN certificate is being generated. Child domains are validated, and wildcard domains are rejected.
    • Fixes and Improvements
      • SAN cert UI elements should now properly wrap around the summary modal, as a cosmetic improvement.
      • Improved caching mechanism to render pages faster without showing stale data.
      • Fixed an issue where links in the SSL flow could be generated incorrectly, resulting in unnecessary redirects.
      • The Projects for Account page now more accurately reflects domains transformed per project. Instead of seeing just a list of starting domains used to create each project, you can now see whether projects are live.
      • Projects with properly configured DNS entries will no longer display a “live” indicator if they have been disabled via the Settings page.
      • Fixed a bug where adding a domain to a Single Domain Project automatically appended a randomized host variable.
      • Adding Domains via Console has been temporarily disabled, pending upgrades to the Moovweb Cloud. Domains can still be added to a project via editing config.json and deploying, as usual.

January 21st, 2016

  • Moovweb Cloud
    • Fixed issue where deleted hosts cause builds to fail

SDK v6.2.157 - January 20th, 2016

  • Moovweb Cloud
    • Improved performance for JavaScript projects
    • Fixed Basic Auth bug for JavaScript projects
    • Added single-domain preview banner feature to JavaScript. To add this feature to an existing project run: npm upgrade moov_stdlib
  • Moovweb SDK - v6.2.157
    • Fixed “slice out of bounds” error in JavaScript logging

January 11th, 2016

  • Moovweb Control Center v5.1 -
    • Advanced Project Settings - New Features
      • You can manually add and delete domains without having to modify the moov_config.json (or config.json for Tritium) file for redeploy.
      • A live DNS checklist has been added.
      • You can copy and paste the list of domains and CNAMEs.
      • You can copy and paste the list of IPs eligible for whitelisting within a project region.
    • UI Improvements
      • Mobile-friendly styles introduced.
      • Current Deploy ID is now listed on each project’s modes.
      • A “live” indicator has been added for projects with live DNS entries.
      • StackTrace logs now include the Page Type for each request.
      • Various background elements have been simplified.
      • Account and domain list elements have been enhanced.
    • Global Improvements
      • Added convenient links to relevant documentation to aid in clarity.
      • Performance optimizations applied to the web application.
  • Moovweb Cloud
    • fixed bug in perfect proxy where body was plain text, but headers said gzip
  • Documentation -

SDK v6.2.147 - December 12th, 2015

  • Moovweb Control Center -
    • updated console to keep history of users who add and delete domains
    • updated links on to point to correct privacy policy
    • added pagetype to JS debug logs in console
    • updated links on to point to correct About Us page
    • added easy to copy & paste panel for DNS in
  • Moovweb SDK
    • fix missing call in Tritium Single Domain projects
    • automatically start project if sudo moov server started from project directory
    • updated .gitignore file for default Tritium project to exclude unneeded files
    • fixed bug in Moov SDK where /etc/hosts was emptied when user killed the SDK
    • fixed bug in Tritium absolutize() function relative link handling
  • Moovweb Cloud
    • fix duplicate Accept-Encoding in the Vary: header
    • updated persistent connection handle to optimize for Akamai performance

SDK v6.2.110 - November 2nd, 2015

  • Moovweb Control Center -
    • show most recent 100 exceptions from server side JavaScript code with stack trace. Go to the Console, Project -> Debug Logs to view
    • remind users to check their spam folder when resetting passwords
    • added UI to remove host mappings from projects. Go to the Console, Project -> Settings -> Domain to remove a mapping. Use moov deploy to add a host mapping
  • Moovweb SDK
    • moov deploy no longer removes host mappings from your project. Users must use the Moovweb Control Center to delete host mappings. moov deploy still allows users to add host mappings to their projects
      • JavaScript debugger warns if your web browser is not supported by node-inspector
      • fixed bug where debug messages where displaying as JavaScript errors in the dashboard

SDK v6.2.109 - October 26th, 2015

This release has minor bug fixes and enhancements:

  • Moovweb Cloud
    • new Moovweb HTTP status code 537 - DNS Error: Moovweb Cloud cannot resolve upstream hostname
    • enhanced moov_=clear to reset moov_ cookie from any path
  • Moovweb SDK
    • added API documentation for the Moovweb JavaScript modules
    • added support for unicode and other web site encodings by utiliziing the Content-Type: HTTP Header
    • Exceptions in user Moovweb JavaScript
      • in the SDK, display the exception in the web browser
      • in production, display perfect proxy and log exception for viewing in Control Center
    • display error in web browser if moov_main.js is not done bundling
    • fixed file permission bug when bundling and deploying
    • Developer Dashboard
      • display error messages from JavaScript
      • fixed display bug on replay panel
    • Updated new project generator template
  • Moovweb Control Center -
    • updated user message on forgot password page to include From: e-mail address and check spam folder reminder
    • added Debug Logs button to show recent exceptions in user Moovweb JavaScript code

SDK v6.2 - August 12, 2015

This release is all about enhancing local development. It includes numerous new features that increase developer’s freedom when writing project code. Learn more about the new Task Runner, moov_builder module, the moov fusion command and incorporating scripts into your development process.

Upgrade instructions from 6.1 SDK projects

  • Add the followig section to your moov_config.json file:
      "taskrunner": {
          "on_project_start_command": "node ./tasks/start",
          "on_request_command": "node ./tasks/request",
          "on_deploy_command": "node ./tasks/deploy"
Note: The "taskrunner" fields are backward compatible with 6.1 SDK, but are mandatory for 6.2 SDK. The same project developed with 6.2 SDK or 6.1 SDK will run exactly the same in the Moovweb Cloud.

6.2 SDK Changes

  • New Build/Assest folder - Production assests can now be minified and packaged for deployment. Not all asset files in the ./assests folder are required in production. If a project has a ./build/assets folder in its directory that folder will be uploaded to our servers upon moov deploy instead of the ./assests folder. Otherwise the SDK will fall back to uploading the normal ./assests folder. The ./build/assests folder should ideally mirror the local assest folder structure, but only needs to contain the assest needed in production. The new moov_builder module monitors your assets folder and compiles minified, production-ready assets in your local ./build/assets folder.
  • New Task Runner - The Task Runner executes commands automatically when specific events occur during development.
    • on_project_start_command: runs when the project is started via the start button in the Developer Dashboard or when sudo moov server is run directly.
    • on_request_command: runs every time a request comes through the server
    • on_deploy_command: runs when the moov deploy is executed

      Example ./tasks/start

          #!/usr/bin/env node
          'use strict';
          var gulp = require('../gulpfile.js'),
              exec = require('child_process').exec;
          function puts(error, stdout, stderr) {
              console.log(stdout); /* if (error) { throw new Error(error) } */
          exec('moov fusion', puts);
          if (gulp.tasks) {

      Example ./tasks/request

          #!/usr/bin/env node
          'use strict';
          console.log('=== New Request ===');

      Example ./tasks/deploy

          #!/usr/bin/env node
          'use strict';
          var gulp = require('../gulpfile.js'),
              exec = require('child_process').exec;
          function puts(error, stdout, stderr) {
              console.log(stdout); /* if (error) { throw new Error(error) } */
          exec('moov fusion', puts);
          if (gulp.tasks) {
  • New moov fusion command bundles your assets folder for production deployment. It was previously run per request while developing locally. JavaScript assets can be bundled however you choose, but for convenience, we have provided this command to be used in conjunction with the Task Runner and local debugging. Automated rebundling of JavaScript assets has not gone away, but is now triggered when changes to the files are detected. It is now provided via the new node module, moov_builder (see below.)

    Note: In earlier versions of the SDK moov fusion was run on every request which was inefficient. While this behavior has been deprecated, it can be enabled using Task Runner:

    "taskrunner": {
      "on_request_command": "moov fusion"
  • New moov_builder module includes a set of gulp tasks for automating the build process.
    • To add this to an existing project use npm install moov_builder --save-dev from your local project direotory.
    • Create a gulpfile.js in your local project directory containing the following:

          exports = module.exports = require("moov_builder")({
              browserSync: { port: 9099 }
    • Add the "on_project_start_command": "node ./tasks/start", to your moov_config.json (as shown above)
  • New Feature - Debugger Support debugging for JavaScript projects is now available using node-inspector.
    • Use the debug button on the Developer Dashboard to open the debug console. When the console is open the following will trigger breakpoints in your code.
      • breakpoint("My Label"); function triggers a break point.
      • add ?moov_debug=true to your URL to break at the beginning of your transformation JavaScript code.
  • New Feature - PageType allows you to tag specific pages with an arbitraty PageType string. This is useful is categorizing groups of pages for debugging, logging and statistical anaysis.
    • fns.setPageType("My PageType"); to specify the PageType. This will overwrite any previously set PageType for that request.
    • fns.getPageType(); to retrieve the current PageType.
  • New Feature on Developer Dashboard
    • displays project type: JavaScript or Tritium
    • displays and controls active layers
  • New Feature User JavaScript Exception Reporting
    • Exceptions in the transformation JavaScript code are recorded and accessable via the Moovweb Control Center
    • Customizable exception handling
    • Ability to show exception page or perfect proxy when an exception is encountered
  • Change: renamed files
    • request_main.js has been renamed to moov_request_header_transform.js
    • response_main.js has been renamed to moov_response_header_transform.js
  • Bug Fixes
    • garbled images in perfect proxy

SDK v6.1 - April 29, 2015

Bug fixes:

  • Image assets passed through the server should no longer be garbled
  • Content-Length header of a perfect proxied response did not match the length of the request, causing errors
  • console.log statements executed before an Exception occurs will now properly output to the terminal as intended
  • Fixed duplicated error messages for command line flag errors
  • Removed command line flag help messages from errors irrelevant to flags.
  • moov_stdlib - fns.Assets() should now properly resolve paths with extra trailing slashes

Control Center:

  • Visual Improvements to distinguish between Javascript and Tritium projects
  • Added Modes Admin section to the project settings page for switching modes to use JavaScript or Tritium
  • Brew support for the moov SDK has been deprecated!
  • Various language improvements for error messages

Generator (Guap):

  • The generator template has been updated to serve the latest moovweb modules
  • Package.json contains all the latest modules
  • .gitignore has been updated to no longer ignore main.js and ignore moov_main.js instead

Moovweb NPM Modules:

  • New! moov_cache - Equivalent functionality to the tritium cache mixer

    • cache.enable_for(seconds); Adds the caching header for the page for the specified period of time.
    • cache.force(); Adds a forced caching header to the page. This function will set the cache control header to a non-zero TTL. The cache headers will be set regardless of the upstream response’s cache headers (even if its set to max-age 0 for example).
    • cache.force(); cache.force_for(seconds) Forces caching of things for a specified period of time in Moovweb’s cache only. This function will set the necessary headers to tell Moovweb to cache the current response and strip other caching headers out. The parameter is the number of seconds to cache things for.
    • cache.html(tag,enc) The html function sets up the page so that content you label as “dynamic” is fetched as needed, while static sections of the page to be cached. This will set up the page so that all chosen tag parts(e.g. div) with the “dynamic” attribute are stripped out and will be loaded later. If it is a fragment/dynamic hit, content in the cachebox will be stored into a JSON array and get returned. Unlike tritium html scope, enc argument will not change the encoding but just export “Content-Type-Charset” to be the enc. If enc is undefined, the encoding flag will set “utf-8” as default.
  • moov_stdlib v2.4.50

    • New function! fns.perfectProxy(); Rewrites links and src attributes of the current global html object. Example usage:
          // index.js

          # mappings.js
          if (/* matches some page we want to rewrite */) {
              // require the file for this page
          else if ( /* logic for this-should-be-perfect-proxied */) {
          } else {
              // if you don’t match at all, perfect proxy
          return $.html();
 Note: some non-html content types (such as ajax requests passed through the server) require perfectProxy() to avoid CORS-related errors from rejecting the request.
  • Ported functions:
    • PERF mixer Functions now available in moov_stdlib:
      • fns.insertDnsPrefetch(); adds a dns-prefetch attribute to elements that load assets
      • fns.insertSubresource(''); adds a subresource link for elements to hint the browser to load assets that will be needed for this particular page or view.
      • fns.moveStylesToHead(); finds any CSS elements inside the body element and moves them to the head
      • fns.moveStylesAboveScripts(); finds any CSS elements and moves them above the first script element
    • Assert Mixer Function in moov_stdlib:
      • fns.assert(1 > 0); will error if condition is not met (only throws errors locally, not in cloud/production traffic) e.g.: fns.assert($("#important").length > 0);
    • Layers Mixer functions in moov_stdlib:
      • fns.activeLayers(); returns a list of the active layers.
      • fns.queryLayerText('mobile'); returns ‘1’ if the specified layer is active otherwise ‘0’
      • fns.layer('mobile'); returns true if the specified layer is active otherwise false
      • fns.layerNot('tablet'); returns true if the specified layer is not active otherwise false
  • moov_bundler v2.1.12
    • Output file renamed from main.js to moov_main.js
    • Recursive file-watching support added for Linux and Windows
    • npm run bundle now rewrites moov_main.js only after finishing bundling
    • Requests to moov server received during bundling process will render a result using the previous moov_main.js, if it exists.
  • moov_rewriter v2.0.5
    • Advanced Rewriter files renamed:
      • request_main.js is now called: moov_request_header_transform.js
      • response_main.js is now called: moov_response_header_transform.js
    • Single Domain Project Rewriting is Enabled.

SDK v5.5 - February 9, 2015

  • Bug fixes.
  • Performance improvements after upgrading to Go 1.4.

SDK v5.4 - December 10, 2014

Moovweb Cloud

  • Account/Organization managers have the ability to delete Modes.
  • Image optimization service: Image optimizations added to sprites.
  • Image optimization service: Lossless compression for WebP images.
  • Routing: added support for Gecko devices.
  • Routing: added Sony Xperia t2 ultra and Motorola Moto E to the supported list of devices.
  • Client redirection: Improved performance.
  • Client redirection: Enhancements to existing implementation.

Control Center

  • Redesigned user account invitation emails.
  • New notifications for user account invitations.


  • Improved HTML parsing performance.
  • Upgraded Tritum Tester engine and mixers.

Replay Mode

  • Ability to easily save origin-server responses in the Moovweb SDK Dashboard.
  • New Moovweb SDK Project Replay Dashboard to manage project Replays.
  • Ability to load and run saved project Replays from the Moovweb SDK Project Replay Dashboard.

Single Domain Development

  • Improved Local SDK single domain project generation template on the SDK Dashboard.
  • Enhanced defaults and settings for SDK single domain projects.

SDK v5.3 - April 30, 2014

Moovweb Cloud

  • Ability to upgrade LibXML implementation on existing projects
  • Added GIF animation support in image optimization service
  • Single Domain preview Mode information banner
    • Visual indication displayed on the main page when a preview Mode is accessed with the direct link.
    • Banner can be enabled disabled using Tritium

Control Center

  • SSL Certificate Manager enhancements
    • Update existing SSL and intermediate certificates


Single Domain Development

  • New Single Domain mixer
  • Option to display via tritium a banner on the page when running a single domain local project.

SDK v5.2 - April 15, 2014

Moovweb Cloud

  • Advanced Modes routing

Control Center

  • UI and flow improvements
  • Projects are now searchable by all registered domains
  • SSL Certificate Manager upgrade
    • Certificate renewal support
    • Multi-project SAN certificate support
    • Email notifications sent to the technical contact for expiring certificates
  • Mode improvements
    • Advance interface for controlling Modes routing
    • Preview links and QR codes for Modes
    • Display information on deployed Layers and live routing rules


  • Improved warning mechanism when deploying to Live Modes
  • Improved project generation messaging when behind enterprise proxies
  • Layer blocks
    • New notation for using Layers in Local SDK projects.
    • Ability to run multiple Layers in SDK Dashboard.


SDK v5.1 - January 17, 2014

This release was mainly bug fixes for 5.0.

Control Center

  • Stability and performance improvements


  • Dashboard UI/UX improvements

SDK v5.0 - December 17, 2013

Moovweb Cloud

Upgraded to use Go 1.2 which resulted in performance increases of 10%

Control Center

  • New UI/UX
  • Endpoint Modes
    • every project has a Default Live Mode
    • ability to create any number of Preview Modes
  • Amazon S3 bucket for deployed code


  • Developer Dashboard
    • Project generation embedded
    • Moovweb Toolkit embedded (previously Chrome-only extension)
  • Layers
  • Deploy system independent of version control
  • Deploy pre/post scripts
  • Support for HTTP_PROXY environment variable added.

New Commands

  • moov start
  • moov deploy


  • LibSass - improved @extend support


  • No more moov generate
  • No more moov login (a Moovweb account is still required for deploying, but there is no way to upload SSH keys directly from the command line — for backwards compatibility with the Git push system, you will have to add keys via the Control Center UI)
  • Git is no longer a requirement

SDK v4.7 - July 30, 2013

Moovweb Cloud

Performance Mixer

The Performance Mixer is now out of Beta. Free for Enterprise Users only. If your site needs access to this new mixer, please contact us and select “Request Upgrade or Add-on”.

Image Resizing
Serves the best possible images to mobile customers by resizing images based on target mobile device platform, browser, etc
Image Compression
Reduces image size (hence payload size) by further compressing images using optimal image formats
Image Caching
Improves site performance by caching optimized images, and serve future requests from the cache
JavaScript Concatenation
Concatenates multiple JavaScript files into one and reduce the number of requests
JavaScript Caching
Improves site performance by caching optimized JavaScript and serve future requests from the cache

Control Center

Requests Types & Codes Analytics
“View All Graphs” to see finite numbers and percents of request types (JavaScript, JSON, HTML, etc.) and codes (3xx, 4xx, 5xx, etc.)
Notifications for team management
When a new user is added to an existing account, they are notified. Simple as that.

Developer Tools

Uranium 1.0 Release

  • Made Uranium a jQuery library
  • Updated and expanded the documentation
  • Changed the focus from “widgets” to interactions
  • Added desktop browser support back through IE9
  • Solidified functionality of the six most popular interactions (carousel, toggler, etc.)
  • Deprecated a few of the less-frequently used interactions for future re-evaluation.

New Developer Center

The Developer Center is your source for Moovweb docs, downloads, updates, and more. Bookmark this URL:

New Moovweb University

Learn everything you need to know about Moovweb by taking our online courses at Moovweb University. Watch videos, write code, and receive detailed feedback from an expert Moovweb Developer.


Cache Mixer

The cache mixer is now out of Beta. Free for Enterprise Users only. If your site needs access to this new mixer, please contact us and select “Request Upgrade or Add-on”.

  • Focus on Site Acceleration
  • Enabling Varnish cache
  • Making an asset cacheable by overriding cache headers
  • Cachify allows for Dynamic caching and to set different caching rules for static & dynamic content

Assert Mixer

The Assert Mixer is now out of Beta. Free for Enterprise Users only. If your site needs access to this new mixer, please contact us and select “Request Upgrade or Add-on”.

  • Use an assert() system to establish validity of site implementation during Tritium project development
  • Includes Tritium functions to assert specific HTML elements that must be present when selecting and transforming elements, and issues warnings when selector fails
  • Supports global variables to track number of failing Tritium selectors that can be sent to an Analytics backend to receive page-level statistics over time, e.g., how many Tritium selectors in a project are failing on specific pages over time

SDK v4.6 - June 13, 2013

SDK v4.5 - May 10, 2013


Control Center:

SDK v4.4 - March 15, 2013


Control Center:

Total Redesign
the Control Center has a new look that makes it even easier to navigate through projects and get the information you need to go mobile.

SDK v4.3 - January 25, 2013


Control Center:

User SSL management
you can now upload your own SSL certificates from the “Hosts” page of your project
Build Versions
each time you push, the version number increments by one Open Docs
our documentation is now available even if you’re not signed in

SDK v4.2 - November 21, 2012


Moovweb Toolkit:

  • Chrome extension
  • debugger (breakpoints + snapshots)
  • logger + filters

Control Center:

Auto-onboarding (SSL / DNS / provisioning)
When you go to production, CNAMEs are automatically generated
GitHub-like URLs
to make finding your project easier, projects can be found at “
Live build updates
you no longer need to refresh your page to get updates on how your build is going!



Windows 8 Support

The Moovweb SDK now works on Windows 8!

Basic Auth Support

You can now add basic authentication to your Moovweb projects!

Specify user/password in the config.json file as follows:

"credentials": {
  "user": "username",
  "password": "LetMeIn"

Once these changes are live you’ll see a popup appear upon entering your site:

Basic Auth

Simply enter your specified username and password and you’ll be allowed in!

Tritium Function Overriding

Native functions can now be overridden just as you would define custom functions.

The process is simple: if you define a custom function that has the same name as an existing function, the existing function will be overridden to perform the newly defined custom function Tritium.

Moovweb Toolkit

The Moovweb Toolkit is a Google Chrome browser extension that will accelerate your productivity as a front-end developer!

Download Moovweb Toolkit

Control Center

GitHub-Like URLs

Your project URLs are now formatted:

So they are easy to remember and consistent throughout your work!

Live Build Updates

SDK v4.1 - August 10, 2012

This release was mainly bug fixes for 4.0.

SDK v4.0 - August 10, 2012

Major overhaul of Moovweb SDK and Moovweb Cloud.


Config Folder

The config folder will be completely gone! (We’ve also deleted the lib and test folders plus the MANHATTAN_VERSION and GENERATOR_OPTIONS files.)

The config folder is replaced by a config.json file that will hold the same information (for the most part).

This file contains your user agent, SSL whitelist, your host maps, and various other settings. Read more about it here.

It also contains a setting for whether or not the project supports compass. Do not use compass on new projects. Compass will ultimately be deprecated.


Rewriters will now be called Host Maps.

Also, the syntax is changing … No more regular expressions!

The syntax is now as follows:

"$ =>"

This translates to: and

Rewriters on the left, upstream on the right.

Links work in the opposite direction.

These are located in your config.json file which will be replacing the config folder.


Your new project will have a Mixer.lock file. This contains your mixer specification.

What are Mixers?

Tritium has 12-20 native functions, all other functions — which embody the feature-rich and most useful aspects of the Tritium language — are made up of these native functions.

A mixer is essentially a promise that these functions will continue to work the way you want them to work and have worked in the past.

More Details on Mixers

As the language evolves, even the basic Tritium functions can be tweaked whether it’s to provide further functionality, increase performance, or clean up the code, these tweaks can cause rippling effects that break previous code. Enter Mixers.

Mixers are a collection of functions and tests that account for these changes and make sure you code is backwards compatible. The over-arching concept here is to separate the SDK from the inner workings of the server so they can be maintained individually. Your SDK can be upgraded and still rely on old mixers for functionality, and old mixers can be upgraded without breaking your SDK code.

Why do I need to know this?

Mixer Locking: Compiled projects will be locked to certain mixers upon creation. These mixers can then be upgraded using the command:

moov mixer upgrade

What it means for your projects is that they will be versioned using certain mixins and those mixins will determine how your functions behave. These locks can be seen in the Mixer.lock file in the project folder.

The legacy version of the mixers is named omni-mobile and the new projects use simple-mobile.

Auto DNS

This feature is OPT-IN only so you have to add the flag manually if you’d like to have your /etc/hosts file managed automatically.

The flag is as follows:

sudo moov server --auto-hosts

(NB: Do not use sudo on a Windows machine.)

We recommend using this instead of editing your /etc/hosts file. It’s much simpler!

Project Generators

The layout of the project folder will be somewhat different. Mostly it will be a lot cleaner with many of the random files that you never open now removed.

The recipe for generating a mobile site is now as follows:

moov generate [name] [domain] --recipe=mobile

The default layout is the old perfect representation of an existing site. The mobile layout has the styles and JavaScript removed to make re-working the front-end more simple.

Moovweb Cloud

We have a getting started guide on how to use the Moovweb Cloud and a more in-depth tutorial too.

We’ve also got some video instructions on how to use the Moovweb Cloud.

The Deploy Key instructions have been simplified so if you don’t want to add your own SSH keys manually, you can run the command:

moov login

In your terminal and that will add the SSH keys for you.

Deprecation of Compass

Compass is awesome. But we weren’t using it to its full potential in Moovweb projects and it can cause some project-upgrading issues. So, we’ve decided to go with some other tools that perform all the functions we use in Compass:

Bourbon is a set of mixins. They provide cross-browser compatibility and extra functionality for things like making a columnar layout or implementing gradients. Their reference is great, or you can just look through the stylesheets/globals/bourbon directory of your project.

GoSass is an implementation of Sass in Go. The functionality should be exactly the same as Sass. Plus, it includes the image-url() function of Compass.

Spracker is the new way to implement sprites. Just add the images to a sprites folder in the images directory and a sprite will automatically be created. There will also be a sprites.scss stylesheet created in the stylesheet/globals directory. Include this stylesheet in the main.scss file. Then, use the classes and mixins that are defined within like you would with Compass. For more information, look at our guide to spriting.