Skip to content
Windshaft tailored for CartoDB
JavaScript PLpgSQL Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
assets Replaces render timeout fallback asset on behalf of @saleiva, thx! Apr 8, 2015
config/environments Added config parameter to windshaft in order to use postgres' functio… May 6, 2016
docs Initial description of dataviews mapconfig extension May 25, 2016
lib/cartodb Now errors with context have the same schema. Jun 21, 2016
scripts Adds script/tool to go from lzma base64 encoded string to mapconfig Mar 11, 2015
test Now errors with context have the same schema. Jun 21, 2016
.gitignore Add option to generate coverage metrics using istanbul module Mar 23, 2015
.jshintignore adds tests as part of the jshint target Apr 27, 2015
.jshintrc Discourage console usage, global.logger should be used when required May 5, 2016
.travis.yml Use plpython version of CDB_QueryStatements May 31, 2016 Adds notes about contributing Sep 8, 2015
HOWTO_RELEASE Be more clear about how to upgrade shrinkwrap file Oct 22, 2015 Remove imagemagick reference from install instructions Feb 22, 2016
LICENSE Adds notes about contributing Sep 8, 2015
Makefile Make tests running before checkstyle/lint May 23, 2016 Stubs next version Jun 28, 2016 Adds some notes about how to npm link windshaft for development Feb 15, 2016
app.js Discourage console usage, global.logger should be used when required May 5, 2016
configure Remove sql api related configuration from configure script Sep 29, 2015
npm-shrinkwrap.json Stubs next version Jun 28, 2016
package.json Stubs next version Jun 28, 2016 Option to skip sql files download May 31, 2016


Build Status

This is the CartoDB Maps API tiler. It extends Windshaft with some extra functionality and custom filters for authentication.

  • reads dbname from subdomain and cartodb redis for pretty tile urls
  • configures windshaft to publish cartodb_id as the interactivity layer
  • gets the default geometry type from the cartodb redis store
  • allows tiles to be styled individually
  • provides a link to varnish high speed cache
  • provides a template maps API


See for detailed installation instructions.


Create the config/environments/.js files (there are .example files to start from). You can optionally use the ./configure script for this, see ./configure --help to see available options.

Look at lib/cartodb/server_options.js for more on config


Checkout your commit/branch. If you need to reinstall dependencies (you can check NEWS) do the following:

rm -rf node_modules; npm install


node app.js <env> 

Where is the name of a configuration file under config/environments/.

Note that caches are kept in redis. If you're not seeing what you expect there may be out-of-sync records in there. Take a look:


The docs directory contains different documentation resources, from higher level to more detailed ones: The Maps API defined the endpoints and their expected parameters and outputs.


CartoDB's Map Gallery showcases several examples of visualisations built on top of this.



Developing with a custom windshaft version

If you plan or want to use a custom / not released yet version of windshaft (or any other dependency) the best option is to use npm link. You can read more about it at npm-link: Symlink a package folder.

Quick start:

~/windshaft-directory $ npm install
~/windshaft-directory $ npm link
~/windshaft-cartodb-directory $ npm link windshaft
Something went wrong with that request. Please try again.